[go: up one dir, main page]

CN116301948A - 应用安装方法、装置、电子设备及机器可读存储介质 - Google Patents

应用安装方法、装置、电子设备及机器可读存储介质 Download PDF

Info

Publication number
CN116301948A
CN116301948A CN202310345079.0A CN202310345079A CN116301948A CN 116301948 A CN116301948 A CN 116301948A CN 202310345079 A CN202310345079 A CN 202310345079A CN 116301948 A CN116301948 A CN 116301948A
Authority
CN
China
Prior art keywords
application
installation
components
condition
upgrade
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310345079.0A
Other languages
English (en)
Inventor
陈一峰
张龙涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202310345079.0A priority Critical patent/CN116301948A/zh
Publication of CN116301948A publication Critical patent/CN116301948A/zh
Priority to PCT/CN2024/082741 priority patent/WO2024199039A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种应用安装方法、装置、电子设备及机器可读存储介质,该方法包括:在检测到针对第一应用的安装包程序的运行指令,且当前未安装所述第一应用的情况下,确定是否满足组合安装条件;在满足组合安装条件的情况下,在所述第二应用的安装路径下,对所述第一应用进行安装;在不满足组合安装条件的情况下,执行所述第一应用的首次安装流程。该方法可以提高应用安装效率,减少应用安装占用的存储空间。

Description

应用安装方法、装置、电子设备及机器可读存储介质
技术领域
本申请涉及软件技术领域,尤其涉及一种应用安装方法、装置、电子设备及机器可读存储介质。
背景技术
现有的安装程序制作工具制作出来的安装程序通常针对单一应用,如果有业务不同的多个应用时,需要有对应的多份安装程序代码,维护起来十分困难。
另外,现有的安装包功能通常是针对单一应用进行安装部署,此类安装包设计无法处理需要相互配合的多个不同应用组合安装的应用场景。
发明内容
有鉴于此,本申请提供一种应用安装方法、装置、电子设备及机器可读存储介质。
根据本申请实施例的第一方面,提供一种应用安装方法,包括:
在检测到针对第一应用的安装包程序的运行指令,且当前未安装所述第一应用的情况下,确定是否满足组合安装条件;其中,所述满足组合安装条件包括已安装第二应用,所述第二应用为与所述第一应用存在共用组件的应用;
在满足组合安装条件的情况下,在所述第二应用的安装路径下,对所述第一应用进行安装;其中,所述第一应用的安装过程中,跳过所述第一应用与所述第二应用的共用组件的安装过程;
在不满足组合安装条件的情况下,执行所述第一应用的首次安装流程。
根据本申请实施例的第二方面,提供一种应用安装装置,包括:
确定单元,用于在检测到针对第一应用的安装包程序的运行指令,且当前未安装所述第一应用的情况下,确定是否满足组合安装条件;其中,所述满足组合安装条件包括已安装第二应用,所述第二应用为与所述第一应用存在共用组件的应用;
安装单元,用于在满足组合安装条件的情况下,在所述第二应用的安装路径下,对所述第一应用进行安装;其中,所述第一应用的安装过程中,跳过所述第一应用与所述第二应用的共用组件的安装过程;
所述安装单元,还用于在不满足组合安装条件的情况下,执行所述第一应用的首次安装流程。
根据本申请实施例的第三方面,提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现第一方面提供的方法。
根据本申请实施例的第四方面,提供一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现第一方面提供的方法。
本申请实施例的应用安装方法,在检测到针对第一应用的安装包程序的运行指令,且确定当前未安装第一应用的情况下,确定是否满足组合安装条件,并在满足组合安装条件的情况下,在第二应用的安装路径下,对第一应用进行安装,且在第一应用的安装过程中,可以跳过第一应用与第二应用的共用组件的安装过程,通过对已安装的应用的组件复用,提高了应用安装效率,减少了应用安装占用的存储空间。
附图说明
图1是本申请实施例提供的一种应用安装方法的流程示意图;
图2是本申请实施例提供的一种不同应用共用组件的示意图;
图3是本申请实施例提供的一种单一产品线安装逻辑示意图;
图4是本申请实施例提供的一种跨产品线安装逻辑示意图;
图5是本申请实施例提供的一种应用安装装置的结构示意图;
图6是本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
需要说明的是,本申请实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
请参见图1,为本申请实施例提供的一种应用安装方法的流程示意图,如图1所示,该应用安装方法可以包括以下步骤:
步骤S100、在检测到针对第一应用的安装包程序的运行指令,且当前未安装第一应用的情况下,确定是否满足组合安装条件;其中,满足组合安装条件包括已安装第二应用,第二应用为与第一应用存在共用组件的应用。若是,则转至步骤S110;否则,转至步骤S120。
本申请实施例中,第一应用并不特指某一固定的应用,而是可以指代任一支持采用本申请实施例提供的应用安装方法进行安装的应用。
本申请实施例中,在检测到针对第一应用的安装包程序的运行指令的情况下,可以确定当前是否已安装第一应用,即确定第一应用是否为首次安装。
示例性的,可以依据第一应用的标识信息,如GUID(Globally UniqueIdentifier,全局唯一标识),查询注册表,确定是否存在第一应用的注册表;在存在第一应用的注册表的情况下,确定当前已安装第一应用;否则,确定当前未安装第一应用。
本申请实施例中,在确定当前未安装第一应用的情况下,可以进一步确定是否满足组合安装条件。
示例性的,满足组合安装条件可以包括已安装与第一应用存在共用组件的应用(本文中称为第二应用)。
步骤S110、在第二应用的安装路径下,对所述第一应用进行安装;其中,第一应用的安装过程中,跳过第一应用与第二应用的共用组件的安装过程。
本申请实施例中,为了提高应用安装效率,减少应用安装所需占用的存储空间,在第一应用满足组合安装条件的情况下,可以在第二应用的安装路径下,对第一应用进行安装,且在第一应用的安装过程中,对于第一应用与第二应用的共用组件,可以跳过对该共用组件的安装,而是复用第二应用已安装的相应组件。
示例性的,对于任一应用程序,其安装包文件中可以包括用于记录支持与该应用程序组合安装的其它应用程序的标识信息的配置文件。
相应地,在对应用程序进行安装的情况下,可以依据安装包文件中包括的上述配置文件,确定支持与该应用程序组合安装的其它应用程序的标识信息,进而,确定该应用程序是否满足组合安装条件。
需要说明的是,考虑到应用安装会需要占用一定的空间,若空间不足,则会导致安装失败,因此,上述满足组合安装条件还可以包括第二应用所在存储空间(如磁盘)的剩余存储空间足够安装第一应用。此外,满足组合安装条件还可以包括一些其他条件,如安装应用的主机的硬件条件,如内存大小、CPU(Center Process Unit,中央处理单元)性能等。
步骤S120、执行第一应用的首次安装流程。
本申请实施例中,在第一应用不满足组合安装条件的情况下,可以由用户选择安装路径以及其他必要安装信息(如数据库文件存放路径等),然后,进行首次安装流程。
可见,在图1所示方法流程中,在检测到针对第一应用的安装包程序的运行指令,且确定当前未安装第一应用的情况下,确定是否满足组合安装条件,并在满足组合安装条件的情况下,在第二应用的安装路径下,对第一应用进行安装,且在第一应用的安装过程中,可以跳过第一应用与第二应用的共用组件的安装过程,通过对已安装的应用的组件复用,提高了应用安装效率,减少了应用安装占用的存储空间。
在一些实施例中,在检测到针对第一应用的安装包程序的运行指令的情况下,还可以包括:
对第一应用的安装包程序进行初始化,将第二应用的标识信息记录到内存中;
依据内存中记录的第二应用的标识信息查询注册表,确定是否满足组合安装条件。
示例性的,应用的安装包程序中可以包括与应用存在共用组件的其它应用的标识信息,如GUID。
相应地,在检测到针对第一应用的安装包程序的运行指令的情况下,可以对第一应用的安装包程序进行初始化,并将第一应用的安装包程序中包括的第二应用的标识信息记录到内存(如安装包内存)中,进而,可以依据内存中记录的第二应用的标识信息查询注册表,确定是否满足组合安装条件,即是否安装有第二应用。
需要说明的是,在本申请实施例中,若与第一应用存在共用组件的第二应用包括多个,且该多个第二应用之间不存在共用组件,这种情况下,可以跳过共用组件安装过程,只需安装其他非共用组件,从而可以提高应用安装效率,减少应用安装占用的存储空间。
在一些实施例中,在检测到针对第一应用的安装包程序的运行指令,还可以包括:
在当前已安装第一应用,且第一应用的安装包程序中的版本号大于当前已安装的第一应用的版本号的情况下,确定第一应用与第二应用的共用组件是否需要升级;
在确定第一应用与第二应用的共用组件需要升级的情况下,对第一应用的全部组件进行升级;
在确定第一应用与第二应用的共用组件不需要升级的情况下,对第一应用的全部组件中的其余组件进行升级。
示例性的,应用的安装包程序中还可以包括应用的版本信息,如版本号。
相应地,在检测到针对第一应用的安装包程序的运行指令,且确定当前已安装第一应用的情况下,还可以比较第一应用的安装包程序中的版本号(可以称为第一版本号)与当前已安装的第一应用的版本号(可以称为第二版本号)。
在第一版本号大于第二版本号的情况下,可以确定需要对当前安装的第一应用进行升级。
考虑到当前已安装的第一应用可能是采用组合安装方式进行安装的,即第一应用可能与其它应用(即上述第二应用)存在共用组件,而共用组件可能在第二应用升级时已经进行了升级。
因此,在第一版本号大于第二版本号的情况下,还可以确定第一应用与第二应用的共用组件是否需要升级。
示例性的,对于任一第一应用与第二应用的共用组件,可以比较当前进行安装的第一应用的安装包程序中该共用组件的版本与已安装的该共用组件的版本;若前者(当前进行安装的第一应用的安装包程序中该共用组件的版本)高于后者(已安装的该共用组件的版本),且低版本的该共用组件无法满足使用需求,则确定需要对该共用组件进行升级;若前者不高于后者,或前者高于后者,但低版本的该共用组件满足使用需求,则确定不需要对该共用组件进行升级。
在确定第一应用与第二应用的共用组件需要升级的情况下,可以对第一应用的全部组件进行升级。
在确定第一应用与第二应用的共用组件不需要升级的情况下,可以对第一应用的全部组件中除与第二应用的共用组件之外的其余组件进行升级。
在一些实施例中,在检测到针对第一应用的安装包程序的运行指令,还可以包括:
在当前已安装所述第一应用,且第一应用的安装包程序中的版本号等于当前已安装的第一应用的版本号的情况下,输出安装模式选择消息;
在依据检测到的选择指令,确定安装模式为修改安装,且确定需修改的组件中包括第一应用与第二应用的共用组件的情况下,对需修改的组件中除该共用组件之外的其余组件进行卸载,并安装修改后的组件;
在依据检测到的选择指令确定安装模式为卸载安装的情况下,对第一应用包括的全部组件中,除第一应用与第二应用的共用组件之外的其余组件,进行卸载。
示例性的,在检测到针对第一应用的安装包程序的运行指令,且确定第一版本等于第二版本的情况下,可以输出安装模式选择消息,由用户选择安装模式。例如,修改安装、修复安装或卸载。
其中,修改安装为卸载应用中的部分组件(可以称为需修改的组件),并重新安装其它组件。
示例性的,在依据检测到的选择指令确定安装模式为修改安装的情况下,可以确定需修改的组件中是否包括第一应用与第二应用的共用组件。
在需修改的组件包括第一应用与第二应用的共用组件的情况下,可以拒绝对该共用组件进行卸载(即不对该共用组件进行卸载),而是对需修改的组件中除该共用组件之外的其余组件进行卸载,并安装修改后的组件。
例如,假设用户选择对第一应用进行修改安装,并选择卸载组件1~3,新增安装组件4~6,而组件1~2为第一应用与第二应用之间的共用组件,则可以不对组件1~2进行卸载,而是卸载组件3,并安装组件4~6。
示例性的,在依据检测到的选择指令确定安装模式为卸载安装的情况下,可以对第一应用包括的全部组件中,除第一应用与第二应用的共用组件之外的其余组件进行卸载。
需要说明的时,由于修复安装并不涉及组件的卸载,在依据检测到的选择指令确定安装模式为修复安装的情况下,可以不区分共用组件和非共用组件,对第一应用包括的组件中需要修复的组件进行修复。
此外,在本申请实施例中,在第一版本号小于第二版本号的情况下,可以输出提示消息,提示用户当前已安装该应用的更高版本,并退出应用安装程序。
在一些实施例中,在检测到针对第一应用的安装包程序的运行指令的情况下,还可以包括:
确定是否满足平滑升级条件;其中,平滑升级条件包括已安装第三应用,第三应用为与第一应用属于不同产品线,且第三应用的功能为第一应用的部分功能;
在不满足平滑升级条件的情况下,确定是否存在应用互斥;其中,存在应用互斥包括已安装第四应用,第四应用为与第一应用属于不同产品线,且存在功能冲突的应用;
在不存在应用互斥的情况下,确定当前是否已安装第一应用。
示例性的,考虑到用户在使用应用的过程中,可能会想要升级到其它产品线,体验更多的功能,而传统应用安装方案中,针对该情况,需要先卸载本地已安装的该应用,然后,再安装功能更多的,其它产品线的应用,其实现较为繁琐,且会导致本地已安装的应用的原有数据被删除,升级体验较差。
相应地,在本申请实施例中,对于上述情况,可以采用平滑升级的方式进行应用安装,即在需要对第一应用进行安装的情况下,若本地已安装与第一应用属于不同产品线,且功能为第一应用的部分功能的应用(本文中称为第三应用)的情况下,可以确定满足平滑升级条件,并采用平滑升级的方式进行升级。
需要说明的是,在本申请实施例中,在检测到针对第一应用的安装程序包的运行指令的情况下,若已安装了功能包含第一应用的其它应用,则可以输出相应指示,而不执行安装。
在一个示例中,在检测到针对第一应用的安装包程序的运行指令的情况下,可以包括:
在满足平滑升级条件的情况下,在第三应用的安装路径下,对第一应用进行增量覆盖安装,并保留第三应用的用户数据。
示例性的,在检测到针对第一应用的安装包程序的运行指令,且确定满足平滑升级条件,如已安装第三应用的情况下,可以在第三应用的安装路径下,对第一应用进行增量覆盖安装,即对于第三应用已安装的功能组件,进行覆盖式重新安装;对于第一应用包括的第三应用已安装的功能组件之外的其它组件,可以采用增量式安装。
其中,在对第一应用进行增量覆盖安装的情况下,保留第三应用的用户数据。
作为一种示例,上述对第一应用进行增量覆盖安装,可以包括:
确定第三应用是否为组合安装或兼容安装;其中,第三应用为组合安装包括当前安装有第五应用,第三应用为兼容安装包括当前安装有第六应用,第五应用与第三应用属于同一产品线,且存在共用组件的应用,第六应用与第三应用属于不同产品线,且存在共用组件的应用;
在第三应用为组合安装的情况下,确定第三应用与第五应用的共用组件是否需要升级;若需要升级,则对第一应用进行增量覆盖安装;若不需要升级,则在第一应用的安装过程中,对该共用组件进行复用;
在第三应用为兼容安装的情况下,确定第三应用与第六应用的共用组件是否需要升级;若需要升级,则对第一应用进行增量覆盖安装;若不需要升级,则在第一应用的安装过程中,对该共用组件进行复用。
示例性的,考虑到第三应用可能是采用组合安装或兼容安装(跨产品线兼容安装)的方式安装的,在该情况下,第三应用中的部分组件可能由于其它组件的平滑升级等原因已经与第一应用所需的组件相同。
因而,在确定第一应用满足平滑升级条件的情况下,还可以确定第三应用是否为组合安装,即本地是否已安装与第三应用属于相同产品线,且存在共用组件的应用(本文中称为第五应用),或,是否为兼容安装,即本地是否已安装与第三应用属于不同产品线,且存在共用组件的应用(本文中称为第六应用)。
即组合安装包括产品线内组合安装(简称为组合安装)或跨产品线组合安装(可以称为兼容安装)。
示例性的,对于任一应用程序,其安装包文件中可以包括用于记录支持与该应用程序兼容安装的其它应用程序的标识信息的配置文件。
相应地,在对应用程序进行安装的情况下,可以依据安装包文件中包括的上述配置文件,确定支持与该应用程序兼容安装的其它应用程序的标识信息,进而,确定该应用程序是否为兼容安装。
示例性的,对于任一应用程序,若已安装的其它应用程序中包括支持与该应用程序组合安装/兼容安装的应用程序,则确定该应用程序为组合安装/兼容安装。
在第三应用为组合安装的情况下,可以确定第三应用与第五应用的共用组件是否需要升级,若需要升级,则对第一应用进行增量覆盖安装;若不需要升级,则在第一应用的安装过程中,可以对第三应用与第五应用的共用组件进行复用。
在第三应用为兼容安装的情况下,可以确定第三应用与第六应用的共用组件是否需要升级,若需要升级,则对第一应用进行增量覆盖安装;若不需要升级,则在第一应用的安装过程中,可以对第三应用与第六应用的共用组件进行复用。
示例性的,考虑到同时安装来自不同产品线的应用时,很有可能出现功能冲突,导致功能异常不能用。
相应地,在确定不满足平滑升级条件,例如,未安装第三应用的情况下,可以确定是否存在应用互斥,即确定是否已安装与第一应用属于不同产品线,且与第一应用存在功能冲突的应用(本文中称为第四应用)。
在确定不存在应用互斥的情况下,可以确定当前是否已安装有第一应用。
在确定存在应用互斥的情况下,可以输出提示消息,提示用户存在应用互斥,无法安装。
在一些实施例中,在不存在应用互斥的情况下,确定当前是否已安装第一应用之后,还可以包括:
在当前未安装第一应用的情况下,确定是否满足兼容安装条件;其中,满足兼容安装条件包括已安装第七应用,第七应用为与第一应用属于不同产品线,且存在共用组件的应用;
在满足兼容安装条件的情况下,在第七应用的安装路径下,对第一应用进行安装;其中,第一应用的安装过程中,跳过第一应用与第七应用的共用组件的安装过程。
示例性的,对于支持跨产品线兼容安装的场景,在检测到针对第一应用的安装包程序的运行指令,且确定当前未安装第一应用的情况下,可以确定是否满足兼容安装条件。
示例性的,第一应用满足兼容安装条件可以包括已安装与第一应用属于不同产品线,且存在共用组件的应用(本文中称为第七应用)。
在确定第一应用满足兼容安装条件的情况下,可以在第七应用的安装路径下,对第一应用进行安装。在第一应用的安装过程中,对于第一应用于第七应用的共用组件,可以跳过该共用组件的安装过程。
在一些实施例中,在检测到针对第一应用的安装包程序的运行指令的情况下,还可以包括:
对第一应用的安装包程序进行初始化,将第一应用的安装包程序中包括的配置文件记录到内存;其中,配置文件包括平滑升级列表、应用互斥列表以及应用兼容列表;平滑升级列表用于记录与第一应用属于不同产品线,且功能为第一应用的部分功能的应用的标识信息;应用互斥列表用于记录与第一应用属于不同产品线,且功能与第一应用的功能存在冲突的应用的标识信息;应用兼容列表用于记录与第一应用属于不同产品线,且存在共用组件的应用的标识信息。
示例性的,为了更准确地确定应用是否满足平滑升级条件、是否存在互斥应用,以及,是否满足兼容安装条件,应用的安装包程序的配置文件中可以包括平滑升级列表、应用互斥列表以及应用兼容列表。
其中,平滑升级列表用于记录与第一应用属于不同产品线,且功能为第一应用的部分功能的应用的标识信息;应用互斥列表用于记录与第一应用属于不同产品线,且功能与第一应用的功能存在冲突的应用的标识信息;应用兼容列表用于记录与第一应用属于不同产品线,且存在共用组件的应用的标识信息。
相应地,在检测到针对第一应用的安装包程序的运行指令的情况下,可以对第一应用的安装包程序进行初始化,将第一应用的安装包程序中包括的配置文件记录的内存,并依据内存中配置文件的平滑升级列表、应用互斥列表以及应用兼容列表,确定应用是否满足平滑升级条件、是否存在互斥应用,以及,是否满足兼容安装条件。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。
在该实施例中,考虑到安防行业有很多细分的应用场景,安防公司需要针对这些细分领域设计开发不同的应用软件来满足用户需求,并且安防应用软件产品迭代速度快,用户定制化需求多,软件安装部署方案多样化,所以会生产出非常多的产品线和定制产品(即应用)。
基于此,该实施例提供一套可以多产品线多应用类型复用的安装包逻辑,可以极大的减轻重复开发的工作量,并能为用户提供多种安装部署方案。
一、单个应用安装方案介绍
单个应用的安装包安装模式主要包括:首次安装、修复安装、修改安装、升级安装、卸载安装等。
基础功能提供简易日志管理、压缩解压管理、多语言管理、注册表管理、XML(Extensible Markup Language,可扩展标记语言)管理、权限模块、GUI(Graphical UserInterface,图形用户接口)、Dump(备份文件系统)管理及服务管理。
1.1、首次安装:首次安装根据特定的成果物包进行编译打包为安装包,制作好卸载程序、资源文件包、许可协议文件、卸载文件目录到目前的框架中,安装各组件过程分为安装前检查、解压、安装后处理,最后完成注册表写入、快捷方式创建、控制面板添加程序等操作的过程。
1.2、修复安装:本地环境已经安装过此应用,使用相同安装包再次运行,可以提供修复安装选项。修复安装会将除数据库服务以外的其他服务进行卸载,对部分配置文件进行备份,然后在原安装路径上,重新解压成果物覆盖之前的文件,再进行服务注册和配置文件还原。修复安装不会重新安装数据库服务,也不会修改或删除数据库文件。
1.3、修改安装:全量包可以选择安装内容,包括客户端、平台服务、流媒体服务。修改安装是可以重新勾选或取消勾选某些安装内容,安装包程序会根据勾选结果进行安装或者卸载。例如,先安装了平台服务+客户端,然后再运行安装包取消勾选平台服务和客户端,改为只勾选流媒体服务,那么安装包会先卸载平台服务和客户端,然后安装流媒体服务。
1.4、升级安装(也可以简称为升级):根据程序GUID及版本号信息判断软件是否需要升级,若安装包中GUID与当前应用GUID相同且安装包中版本低于当前应用的版本,则执行升级操作。升级就是将制作好资源文件包、卸载程序、许可协议文件、卸载文件目录文本等已以资源的形式添加到安装包的安装程序框架中,再将资源包等释放到客户机进行覆盖原有文件及升级数据库等操作,并实现注册表更新,控制面板更新等操作过程。
1.5、卸载安装(也可以简称为卸载):运行程序首先会监测当前客户端设备是否安装此应用的GUID及版本,若GUID及版本与当前安装包相同可执行卸载操作,卸载会清除注册表、快捷方式、日志、控制面板信息及对应的成果物。
二、单一产品线安装方案介绍
按照产品线来划分,从类型上分为客户端安装包、OpenAPI(Open ApplicationProgramming Interface,开放的应用程序接口)安装包、SAC(Storage Access Component,存储访问组件)安装包以及全量安装包(简称全量包,包含平台服务、流媒体服务及客户端安装包)。其中,全量包的平台服务和OpenAPI、SAC可以组合安装,部署在同一台终端环境上,以减少用户的硬件成本。这三种安装包有部分组件是可以共用的。
例如,全量包和OpenAPI共用数据库、看门狗、Nginx三个组件,而SAC则与全量包、OpenAPI都共用看门狗组件,具体关系如图2所示。
2.1、组合安装:同一产品线中的不同应用,可以部署在同一台服务器上,安装路径相同,共用一些公共组件(即上述共用组件),比如看门狗服务、数据库服务、Nginx服务等。组合安装需要当前安装包能够在安装前识别到有本产品线的其他可以组合安装的应用已经安装,读取组合安装产品的安装路径,判断该路径下剩余磁盘空间是否足够自己安装,以及一些其他必要条件,全部符合则进入组合安装模式。在组合安装模式下,共用组件可以跳过安装过程,复用之前组合安装应用安装好的组件。
示例性的,安装包可以包括安装程序和卸载程序,安装程序提供对产品的安装、修复、修改、升级、卸载能力。运行安装包首先需要检查系统环境,判断是否符合安装条件,应该进入什么安装模式。
单一产品线的安装模式判断,主要依赖注册表中是否有本产品的GUID。例如,安装应用后,需要在在注册表路径用本应用的GUID创建一张表,里面记录必要的安装信息,包括安装路径、卸载程序路径、版本号、发布者信息等。应用安装包根据是否有本应用的GUID注册表来判断是首次安装还是二次安装(修复、卸载、升级等)。
2.2、单一产品线安装逻辑:
如图3所示,单一产品线安装逻辑可以包括:首先读取注册表,判断是否已经安装本应用,若未安装,则为首次安装,需要进一步判断是否有同一产品线的可以组合安装的应用已经安装,即是否满足组合安装条件。若不符合组合安装条件,则需要用户选择安装路径以及其他必要安装信息(比如数据库文件存放路径等),然后进行首次安装流程。
若读取注册表发现已安装本应用,根据注册表中版本号和当前安装包中版本号进行判断:
2.2.1、若当前安装包中版本号大于注册表中的版本号,则进行升级安装;
2.2.2、若当前安装包中版本号与注册表中的版本号相同,则输出安装模式选择消息,由用户选择是修复安装、修改安装还是卸载;
2.2.3、若当前安装包中版本号小于注册表中的版本号,则提示已安装高版本,并退出安装程序。
示例性的,上述流程中的2.2.1和2.2.2,升级和修复安装,可能是在组合安装场景上,进行升级和修复,因而,需要在安装过程中判断是否需要对共用组件进行升级或修复。
三、多产品线安装方案介绍
在该实施例中,为了能够给用户提供最新最好的应用服务,于是出现了跨产品线兼容和升级安装的需求:
3.1、跨产品线兼容:不同产品线的应用之间也可能存在共用组件,因而,可以支持跨产品线兼容安装。
例如,基线的OpenAPI作为一个增量开发的软件产品,高版本能够兼容所有产品线的低版本的平台服务,因此,基线的OpenAPI理论上可以和任何产品线低版本的平台服务组合安装,进而,出现了跨产品线的OpenAPI和平台服务组合安装的业务场景。
3.2、跨产品线升级(也可以称为平滑升级):不同产品线的相同类型应用进行升级,业务组件增量覆盖安装,实现功能更新和扩展。
示例性的,对于基于相同架构,不同业务的应用,可以配置是否能够跨产品线升级。例如,安防综合管理服务基线是集成了所有业务的应用。其他专业应用场景的应用,比如门禁应用,用户购买门禁应用后使用体验较好,想要升级为安防综合管理服务应用,体验一下更为全面的综合安防应用,但又想保留原有的门禁应用已经产生的所有用户数据。因此,安防综合管理服务应用安装包需要能够支持门禁应用跨产品线升级,包括服务升级安装、数据库备份升级等。
3.3、多产品线互斥(也可以称为应用互斥):不同产品线的,功能存在冲突的应用,安装在一起可能导致功能异常,即存在应用互斥。
例如,假设用户已经安装了某应用A,此时又计划安装来自其他产品线的某应用B,已知应用A和应用B功能冲突,安装在一起可能导致功能异常,此时需要在运行应用B的安装包时,能够提示用户,当前应用与应用A冲突,不能安装,但是由于应用A与应用B来自不同产品线,彼此之间没有任何关联,需要有方案能够灵活配置安装互斥关系。
安装包的实现方案为,在产品成果物的产品配置文件(Product.xml)中分别增加平滑升级列表、应用互斥列表、应用兼容列表三个配置节点。
其中,对于平滑升级列表,一个应用可以配置一个或多个可以平滑升级的应用信息。每个平滑升级的应用信息内容可以包括但不限于:允许升级的应用GUID、最小版本号、最大版本号、应用名称、品牌名称。
安装包开始运行会逐个查询注册表GUID,看看是否满足平滑升级条件。
示例性的,平滑升级条件可以设置最低版本号和最高版本号,在此版本区间内支持平滑升级。
对于应用互斥列表,一个应用可以配置一个或多个与该应用存在应用互斥的应用的GUID。
对于应用兼容列表,一个应用可以配置一个或多个可以兼容安装的应用信息。每个兼容安装的应用信息内容可以包括但不限于:兼容的应用的GUID和最低版本号及最高版本号。
示例性的,上述配置文件可以在集成打包时,拷贝到安装包资源目录下。
3.4、跨产品线安装逻辑
示例性的,如图4所示,跨产品线安装逻辑是在上述单一产品线安装逻辑之上,增加了一些前置判断,具体实现逻辑可以包括:
3.4.1、释放配置文件到临时路径,读取配置文件内容到安装包内存,包括平滑升级列表、应用互斥列表、应用兼容列表,根据配置文件中平滑升级列表,确定是否满足平滑升级条件;若满足平滑升级条件,则进入平滑升级模式,在当前已安装的允许平滑升级的应用的路径下进行增量覆盖安装;
3.4.2、若不满足平滑升级条件,则根据配置文件中应用互斥列表,确定是否存在应用互斥;若不存在应用互斥,则按照单一产品线安装逻辑进行应用安装。
示例性的,区别于单一产品线安装逻辑,在进行组合安装判断时,还需要判断根据配置文件中的应用兼容列表,进行兼容安装判断。
3.4.3、若存在应用互斥,则输出提示消息,提示用户当前应用与已安装的指定应用互斥,无法安装,然后退出安装程序。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图5,为本申请实施例提供的一种应用安装装置的结构示意图,如图5所示,该应用安装装置可以包括:
确定单元510,用于在检测到针对第一应用的安装包程序的运行指令,且当前未安装所述第一应用的情况下,确定是否满足组合安装条件;其中,所述满足组合安装条件包括已安装第二应用,所述第二应用为与所述第一应用存在共用组件的应用;
安装单元520,用于在满足组合安装条件的情况下,在所述第二应用的安装路径下,对所述第一应用进行安装;其中,所述第一应用的安装过程中,跳过所述第一应用与所述第二应用的共用组件的安装过程;
所述安装单元520,还用于在不满足组合安装条件的情况下,执行所述第一应用的首次安装流程。
在一些实施例中,所述安装单元520,还用于在检测到针对第一应用的安装包程序的运行指令的情况下,对所述第一应用的安装包程序进行初始化,将所述第二应用的标识信息记录到内存中;
所述确定单元510,还用于依据所述内存中记录的所述第二应用的标识信息查询注册表,确定是否满足组合安装条件。
在一些实施例中,所述确定单元510,还用于在检测到针对第一应用的安装包程序的运行指令,且当前已安装所述第一应用,所述第一应用的安装包程序中的版本号大于当前已安装的所述第一应用的版本号的情况下,确定所述第一应用与所述第二应用的共用组件是否需要升级。
在一些实施例中,所述安装单元520,还用于在检测到针对第一应用的安装包程序的运行指令,且当前已安装所述第一应用,所述第一应用的安装包程序中的版本号等于当前已安装的所述第一应用的版本号的情况下,输出安装模式选择消息;
所述安装单元520,还用于在依据检测到的选择指令确定安装模式为修改安装,且确定需修改的组件中包括所述第一应用与所述第二应用的共用组件的情况下,对需修改的组件中除该共用组件之外的其余组件进行卸载,并安装修改后的组件;
所述安装单元520,还用于在依据检测到的选择指令确定安装模式为卸载安装的情况下,对所述第一应用包括的全部组件中,除所述第一应用与所述第二应用的共用组件之外的其余组件,进行卸载。
在一些实施例中,所述确定单元510,还用于在检测到针对第一应用的安装包程序的运行指令的情况下,确定是否满足平滑升级条件;其中,所述平滑升级条件包括已安装第三应用,所述第三应用为与所述第一应用属于不同产品线,且所述第三应用的功能为所述第一应用的部分功能;
所述确定单元510,还用于在不满足平滑升级条件的情况下,确定是否存在应用互斥;其中,所述存在应用互斥包括已安装第四应用,所述第四应用为与所述第一应用属于不同产品线,且存在功能冲突的应用;
所述确定单元510,还用于在不存在应用互斥的情况下,确定当前是否已安装所述第一应用。
在一些实施例中,所述安装单元520,还用于在满足平滑升级条件的情况下,在所述第三应用的安装路径下,对所述第一应用进行增量覆盖安装,并保留所述第三应用的用户数据。
在一些实施例中,所述安装单元520对所述第一应用进行增量覆盖安装,包括:
确定所述第三应用是否为组合安装或兼容安装;其中,所述第三应用为组合安装包括当前安装有第五应用,所述第三应用为兼容安装包括当前安装有第六应用,所述第五应用与所述第三应用属于同一产品线,且存在共用组件的应用,所述第六应用与所述第三应用属于不同产品线,且存在共用组件的应用;
在所述第三应用为组合安装的情况下,确定所述第三应用与所述第五应用的共用组件是否需要升级;若需要升级,则对所述第一应用进行增量覆盖安装;若不需要升级,则在所述第一应用的安装过程中,对该共用组件进行复用;
在所述第三应用为兼容安装的情况下,确定所述第三应用与所述第六应用的共用组件是否需要升级;若需要升级,则对所述第一应用进行增量覆盖安装;若不需要升级,则在所述第一应用的安装过程中,对该共用组件进行复用。
在一些实施例中,所述确定单元510,还用于在当前未安装所述第一应用的情况下,确定是否满足兼容安装条件;其中,满足兼容安装条件包括已安装第七应用,所述第七应用为与所述第一应用属于不同产品线,且存在共用组件的应用;
所述安装单元520,还用于在满足兼容安装条件的情况下,在所述第七应用的安装路径下,对所述第一应用进行安装;其中,所述第一应用的安装过程中,跳过所述第一应用与所述第七应用的共用组件的安装过程。
在一些实施例中,所述安装单元520,还用于在检测到针对第一应用的安装包程序的运行指令的情况下,对所述第一应用的安装包程序进行初始化,将所述第一应用的安装包程序中包括的配置文件记录到内存;其中,所述配置文件包括平滑升级列表、应用互斥列表以及应用兼容列表;所述平滑升级列表用于记录与所述第一应用属于不同产品线,且功能为所述第一应用的部分功能的应用的标识信息;所述应用互斥列表用于记录与所述第一应用属于不同产品线,且功能与所述第一应用的功能存在冲突的应用的标识信息;所述应用兼容列表用于记录与所述第一应用属于不同产品线,且存在共用组件的应用的标识信息。
本申请实施例提供一种电子设备,包括处理器和存储器,其中,存储器存储有能够被所述处理器执行的机器可执行指令,处理器用于执行机器可执行指令,以实现上文描述的应用安装方法。
请参见图6,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可包括处理器601、存储有机器可执行指令的存储器602。处理器601与存储器602可经由系统总线603通信。并且,通过读取并执行存储器602中与应用安装逻辑对应的机器可执行指令,处理器601可执行上文描述的应用安装方法。
本文中提到的存储器602可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
在一些实施例中,还提供了一种存储介质,如图6中的存储器602,该存储介质为机器可读存储介质,该存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上文描述的应用安装方法。例如,所述存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (13)

1.一种应用安装方法,其特征在于,包括:
在检测到针对第一应用的安装包程序的运行指令,且当前未安装所述第一应用的情况下,确定是否满足组合安装条件;其中,所述满足组合安装条件包括已安装第二应用,所述第二应用为与所述第一应用存在共用组件的应用;
在满足组合安装条件的情况下,在所述第二应用的安装路径下,对所述第一应用进行安装;其中,所述第一应用的安装过程中,跳过所述第一应用与所述第二应用的共用组件的安装过程;
在不满足组合安装条件的情况下,执行所述第一应用的首次安装流程。
2.根据权利要求1所述的方法,其特征在于,在检测到针对第一应用的安装包程序的运行指令的情况下,所述方法还包括:
对所述第一应用的安装包程序进行初始化,将所述第二应用的标识信息记录到内存中;
依据所述内存中记录的所述第二应用的标识信息查询注册表,确定是否满足组合安装条件。
3.根据权利要求1所述的方法,其特征在于,在检测到针对第一应用的安装包程序的运行指令的情况下,所述方法还包括:
在当前已安装所述第一应用,且所述第一应用的安装包程序中的版本号大于当前已安装的所述第一应用的版本号的情况下,确定所述第一应用与所述第二应用的共用组件是否需要升级;
在确定所述第一应用与第二应用的共用组件需要升级的情况下,对所述第一应用的全部组件进行升级;
在确定所述第一应用与第二应用的共用组件不需要升级的情况下,对所述第一应用的全部组件中的其余组件进行升级。
4.根据权利要求1所述的方法,其特征在于,在检测到针对第一应用的安装包程序的运行指令的情况下,所述方法还包括:
在当前已安装所述第一应用,且所述第一应用的安装包程序中的版本号等于当前已安装的所述第一应用的版本号的情况下,输出安装模式选择消息;
在依据检测到的选择指令确定安装模式为修改安装,且确定需修改的组件中包括所述第一应用与所述第二应用的共用组件的情况下,对需修改的组件中除该共用组件之外的其余组件进行卸载,并安装修改后的组件;
在依据检测到的选择指令确定安装模式为卸载安装的情况下,对所述第一应用包括的全部组件中,除所述第一应用与所述第二应用的共用组件之外的其余组件,进行卸载。
5.根据权利要求1所述的方法,其特征在于,在检测到针对第一应用的安装包程序的运行指令的情况下,所述方法还包括:
确定是否满足平滑升级条件;其中,所述平滑升级条件包括已安装第三应用,所述第三应用为与所述第一应用属于不同产品线,且所述第三应用的功能为所述第一应用的部分功能;
在不满足平滑升级条件的情况下,确定是否存在应用互斥;其中,所述存在应用互斥包括已安装第四应用,所述第四应用为与所述第一应用属于不同产品线,且存在功能冲突的应用;
在不存在应用互斥的情况下,确定当前是否已安装所述第一应用。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在满足平滑升级条件的情况下,在所述第三应用的安装路径下,对所述第一应用进行增量覆盖安装,并保留所述第三应用的用户数据。
7.根据权利要求6所述的方法,其特征在于,所述对所述第一应用进行增量覆盖安装,包括:
确定所述第三应用是否为组合安装或兼容安装;其中,所述第三应用为组合安装包括当前安装有第五应用,所述第三应用为兼容安装包括当前安装有第六应用,所述第五应用与所述第三应用属于同一产品线,且存在共用组件的应用,所述第六应用与所述第三应用属于不同产品线,且存在共用组件的应用;
在所述第三应用为组合安装的情况下,确定所述第三应用与所述第五应用的共用组件是否需要升级;若需要升级,则对所述第一应用进行增量覆盖安装;若不需要升级,则在所述第一应用的安装过程中,对该共用组件进行复用;
在所述第三应用为兼容安装的情况下,确定所述第三应用与所述第六应用的共用组件是否需要升级;若需要升级,则对所述第一应用进行增量覆盖安装;若不需要升级,则在所述第一应用的安装过程中,对该共用组件进行复用。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在当前未安装所述第一应用的情况下,确定是否满足兼容安装条件;其中,满足兼容安装条件包括已安装第七应用,所述第七应用为与所述第一应用属于不同产品线,且存在共用组件的应用;
在满足兼容安装条件的情况下,在所述第七应用的安装路径下,对所述第一应用进行安装;其中,所述第一应用的安装过程中,跳过所述第一应用与所述第七应用的共用组件的安装过程。
9.根据权利要求5-8任一项所述的方法,其特征在于,在检测到针对第一应用的安装包程序的运行指令的情况下,所述方法还包括:
对所述第一应用的安装包程序进行初始化,将所述第一应用的安装包程序中包括的配置文件记录到内存;其中,所述配置文件包括平滑升级列表、应用互斥列表以及应用兼容列表;所述平滑升级列表用于记录与所述第一应用属于不同产品线,且功能为所述第一应用的部分功能的应用的标识信息;所述应用互斥列表用于记录与所述第一应用属于不同产品线,且功能与所述第一应用的功能存在冲突的应用的标识信息;所述应用兼容列表用于记录与所述第一应用属于不同产品线,且存在共用组件的应用的标识信息。
10.一种应用安装装置,其特征在于,包括:
确定单元,用于在检测到针对第一应用的安装包程序的运行指令,且当前未安装所述第一应用的情况下,确定是否满足组合安装条件;其中,所述满足组合安装条件包括已安装第二应用,所述第二应用为与所述第一应用存在共用组件的应用;
安装单元,用于在满足组合安装条件的情况下,在所述第二应用的安装路径下,对所述第一应用进行安装;其中,所述第一应用的安装过程中,跳过所述第一应用与所述第二应用的共用组件的安装过程;
所述安装单元,还用于在不满足组合安装条件的情况下,执行所述第一应用的首次安装流程。
11.根据权利要求10所述的装置,其特征在于,
所述安装单元,还用于在检测到针对第一应用的安装包程序的运行指令的情况下,对所述第一应用的安装包程序进行初始化,将所述第二应用的标识信息记录到内存中;
所述确定单元,还用于依据所述内存中记录的所述第二应用的标识信息查询注册表,确定是否满足组合安装条件;
和/或,
所述确定单元,还用于在检测到针对第一应用的安装包程序的运行指令,且当前已安装所述第一应用,所述第一应用的安装包程序中的版本号大于当前已安装的所述第一应用的版本号的情况下,确定所述第一应用与所述第二应用的共用组件是否需要升级;
和/或,
所述安装单元,还用于在检测到针对第一应用的安装包程序的运行指令,且当前已安装所述第一应用,所述第一应用的安装包程序中的版本号等于当前已安装的所述第一应用的版本号的情况下,输出安装模式选择消息;
所述安装单元,还用于在依据检测到的选择指令确定安装模式为修改安装,且确定需修改的组件中包括所述第一应用与所述第二应用的共用组件的情况下,对需修改的组件中除该共用组件之外的其余组件进行卸载,并安装修改后的组件;
所述安装单元,还用于在依据检测到的选择指令确定安装模式为卸载安装的情况下,对所述第一应用包括的全部组件中,除所述第一应用与所述第二应用的共用组件之外的其余组件,进行卸载;
和/或,
所述确定单元,还用于在检测到针对第一应用的安装包程序的运行指令的情况下,确定是否满足平滑升级条件;其中,所述平滑升级条件包括已安装第三应用,所述第三应用为与所述第一应用属于不同产品线,且所述第三应用的功能为所述第一应用的部分功能;
所述确定单元,还用于在不满足平滑升级条件的情况下,确定是否存在应用互斥;其中,所述存在应用互斥包括已安装第四应用,所述第四应用为与所述第一应用属于不同产品线,且存在功能冲突的应用;
所述确定单元,还用于在不存在应用互斥的情况下,确定当前是否已安装所述第一应用;
其中,所述安装单元,还用于在满足平滑升级条件的情况下,在所述第三应用的安装路径下,对所述第一应用进行增量覆盖安装,并保留所述第三应用的用户数据;
其中,所述安装单元对所述第一应用进行增量覆盖安装,包括:
确定所述第三应用是否为组合安装或兼容安装;其中,所述第三应用为组合安装包括当前安装有第五应用,所述第三应用为兼容安装包括当前安装有第六应用,所述第五应用与所述第三应用属于同一产品线,且存在共用组件的应用,所述第六应用与所述第三应用属于不同产品线,且存在共用组件的应用;
在所述第三应用为组合安装的情况下,确定所述第三应用与所述第五应用的共用组件是否需要升级;若需要升级,则对所述第一应用进行增量覆盖安装;若不需要升级,则在所述第一应用的安装过程中,对该共用组件进行复用;
在所述第三应用为兼容安装的情况下,确定所述第三应用与所述第六应用的共用组件是否需要升级;若需要升级,则对所述第一应用进行增量覆盖安装;若不需要升级,则在所述第一应用的安装过程中,对该共用组件进行复用;
其中,所述确定单元,还用于在当前未安装所述第一应用的情况下,确定是否满足兼容安装条件;其中,满足兼容安装条件包括已安装第七应用,所述第七应用为与所述第一应用属于不同产品线,且存在共用组件的应用;
所述安装单元,还用于在满足兼容安装条件的情况下,在所述第七应用的安装路径下,对所述第一应用进行安装;其中,所述第一应用的安装过程中,跳过所述第一应用与所述第七应用的共用组件的安装过程;
其中,所述安装单元,还用于在检测到针对第一应用的安装包程序的运行指令的情况下,对所述第一应用的安装包程序进行初始化,将所述第一应用的安装包程序中包括的配置文件记录到内存;其中,所述配置文件包括平滑升级列表、应用互斥列表以及应用兼容列表;所述平滑升级列表用于记录与所述第一应用属于不同产品线,且功能为所述第一应用的部分功能的应用的标识信息;所述应用互斥列表用于记录与所述第一应用属于不同产品线,且功能与所述第一应用的功能存在冲突的应用的标识信息;所述应用兼容列表用于记录与所述第一应用属于不同产品线,且存在共用组件的应用的标识信息。
12.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求1-9任一项所述的方法。
13.一种机器可读存储介质,其特征在于,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现如权利要求1-9任一项所述的方法。
CN202310345079.0A 2023-03-28 2023-03-28 应用安装方法、装置、电子设备及机器可读存储介质 Pending CN116301948A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310345079.0A CN116301948A (zh) 2023-03-28 2023-03-28 应用安装方法、装置、电子设备及机器可读存储介质
PCT/CN2024/082741 WO2024199039A1 (zh) 2023-03-28 2024-03-20 应用安装方法、装置、电子设备及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310345079.0A CN116301948A (zh) 2023-03-28 2023-03-28 应用安装方法、装置、电子设备及机器可读存储介质

Publications (1)

Publication Number Publication Date
CN116301948A true CN116301948A (zh) 2023-06-23

Family

ID=86827075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310345079.0A Pending CN116301948A (zh) 2023-03-28 2023-03-28 应用安装方法、装置、电子设备及机器可读存储介质

Country Status (2)

Country Link
CN (1) CN116301948A (zh)
WO (1) WO2024199039A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118885185A (zh) * 2024-07-12 2024-11-01 荣耀终端有限公司 安装公共组件的方法、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783092A (zh) * 2019-01-04 2019-05-21 珠海天燕科技有限公司 一种应用程序安装方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341619B2 (en) * 2009-05-13 2012-12-25 Oracle International Corporation Simplifying installation of software modules on heterogeneous remote systems
CN106095518B (zh) * 2016-06-28 2019-05-14 东软集团股份有限公司 应用程序安装方法及装置
CN106775845A (zh) * 2016-11-30 2017-05-31 用友优普信息技术有限公司 一种软件安装升级的方法
CN114625384A (zh) * 2022-03-10 2022-06-14 杭州海康威视数字技术股份有限公司 安装包生成方法、安装方法、装置、设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783092A (zh) * 2019-01-04 2019-05-21 珠海天燕科技有限公司 一种应用程序安装方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118885185A (zh) * 2024-07-12 2024-11-01 荣耀终端有限公司 安装公共组件的方法、电子设备及存储介质
CN118885185B (zh) * 2024-07-12 2025-12-05 荣耀终端股份有限公司 安装公共组件的方法、电子设备及存储介质

Also Published As

Publication number Publication date
WO2024199039A9 (zh) 2025-01-30
WO2024199039A1 (zh) 2024-10-03

Similar Documents

Publication Publication Date Title
CN100426235C (zh) 在软件包管理系统将用户进程表示为软件包的系统和方法
CN103559052B (zh) 固件更新的设备与方法
US10824411B2 (en) Install file size optimization and installation verification system
US7334157B1 (en) Restore of data to a computer system having different hardware
JP5007046B2 (ja) コンポーネントベースのソフトウェア・プロダクトの保守
US7530079B2 (en) Managing application customization
US20060020937A1 (en) System and method for extraction and creation of application meta-information within a software application repository
US20040045000A1 (en) Software license management system and method and recording medium
US20050010915A1 (en) Network-based server code auto upgrade method and system
US20070101197A1 (en) System and method for representing system capabilities as software packages in a software package management system
JP2005078649A (ja) ブランド化のフレームワーク
US20050120344A1 (en) Optimal component installation
US20210141632A1 (en) Automated software patching for versioned code
US20050120331A1 (en) Hosting environment abstraction agents
US8224750B1 (en) Method and system for upgrading licenses to installed software
US20080163092A1 (en) One stop install, un-install, and update of software products
CN111679855A (zh) 一种应用程序软件包转换方法、管理方法及装置
CN102054041A (zh) 元数据升级方法和系统
CN102999349A (zh) 一种软件升级方法
US8458731B2 (en) Methods, systems and media for installing peripheral software drivers
CN117707543A (zh) 一种应用安装包制作和安装方法、计算设备及存储介质
CN116301948A (zh) 应用安装方法、装置、电子设备及机器可读存储介质
WO2011157105A2 (zh) 组件扩展方法和装置
US8365165B2 (en) Dynamic addition of products and removal of software products on a distribution server
US20090089779A1 (en) Apparatus system and method for customizing a computing environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination