Application installation method and apparatus, electronic device, and machine readable storage medium

WO2024199039A9PCT designated stage expired Publication Date: 2025-01-30HANGZHOU HIKVISION DIGITAL TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/082741
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-03-28
Filing Date
2024-03-20
Publication Date
2025-01-30

AI Technical Summary

Technical Problem

The existing installer is designed for a single application, making it difficult to handle the combined installation scenarios of multiple different applications. Maintenance and deployment are complex, and shared components cannot be effectively reused, resulting in low installation efficiency and waste of storage space.

Method used

By detecting the installation package program, it is determined whether the combined installation conditions are met. If an application with shared components is already installed, it will be installed in its installation path, skipping the installation process of shared components, improving installation efficiency and reducing storage space usage.

Benefits of technology

It achieves high efficiency of multi-application combined installation and optimization of storage space, simplifies the installation process and reduces maintenance complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024082741_30012025_PF_FP_ABST
    Figure CN2024082741_30012025_PF_FP_ABST
Patent Text Reader

Abstract

The present application provides an application installation method and apparatus, an electronic device, and a machine readable storage medium. The method comprises: when an operation instruction for an installation package program of a first application is detected and the first application is not installed at present, determining whether a combination installation condition is met; when the combination installation condition is met, installing the first application in the installation path of a second application; and when the combination installation condition is not met, executing a first installation process of the first application. The method can improve the application installation efficiency, and reduce the storage space occupied by application installation.
Need to check novelty before this filing date? Find Prior Art

Description

Application installation method, device, electronic device and machine-readable storage medium Technical Field

[0001] The present application relates to the field of software technology, and in particular to an application installation method, device, electronic device, and machine-readable storage medium. Background Art

[0002] The installer created by the installer creation tool is usually for a single application. If there are multiple applications with different businesses, multiple corresponding installer codes are required, which is very difficult to maintain.

[0003] In addition, the installation package function is usually used to install and deploy a single application. This type of installation package design cannot handle application scenarios where multiple different applications need to be installed in combination with each other.

[0004] Summary of the Invention

[0005] In view of this, the present application provides an application installation method, device, electronic device and machine-readable storage medium.

[0006] According to a first aspect of an embodiment of the present application, an application installation method is provided, comprising: upon detecting a running instruction for an installation package program for a first application and the first application is not currently installed, determining whether a combined installation condition is met; wherein, meeting the combined installation condition comprises having installed a second application, the second application being an application that shares components with the first application; upon meeting the combined installation condition, installing the first application under the installation path of the second application; wherein, during the installation process of the first application, skipping the installation process of the shared components of the first application and the second application; and executing the first installation process of the first application if the combined installation condition is not met.

[0007] According to a second aspect of an embodiment of the present application, an application installation device is provided, comprising: a determination unit for determining whether a combined installation condition is met when a running instruction for an installation package program for a first application is detected and the first application is not currently installed; wherein meeting the combined installation condition includes having installed a second application, and the second application is an application that shares components with the first application; an installation unit for installing the first application under the installation path of the second application when the combined installation condition is met; wherein, during the installation process of the first application, the installation process of the shared components of the first application and the second application is skipped; the installation unit is further used to execute the first installation process of the first application when the combined installation condition is not met.

[0008] According to a third aspect of an embodiment of the present application, an electronic device is provided, comprising a processor and a memory, wherein the memory stores machine-executable instructions that can be executed by the processor, and the processor is used to execute the machine-executable instructions to implement the method provided in the first aspect.

[0009] According to a fourth aspect of an embodiment of the present application, a machine-readable storage medium is provided, wherein the machine-readable storage medium stores machine-executable instructions, and when the machine-executable instructions are executed by a processor, the method provided in the first aspect is implemented.

[0010] The application installation method of an embodiment of the present application, when detecting a running instruction for an installation package program for a first application and determining that the first application is not currently installed, determines whether a combined installation condition is met, and when the combined installation condition is met, installs the first application under the installation path of the second application, and during the installation of the first application, skips the installation process of the common components of the first application and the second application, thereby improving the application installation efficiency and reducing the storage space occupied by the application installation by reusing components of the installed applications. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] FIG1 is a flow chart of an application installation method provided in an embodiment of the present application;

[0012] FIG2 is a schematic diagram of a component shared by different applications provided in an embodiment of the present application;

[0013] FIG3 is a schematic diagram of a single product line installation logic provided by an embodiment of the present application;

[0014] FIG4 is a schematic diagram of a cross-product line installation logic provided by an embodiment of the present application;

[0015] FIG5 is a schematic diagram of the structure of an application installation device provided in an embodiment of the present application;

[0016] FIG6 is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0017] Exemplary embodiments will be described in detail herein, with examples illustrated in the accompanying drawings. In the following description, when referring to the drawings, identical numerals in different figures represent identical or similar elements, unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all embodiments consistent with the present application. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present application, as detailed in the appended claims.

[0018] The terms used in this application are for the purpose of describing particular embodiments only and are not intended to limit this application. As used in this application and the appended claims, the singular forms "a," "an," "the," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.

[0019] In order to enable those skilled in the art to better understand the technical solutions provided by the embodiments of the present application, and to make the above-mentioned purposes, features and advantages of the embodiments of the present application more obvious and easy to understand, the technical solutions in the embodiments of the present application are further described in detail below with reference to the accompanying drawings.

[0020] It should be noted that the serial numbers of the steps in the embodiments of the present application do not mean the order of execution. The order of execution of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0021] Please refer to FIG1 , which is a flowchart of an application installation method provided in an embodiment of the present application. As shown in FIG1 , the application installation method may include steps S100 to S120:

[0022] Step S100: If an execution instruction for the installation package program for the first application is detected and the first application is not currently installed, determine whether a combined installation condition is met; where the combined installation condition is met, the second application is an application that shares components with the first application. If so, proceed to step S110; otherwise, proceed to step S120.

[0023] In the embodiments of the present application, the first application does not specifically refer to a fixed application, but can refer to any application that supports installation using the application installation method provided in the embodiments of the present application. In the embodiments of the present application, the execution subject of the application installation method is an electronic device, including but not limited to: security products, cellular phones, smart phones, wearable devices, computers, personal digital assistants (PDAs), personal communication system (PCS) devices, personal information managers (PIMs), personal navigation devices (PNDs), multimedia devices, Internet of Things (IoT) devices, etc.

[0024] In an embodiment of the present application, when an execution instruction of the installation package program for the first application is detected, it can be determined whether the first application is currently installed, that is, whether the first application is installed for the first time.

[0025] Exemplarily, the registry can be queried based on the identification information of the first application, such as a GUID (Globally Unique Identifier), to determine whether the identification information of the first application exists; if the identification information of the first application exists, it is determined that the first application is currently installed; otherwise, it is determined that the first application is not currently installed, wherein the registry is stored, for example, in the memory of an electronic device used to execute the application installation method.

[0026] In an embodiment of the present application, when it is determined that the first application is not currently installed, it can be further determined whether the combined installation condition is met.

[0027] Exemplarily, satisfying the combined installation condition may include having installed an application (referred to herein as the second application) that shares components with the first application.

[0028] Step S110: Install the first application in the installation path of the second application; wherein, during the installation of the first application, skip the installation of the common components of the first application and the second application.

[0029] In an embodiment of the present application, in order to improve the efficiency of application installation and reduce the storage space required for application installation, when the combined installation conditions are met, the first application can be installed under the installation path of the second application, and during the installation process of the first application, for the common components of the first application and the second application, the installation of the common components can be skipped, and the corresponding components already installed in the second application (i.e., the common components shared with the first application) can be reused.

[0030] Exemplarily, for any application, its installation package file may include a configuration file for recording identification information of other application programs that support installation in combination with the application program.

[0031] Accordingly, when installing an application, identification information of other applications that support combined installation with the application can be determined based on the configuration file included in the installation package file, and further, whether the application meets the combined installation conditions.

[0032] It should be noted that, considering that application installation requires a certain amount of storage space, insufficient storage space will result in installation failure. Therefore, the aforementioned combined installation condition may also include that the remaining storage space of the storage space (e.g., disk) where the second application resides is sufficient to install the first application. Furthermore, the combined installation condition may also include other conditions, such as the hardware conditions of the host computer where the application is installed, such as memory size and CPU (Center Process Unit) performance.

[0033] Step S120: Execute the first installation process of the first application.

[0034] In an embodiment of the present application, when the combined installation conditions are not met, the user can select the installation path and other necessary installation information (such as the database file storage path, etc.), and then perform the first installation process.

[0035] It can be seen that in the method flow shown in Figure 1, when the running instruction of the installation package program for the first application is detected and it is determined that the first application is not currently installed, it is determined whether the combined installation condition is met, and when the combined installation condition is met, the first application is installed under the installation path of the second application, and during the installation process of the first application, the installation process of the common components of the first application and the second application can be skipped. By reusing the components of the installed applications, the application installation efficiency is improved and the storage space occupied by the application installation is reduced.

[0036] In some embodiments, when an execution instruction for the installation package program for the first application is detected, the application installation method may further include: initializing the installation package program for the first application and recording the identification information of the second application into the memory; querying the registry based on the identification information of the second application recorded in the memory to determine whether the combined installation conditions are met.

[0037] Illustratively, the installation package program of the first application may include identification information of other applications that share components with the first application, such as a GUID.

[0038] Accordingly, when an operating instruction for the installation package program of the first application is detected, the installation package program of the first application can be initialized, and the identification information of the second application included in the installation package program of the first application can be recorded in the memory (such as the installation package memory). Then, the registry can be queried based on the identification information of the second application recorded in the memory to determine whether the combined installation condition is met, that is, whether the second application is installed. If the identification information of the second application exists in the registry, it is determined that the combined installation condition is met.

[0039] It should be noted that in an embodiment of the present application, if there are multiple second applications that share components with the first application, and there are no shared components between the multiple second applications, in this case, the installation process of the shared components shared with the multiple second applications can be skipped, and only other non-shared components in the first application need to be installed, thereby improving the application installation efficiency and reducing the storage space occupied by the application installation. At this time, the installation path of the first application can be under the installation path of the second application, where multiple applications are installed in combination and are installed under the same path by default.

[0040] In some embodiments, when an execution instruction of an installation package program for a first application is detected, the application installation method may further include: determining whether the common components of the first application and the second application need to be upgraded if the first application is currently installed and the version number in the installation package program of the first application is greater than the version number of the currently installed first application; when it is determined that the common components of the first application and the second application need to be upgraded, upgrading all components of the first application; when it is determined that the common components of the first application and the second application do not need to be upgraded, upgrading all components of the first application except the common components.

[0041] Exemplarily, the installation package of the application may also include version information of the application, such as a version number.

[0042] Accordingly, when an execution instruction for the installation package program of the first application is detected and it is determined that the first application is currently installed, the version number in the installation package program of the first application (which can be called the first version number) can also be compared with the version number of the currently installed first application (which can be called the second version number).

[0043] When the first version number is greater than the second version number, it can be determined that the currently installed first application needs to be upgraded.

[0044] Considering that the currently installed first application may be installed in a combined installation manner, that is, the first application may share components with other applications (ie, the second application), and the shared components may have been upgraded when the second application was upgraded.

[0045] Therefore, when the first version number is greater than the second version number, it can also be determined whether the common components of the first application and the second application need to be upgraded.

[0046] Exemplarily, for any shared component of the first application and the second application, the version of the shared component in the installation package program of the first application and the version of the currently installed shared component can be compared; if the former (the version of the shared component in the installation package program of the first application) is higher than the latter (the version of the installed shared component), and the lower version of the shared component cannot meet the usage requirements, it is determined that the shared component needs to be upgraded; if the former is not higher than the latter, it is determined that the shared component does not need to be upgraded; or if the former is higher than the latter, but the lower version of the shared component meets the usage requirements, it is determined that the shared component does not need to be upgraded.

[0047] When it is determined that the common components of the first application and the second application need to be upgraded, all components of the first application may be upgraded.

[0048] When it is determined that the common components of the first application and the second application do not need to be upgraded, all components of the first application except the common components with the second application may be upgraded.

[0049] In some embodiments, when a running instruction for an installation package program for a first application is detected, the application installation method may further include: outputting an installation mode selection message when there is a currently installed first application and the version number in the installation package program of the first application is equal to the version number of the currently installed first application; when, based on the detected selection instruction, it is determined that the installation mode is a modified installation, and it is determined that the components to be modified include common components of the first application and the second application, uninstalling the remaining components in the components to be modified except for the common components, and installing the remaining components in the installation package of the first application except for the common components; when, based on the detected selection instruction, it is determined that the installation mode is an uninstallation, uninstalling the remaining components of all components included in the currently installed first application except for the common components of the currently installed first application and the second application.

[0050] For example, when an execution instruction for the installation package program of the first application is detected and it is determined that the first version is equal to the second version, an installation mode selection message may be output, and the user may select an installation mode, for example, modify installation, repair installation, or uninstallation.

[0051] The modified installation is to uninstall some components (which may be referred to as components to be modified) in the currently installed first application, and reinstall other components in the installation package of the first application except the common components.

[0052] For example, when the installation mode is determined to be modification installation according to the detected selection instruction, it can be determined whether the components to be modified include the common components of the first application and the second application.

[0053] In the case that the components to be modified include common components of the first application and the second application, you can refuse to uninstall the common component (that is, not uninstall the common component), but instead uninstall the remaining components of the components to be modified in the currently installed first application except for the common component, and install the remaining components in the installation package of the first application except for the common component.

[0054] For example, suppose the user chooses to modify and install the first application, where the currently installed first application includes components 1-3, and the installation package of the first application to be installed contains components 1-2 and components 4-6. You can choose to uninstall components 1 to 3. However, since components 1 to 2 are shared components between the currently installed first application and the second application, you do not need to uninstall components 1 to 2. Instead, you can uninstall component 3 in the currently installed first application and install components 4 to 6 in the installation package of the first application.

[0055] Exemplarily, when the installation mode is determined to be uninstall according to the detected selection instruction, all components of the currently installed first application except for the common components of the currently installed first application and the second application may be uninstalled.

[0056] It should be noted that since the repair installation does not involve uninstalling components, when the installation mode is determined to be a repair installation based on the detected selection instruction, it is possible to repair the components that need to be repaired among the components included in the currently installed first application without distinguishing between shared components and non-shared components.

[0057] In addition, in an embodiment of the present application, when the first version number is smaller than the second version number, a prompt message can be output to prompt the user that a higher version of the application is currently installed and to exit the application installation program.

[0058] In some embodiments, when an execution instruction for the installation package program of the first application is detected, the application installation method may further include: determining whether a smooth upgrade condition is met; wherein the smooth upgrade condition includes that a third application has been installed, the third application belongs to a different product line than the first application, and the functions of the third application include some functions of the first application; if the smooth upgrade condition is not met, determining whether there is application mutual exclusion; wherein the existence of application mutual exclusion includes that a fourth application has been installed, the fourth application belongs to a different product line than the first application, and there is a functional conflict;

[0059] In the absence of application mutual exclusion, it is determined whether the first application is currently installed.

[0060] For example, considering that users may want to upgrade to other product lines and experience more functions while using the application, in the traditional application installation solution, in this case, it is necessary to first uninstall the locally installed application, and then install applications from other product lines with more functions. The operation is cumbersome and will cause the original data of the locally installed application to be deleted, resulting in a poor upgrade experience.

[0061] Accordingly, in an embodiment of the present application, for the above situation, a smooth upgrade method can be used to install the application. That is, when the first application needs to be installed, if an application that belongs to a different product line from the first application and whose functions include some of the functions of the first application (referred to as the third application in this article) has been installed locally, it can be determined that the smooth upgrade conditions are met and the upgrade can be performed in a smooth upgrade method.

[0062] It should be noted that in an embodiment of the present application, when an execution instruction for the installation package of the first application is detected, if other applications that include the functions of the first application have been installed, a corresponding instruction can be output without executing the installation of the first application.

[0063] In one example, when an execution instruction of the installation package program for the first application is detected, it may include: when a smooth upgrade condition is met, incrementally overwriting the first application under the installation path of the third application and retaining the user data of the third application.

[0064] For example, when the running instructions of the installation package program for the first application are detected and it is determined that the conditions for smooth upgrade are met, such as when a third application has been installed, the first application can be incrementally overwritten and installed under the installation path of the third application. That is, for the functional components installed by the third application, the components in the installation package of the first application are used to overwrite and reinstall them under the installation path of the third application. For other components of the first application other than the functional components installed by the third application, incremental installation can be used.

[0065] In this case, when the first application is incrementally overwritten and installed, the user data of the third application is retained.

[0066] As an example, the above-mentioned incremental overwrite installation of the first application may include: determining whether the third application is a combined installation or a compatible installation; wherein, the third application being a combined installation includes that a fifth application is currently installed, the fifth application and the third application belong to the same product line, and there are shared components; the third application being a compatible installation includes that a sixth application is currently installed, the sixth application and the third application belong to different product lines, and there are shared components; in the case where the third application is a combined installation, determining whether the shared components of the third application and the fifth application need to be upgraded; if upgrade is required, performing an incremental overwrite installation on the first application; if upgrade is not required, reusing the shared components during the installation of the first application; in the case where the third application is a compatible installation, determining whether the shared components of the third application and the sixth application need to be upgraded; if upgrade is required, performing an incremental overwrite installation on the first application; if upgrade is not required, reusing the shared components during the installation of the first application.

[0067] For example, considering that the third application may be installed using a combined installation or compatible installation (cross-product line compatible installation), in this case, some components in the third application may be the same as the components required by the first application due to the smooth upgrade of shared components in other applications.

[0068] Therefore, when it is determined that the conditions for smooth upgrade are met, it can also be determined whether the third application is a combined installation, that is, whether an application that belongs to the same product line as the third application and has shared components (referred to as the fifth application in this article) has been installed locally, or whether it is a compatible installation, that is, whether an application that belongs to a different product line than the third application and has shared components (referred to as the sixth application in this article) has been installed locally.

[0069] That is, combined installation includes combined installation within a product line (referred to as combined installation) or combined installation across product lines (which may be referred to as compatible installation).

[0070] Exemplarily, for any application, its installation package file may include a configuration file for recording identification information of other application programs that support installation compatibility with the application program.

[0071] Accordingly, when installing the application, identification information of other applications that support compatible installation with the application can be determined based on the configuration file included in the installation package file, and then, whether the application is compatible for installation can be determined.

[0072] Exemplarily, for any application, if other installed applications include an application that supports combined installation / compatible installation with the application, the application is determined to be combined installation / compatible installation.

[0073] When the third application is installed as a combination, it can be determined whether the shared components of the third application and the fifth application need to be upgraded. If upgrade is required, the first application can be incrementally overinstalled; if upgrade is not required, the shared components of the third application and the fifth application can be reused during the installation of the first application.

[0074] When the third application is installed for compatibility, it can be determined whether the shared components of the third application and the sixth application need to be upgraded. If upgrade is required, the first application can be incrementally installed over it; if upgrade is not required, the shared components of the third application and the sixth application can be reused during the installation of the first application.

[0075] For example, when applications from different product lines are installed simultaneously, there is a high probability that functional conflicts will occur, causing the functions to become abnormal and unusable.

[0076] Accordingly, when it is determined that the smooth upgrade conditions are not met, for example, when the third application is not installed, it can be determined whether there is application mutual exclusion, that is, whether an application (referred to as the fourth application in this article) has been installed that belongs to a different product line from the first application and has a functional conflict with the first application.

[0077] When it is determined that there is no mutual exclusion between the applications, it may be determined whether the first application is currently installed.

[0078] When it is determined that applications are mutually exclusive, a prompt message may be output to inform the user that applications are mutually exclusive and cannot be installed.

[0079] In some embodiments, in the absence of application mutual exclusion, after determining whether the first application is currently installed, the application installation method may further include: if the first application is not currently installed, determining whether a compatible installation condition is satisfied; wherein satisfying the compatible installation condition includes a seventh application being installed, the seventh application being an application that belongs to a different product line than the first application and that shares common components;

[0080] When the compatible installation conditions are met, the first application is installed under the installation path of the seventh application; wherein, during the installation of the first application, the installation process of the common components of the first application and the seventh application is skipped.

[0081] For example, in a scenario supporting cross-product line compatible installation, when an execution instruction for an installation package program of a first application is detected and it is determined that the first application is not currently installed, it can be determined whether a compatible installation condition is met.

[0082] Exemplarily, satisfying the compatible installation condition may include having installed an application (referred to herein as a seventh application) that belongs to a different product line than the first application and has common components.

[0083] If the compatible installation conditions are met, the first application can be installed under the installation path of the seventh application. During the installation of the first application, for the common components of the first application and the seventh application, the installation process of the common components in the first application can be skipped.

[0084] In some embodiments, when an execution instruction for an installation package program for a first application is detected, the application installation method may further include: initializing the installation package program for the first application, and recording a configuration file included in the installation package program for the first application to the memory; wherein the configuration file includes a smooth upgrade list, an application mutual exclusion list, and an application compatibility list; the smooth upgrade list is used to record identification information of applications that belong to a different product line from the first application and whose functions are part of the functions of the first application; the application mutual exclusion list is used to record identification information of applications that belong to a different product line from the first application and whose functions conflict with those of the first application; the application compatibility list is used to record identification information of applications that belong to a different product line from the first application and have common components.

[0085] For example, in order to more accurately determine whether the application meets the smooth upgrade conditions, whether there are mutually exclusive applications, and whether it meets the compatible installation conditions, the configuration file of the application installation package program may include a smooth upgrade list, an application mutually exclusive list, and an application compatibility list.

[0086] Among them, the smooth upgrade list is used to record the identification information of applications that belong to a different product line from the first application and whose functions include some of the functions of the first application; the application mutual exclusion list is used to record the identification information of applications that belong to a different product line from the first application and whose functions conflict with those of the first application; the application compatibility list is used to record the identification information of applications that belong to a different product line from the first application and have shared components.

[0087] Accordingly, when an execution instruction for the installation package program of the first application is detected, the installation package program of the first application can be initialized, and the configuration file included in the installation package program of the first application can be recorded into the memory. Based on the configuration file in the memory, it is determined whether the smooth upgrade conditions are met, whether there are mutually exclusive applications, and whether the compatible installation conditions are met.

[0088] In order to enable those skilled in the art to better understand the technical solutions provided by the embodiments of the present application, the technical solutions provided by the embodiments of the present application are described below with reference to specific examples.

[0089] In this embodiment, considering that the security industry has many segmented application scenarios, security companies need to design and develop different application software for these segments to meet user needs. In addition, security application software products have a fast iteration speed, many user customization requirements, and diversified software installation and deployment solutions, so a large number of product lines and customized products (i.e., applications) will be produced.

[0090] Based on this, this embodiment provides a set of installation package logic that can be reused for multiple product lines and multiple application types, which can greatly reduce the workload of repeated development and provide users with multiple installation and deployment solutions.

[0091] 1. Introduction to Single Application Installation Solution

[0092] The installation modes of a single application's installation package mainly include: first installation, repair installation, modify installation, upgrade installation, uninstallation, etc.

[0093] Basic functions include simple log management, compression and decompression management, multi-language management, registry management, XML (Extensible Markup Language) management, permission module, GUI (Graphical User Interface), Dump (backup file system) management, and service management.

[0094] 1.1. Initial Installation: The initial installation involves compiling and packaging a specific artifact package into an installation package. The uninstaller, resource file package, license agreement file, and uninstall file directory are prepared and added to the current framework. The installation process for each component is divided into pre-installation checks, decompression, post-installation processing, and finally completing operations such as writing to the registry, creating shortcuts, and adding the program to the control panel. Artifacts include, for example, the final product delivered to the customer during the development process, such as the generated executable program, dynamic libraries, user documentation, and runtime libraries.

[0095] 1.2. Repair Installation: If the application has already been installed locally and you run it again using the same installation package, you will be offered the option to repair the installation. This will uninstall all services except the database service, back up some configuration files, and then re-extract the resulting files to the original installation path, overwriting the previous files. The service registration and configuration files will then be restored. This repair installation will not reinstall the database service or modify or delete the database files.

[0096] 1.3. Modify Installation: The full package allows you to select installation content, including the client, platform services, and streaming services. Modifying an installation allows you to recheck or uncheck certain installation content, and the installation package will install or uninstall it based on the selected content. For example, if you first install the platform services and client, then run the installation package again and uncheck the platform services and client, leaving only the streaming services checked, the installation package will uninstall the platform services and client first, then install the streaming services.

[0097] 1.4. Upgrade Installation (also referred to as "upgrade"): Determine whether an application needs to be upgraded based on its GUID and version number. If the GUID in the application's installation package matches the GUID of the currently installed application and the version in the application's installation package is lower than the currently installed application's version, the upgrade operation is performed. Upgrading involves adding the prepared resource file package, uninstaller, license agreement file, uninstall file directory text, etc. to the installation program framework in the form of a resource package. The resource package is then released to the client to overwrite the original files, upgrade the database, and perform other operations such as registry updates and control panel updates.

[0098] 1.5. Uninstall: When running the program, it will first monitor whether the current client device has this application installed. If the GUID and version of this application are the same as the installation package of the current application to be installed, the uninstall operation can be performed. Uninstallation will clear the registry, shortcuts, logs, control panel information and corresponding artifacts.

[0099] 2. Introduction to Single Product Line Installation Solution

[0100] Based on product lines, they are divided into client installation packages, OpenAPI (Open Application Programming Interface) installation packages, SAC (Storage Access Component) installation packages, and full installation packages (referred to as full packages, including platform services, streaming media services, and client installation packages). Among them, the platform services, OpenAPI, and SAC of the full package can be installed together and deployed on the same terminal environment to reduce users' hardware costs. Some components of these three installation packages can be shared.

[0101] For example, the full package and OpenAPI share the database, watchdog, and Nginx components, while SAC shares the watchdog component with both the full package and OpenAPI. The specific relationship is shown in Figure 2.

[0102] 2.1. Combined installation: Different applications in the same product line can be deployed on the same server with the same installation path and share some common components (i.e., the aforementioned shared components), such as watchdog services, database services, and Nginx services. Combined installation requires that the current installation package be able to recognize before installation that other applications in this product line that can be installed in combination have already been installed, read the installation path of the combined installation product, determine whether the remaining disk space under the path is sufficient for its own installation, and other necessary conditions. If all are met, the combined installation mode is entered. In combined installation mode, shared components can skip the installation process and reuse components previously installed by the combined installation application.

[0103] For example, the installation package may include an installer and an uninstaller. The installer provides the ability to install, repair, modify, and upgrade the product, while the uninstaller provides the ability to uninstall the product. When running the installation package, the system environment must first be checked to determine whether the installation conditions are met and which installation mode should be entered.

[0104] The installation mode for a single product line is primarily determined by the presence of the product's GUID in the registry. For example, after installing an application, a table is created in the registry using the application's GUID. This table records the necessary installation information, including the installation path, uninstaller path, version number, publisher information, and so on. The application installation package determines whether the application is being installed for the first time or for a second time (repair, uninstall, upgrade, etc.) based on the presence of the application's GUID in the registry.

[0105] 2.2. Single product line installation logic:

[0106] As shown in Figure 3, the single product line installation logic may include: first, reading the in-memory registry to determine whether the application is already installed. If not, this application is being installed for the first time, and further determination is made as to whether any other applications from the same product line that can be installed in combination are already installed, i.e., whether the combination installation conditions are met. If the combination installation conditions are not met, the user is prompted to select an installation path and other necessary installation information (such as the database file storage path), and then the first-time installation process proceeds.

[0107] If the registry is read and the application is found to be installed, the following is determined based on the version number in the registry and the version number in the current installation package:

[0108] 2.2.1. If the version number in the current installation package is greater than the version number in the registry, then upgrade the installation;

[0109] 2.2.2. If the version number in the current installation package is the same as the version number in the registry, an installation mode selection message is output, and the user can choose whether to repair the installation, modify the installation, or uninstall;

[0110] 2.2.3. If the version number in the current installation package is lower than the version number in the registry, a message will pop up indicating that a higher version has been installed and the installer will exit.

[0111] For example, 2.2.1 and 2.2.2 in the above process, upgrade and repair installation, may be performed in a combined installation scenario. Therefore, it is necessary to determine whether the shared components need to be upgraded or repaired during the installation process.

[0112] 3. Introduction to Multi-Product Line Installation Solutions

[0113] In this embodiment, in order to provide users with the latest and best application services, there is a need for cross-product line compatibility and upgrade installation.

[0114] 3.1. Cross-product line compatibility: There may be shared components between applications in different product lines, so cross-product line compatible installation can be supported.

[0115] For example, as an incrementally developed software product, the baseline OpenAPI's higher version is compatible with lower-version platform services across all product lines. Therefore, the baseline OpenAPI can theoretically be installed in combination with lower-version platform services from any product line. This leads to business scenarios where cross-product line OpenAPI and platform services can be installed compatibly.

[0116] 3.2. Cross-product line upgrade (also known as smooth upgrade): The same type of applications in different product lines are upgraded, and business components are incrementally installed to achieve functional updates and expansions.

[0117] For example, for applications based on the same architecture but with different services, cross-product line upgrades can be configured. For example, the security integrated management service baseline is an application that integrates all services. For applications in other professional application scenarios, such as access control applications, in some cases, users may have a good experience after purchasing the access control application and want to upgrade to the security integrated management service application to experience a more comprehensive integrated security application, but they also want to retain all user data generated by the original access control application. Therefore, the security integrated management service application installation package needs to be able to support cross-product line upgrades of the access control application, including service upgrade installation, database backup upgrades, etc.

[0118] 3.3. Mutual Exclusion of Multiple Product Lines (also known as Application Mutual Exclusion): Installing applications from different product lines with conflicting functions together may cause functional anomalies, that is, application mutual exclusion exists.

[0119] For example, suppose a user has already installed application A and now plans to install application B from another product line. It is known that application A and application B have conflicting functions, and installing them together may cause functional abnormalities. At this time, when running the installation package of application B, it is necessary to prompt the user that the current application B conflicts with application A and cannot be installed. However, since application A and application B come from different product lines and have no connection with each other, a solution is needed to flexibly configure applications with mutually exclusive installation relationships.

[0120] The implementation scheme of the installation package is to add three configuration nodes, namely, smooth upgrade list, application mutual exclusion list, and application compatibility list, to the product configuration file (Product.xml) of the product artifact.

[0121] For the smooth upgrade list, an application can be configured with one or more application information that can be smoothly upgraded. The content of each smooth upgrade application information may include but is not limited to: application GUID allowed for upgrade, minimum version number, maximum version number, application name, and brand name.

[0122] When the installation package starts running, it will query the application GUID in the registry one by one to determine whether the smooth upgrade conditions are met.

[0123] Exemplarily, the smooth upgrade condition may set a minimum version number and a maximum version number, and support smooth upgrade within this version range.

[0124] For the application mutual exclusion list, an application can configure one or more application GUIDs that have application mutual exclusion with the application.

[0125] For the application compatibility list, an application can configure one or more application information that can be installed compatibly. The information content of each compatible application can include but is not limited to: the GUID, minimum version number and maximum version number of the compatible application.

[0126] For example, the above configuration files may be copied to the installation package resource directory during integration and packaging.

[0127] 3.4. Cross-product line installation logic

[0128] For example, as shown in FIG4 , the cross-product line installation logic is based on the single product line installation logic described above, with some additional pre-judgments. The specific implementation logic may include:

[0129] 3.4.1. Release the configuration file to a temporary path. For example, copy the configuration file of the application to a temporary path, read the contents of the configuration file into memory, including the smooth upgrade list, application mutual exclusion list, and application compatibility list, and determine whether the smooth upgrade conditions are met based on the smooth upgrade list in the configuration file. If the smooth upgrade conditions are met, enter the smooth upgrade mode and perform incremental overwrite installation in the path of the currently installed applications that allow smooth upgrades.

[0130] 3.4.2. If the smooth upgrade conditions are not met, determine whether there is application mutual exclusion based on the application mutual exclusion list in the configuration file; if there is no application mutual exclusion, install the application according to the single product line installation logic.

[0131] For example, different from the single product line installation logic, when making a combined installation judgment, it is also necessary to make a compatible installation judgment based on the application compatibility list in the configuration file.

[0132] 3.4.3. If there is mutual exclusion between applications, a prompt message will be output to inform the user that the current application and the installed specified application are mutually exclusive and cannot be installed, and then the installation program will be exited.

[0133] The method provided by this application is described above. The device provided by this application is described below.

[0134] Please refer to Figure 5, which is a structural diagram of an application installation device provided in an embodiment of the present application. As shown in Figure 5, the application installation device may include: a determination unit 510, for determining whether a combined installation condition is met when a running instruction for an installation package program for a first application is detected and the first application is not currently installed; wherein, meeting the combined installation condition includes that a second application has been installed, and the second application is an application that shares components with the first application; an installation unit 520, for installing the first application under the installation path of the second application when the combined installation condition is met; wherein, during the installation process of the first application, the installation process of the shared components of the first application and the second application is skipped; the installation unit 520 is also used to execute the first installation process of the first application when the combined installation condition is not met.

[0135] In some embodiments, the installation unit 520 is further configured to, upon detecting an execution instruction for the installation package program of the first application, initialize the installation package program of the first application and record the identification information of the second application into the memory;

[0136] The determining unit 510 is further configured to query a registry based on the identification information of the second application recorded in the memory, and determine that the combined installation condition is met if the identification information of the second application exists in the registry.

[0137] In some embodiments, the determination unit 510 is further used to determine whether the shared components of the first application and the second application need to be upgraded when an execution instruction for the installation package program for the first application is detected and when there is a currently installed first application and the version number in the installation package program of the first application is greater than the version number of the currently installed first application.

[0138] In some embodiments, the installation unit 520 is further used to output an installation mode selection message when an execution instruction for the installation package program for the first application is detected and when there is a currently installed first application and the version number in the installation package program of the first application is equal to the version number of the currently installed first application.

[0139] The installation unit 520 is also used to uninstall the remaining components in the components to be modified except for the common components, and install the remaining components in the installation package of the first application except for the common components, when the installation mode is determined to be a modified installation based on the detected selection instruction and it is determined that the components to be modified include the common components of the first application and the second application.

[0140] The installation unit 520 is further configured to uninstall all components of the currently installed first application except for the common components of the currently installed first application and the second application when the installation mode is determined to be uninstallation based on the detected selection instruction.

[0141] In some embodiments, the determining unit 510 is further configured to, upon detecting an execution instruction for the installation package program of the first application, determine whether a smooth upgrade condition is met; wherein the smooth upgrade condition includes that a third application has been installed, the third application belongs to a different product line than the first application, and the functions of the third application include some of the functions of the first application;

[0142] The determining unit 510 is further configured to determine whether there is application mutual exclusion when the smooth upgrade condition is not met; wherein the application mutual exclusion includes a fourth application being installed, the fourth application being an application belonging to a different product line than the first application and having a functional conflict;

[0143] The determining unit 510 is further configured to determine whether the first application is currently installed when the applications are not mutually exclusive.

[0144] In some embodiments, the installation unit 520 is further used to perform an incremental overwrite installation of the first application under the installation path of the third application and retain user data of the third application when the smooth upgrade conditions are met, wherein the incremental overwrite installation refers to reinstalling the functional components already installed by the third application by using the components in the installation package of the first application under the installation path of the third application in an overwrite manner, and incremental installation is used for other components of the first application other than the functional components already installed by the third application.

[0145] In some embodiments, the installation unit 520 performs an incremental overwrite installation on the first application, including: determining whether the third application is a combined installation or a compatible installation; wherein, if the third application is a combined installation, it includes that a fifth application is currently installed, and the fifth application and the third application belong to the same product line and have common components; if the third application is a compatible installation, it includes that a sixth application is currently installed, and the sixth application and the third application belong to different product lines and have common components; if the third application is a combined installation, determining whether the common components of the third application and the fifth application need to be upgraded; if upgrade is required, performing an incremental overwrite installation on the first application; if upgrade is not required, reusing the common components of the third application and the fifth application during the installation of the first application; if the third application is a compatible installation, determining whether the common components of the third application and the sixth application need to be upgraded; if upgrade is required, performing an incremental overwrite installation on the first application; if upgrade is not required, reusing the common components of the third application and the sixth application during the installation of the first application.

[0146] In some embodiments, the determination unit 510 is further used to determine whether a compatible installation condition is met when the first application is not currently installed; wherein, meeting the compatible installation condition includes having installed a seventh application, and the seventh application is an application that belongs to a different product line than the first application and has shared components.

[0147] The installation unit 520 is further configured to install the first application under the installation path of the seventh application when the compatible installation condition is met; wherein, during the installation of the first application, the installation of the common components of the first application and the seventh application is skipped.

[0148] In some embodiments, the installation unit 520 is further used to initialize the installation package program of the first application when a running instruction for the installation package program of the first application is detected, and record the configuration file included in the installation package program of the first application to the memory; wherein the configuration file includes a smooth upgrade list, an application mutual exclusion list and an application compatibility list; the smooth upgrade list is used to record the identification information of applications that belong to a different product line from the first application and whose functions are part of the functions of the first application; the application mutual exclusion list is used to record the identification information of applications that belong to a different product line from the first application and whose functions conflict with the functions of the first application; the application compatibility list is used to record the identification information of applications that belong to a different product line from the first application and have common components.

[0149] An embodiment of the present application provides an electronic device, including a processor and a memory, wherein the memory stores machine-executable instructions that can be executed by the processor, and the processor is used to execute the machine-executable instructions to implement the application installation method described above.

[0150] Please refer to Figure 6, which is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present application. The electronic device may include a processor 601 and a memory 602 storing machine-executable instructions. The processor 601 and the memory 602 may communicate via a system bus 603. Furthermore, by reading and executing the machine-executable instructions corresponding to the application installation logic in the memory 602, the processor 601 may execute the application installation method described above.

[0151] The memory 602 mentioned herein can be any electronic, magnetic, optical, or other physical storage device that can contain or store information, such as executable instructions, data, etc. For example, the machine-readable storage medium can be: RAM (Random Access Memory), volatile memory, non-volatile memory, flash memory, storage drive (such as a hard disk drive), solid-state drive, any type of storage disk (such as a CD, DVD, etc.), or similar storage media, or a combination thereof.

[0152] In some embodiments, a storage medium is further provided, such as memory 602 in FIG6 . This storage medium is a machine-readable storage medium that stores machine-executable instructions. When executed by a processor, the machine-executable instructions implement the application installation method described above. For example, the storage medium may be ROM, RAM, CD-ROM, magnetic tape, floppy disk, or optical data storage device.

[0153] It should be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply the existence of any such actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or device comprising the element.

[0154] The above descriptions are only some embodiments of the present application and are not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. An application installation method, comprising: When a running instruction for an installation package program of a first application is detected and the first application is not currently installed, determining whether a combined installation condition is met; wherein satisfying the combined installation condition includes that a second application is already installed, and the second application is an application that has a common component with the first application; When the combined installation condition is met, the first application is installed in the installation path of the second application; wherein, during the installation of the first application, the installation of the common components of the first application and the second application is skipped; If the combined installation condition is not met, the first installation process of the first application is executed.

2. The method according to claim 1, wherein: In the case where an execution instruction for the installation package program of the first application is detected, the method further includes: Initializing the installation package program of the first application, and recording the identification information of the second application into the memory; A registration table is queried according to the identification information of the second application recorded in the memory, and if the identification information of the second application exists in the registration table, it is determined that the combined installation condition is met.

3. The method according to claim 1, wherein: In the case where an execution instruction for the installation package program of the first application is detected, the method further includes: If there is a currently installed first application and the version number in the installation package program of the first application is greater than the version number of the currently installed first application, determining whether a common component of the first application and the second application needs to be upgraded; When it is determined that the common components of the first application and the second application need to be upgraded, all components of the first application are upgraded; When it is determined that the common components of the first application and the second application do not need to be upgraded, the remaining components of all the components of the first application except the common components are upgraded.

4. The method according to claim 1, wherein: In the case where an execution instruction for the installation package program of the first application is detected, the method further includes: If there is a first application currently installed and the version number in the installation package program of the first application is equal to the version number of the first application currently installed, output an installation mode selection message; When it is determined that the installation mode is modification installation according to the detected selection instruction, and it is determined that the components to be modified include the common components of the first application and the second application, uninstall the remaining components of the components to be modified except the common components, and install the remaining components of the installation package of the first application except the common components; When it is determined that the installation mode is uninstallation according to the detected selection instruction, all components included in the currently installed first application, except for the common components of the currently installed first application and the second application, are uninstalled.

5. The method according to claim 1, wherein: In the case where an execution instruction for the installation package program of the first application is detected, the method further includes: Determine whether a smooth upgrade condition is met; wherein the smooth upgrade condition includes that a third application has been installed, the third application belongs to a different product line from the first application, and the function of the third application includes the function of the first application Some functions of If the smooth upgrade condition is not met, determining whether there is application mutual exclusion; wherein the existence of application mutual exclusion includes that a fourth application has been installed, and the fourth application is an application that belongs to a different product line from the first application and has a functional conflict; In the absence of mutual exclusion of the applications, it is determined whether the first application is currently installed.

6. The method according to claim 5, further comprising: When the conditions for a smooth upgrade are met, the first application is incrementally installed under the installation path of the third application, and the user data of the third application is retained, wherein the incremental installation means that the functional components of the third application that have been installed are reinstalled under the installation path of the third application using the components in the installation package of the first application, and incremental installation is used for other components of the first application other than the functional components of the third application that have been installed.

7. The method according to claim 6, wherein: Performing incremental overwriting installation on the first application includes: Determining whether the third application is installed in combination or in a compatible manner; The third application being installed in combination includes a fifth application currently installed, the fifth application and the third application are applications of the same product line and have common components; the third application being installed in compatibility includes a sixth application currently installed, the sixth application and the third application are applications of different product lines and have common components; In the case where the third application is installed in combination, determining whether the common components of the third application and the fifth application need to be upgraded; if the upgrade is required, performing an incremental overwriting installation on the first application; if the upgrade is not required, reusing the common components of the third application and the fifth application during the installation of the first application; When the third application is installed for compatibility, determine whether the shared components of the third application and the sixth application need to be upgraded; if upgrade is required, perform an incremental overwrite installation on the first application; if upgrade is not required, reuse the shared components of the third application and the sixth application during the installation of the first application.

8. The method according to claim 5, further comprising: In the case that the first application is not currently installed, determining whether a compatible installation condition is met; wherein satisfying the compatible installation condition includes that a seventh application has been installed, and the seventh application is an application that belongs to a different product line from the first application and has a common component; When the compatible installation condition is met, the first application is installed under the installation path of the seventh application; wherein, during the installation of the first application, the installation of the common components of the first application and the seventh application is skipped.

9. The method according to any one of claims 5 to 8, wherein: In the case where an execution instruction for the installation package program of the first application is detected, the method further includes: Initialize the installation package program of the first application, and record the configuration file included in the installation package program of the first application into the memory; wherein the configuration file includes a smooth upgrade list, an application mutual exclusion list, and an application compatibility list; the smooth upgrade list is used to record the identification information of applications that belong to a different product line from the first application and whose functions are part of the functions of the first application; the application mutual exclusion list is used to record the identification information of applications that belong to a different product line from the first application and whose functions conflict with those of the first application; the application compatibility list is used to record the identification information of applications that belong to a different product line from the first application and have common components.

10. An application installation device, comprising: The determining unit is configured to detect an execution instruction for the installation package program of the first application and the installation package program of the first application is not currently installed. In the case of the first application, determining whether a combined installation condition is satisfied; wherein satisfying the combined installation condition includes that a second application has been installed, and the second application is an application that has a common component with the first application; An installation unit, configured to install the first application in the installation path of the second application when the combined installation condition is met; wherein, during the installation of the first application, the installation of the common components of the first application and the second application is skipped; The installation unit is further configured to execute a first installation process of the first application when the combined installation condition is not met.

11. The device according to claim 10, wherein: The installation unit is further configured to, when a running instruction for the installation package program of the first application is detected, initialize the installation package program of the first application and record the identification information of the second application into a memory; The determining unit is further configured to query a registration table according to the identification information of the second application recorded in the memory, and if the identification information of the second application exists in the registration table, determine that the combined installation condition is met.

12. The device according to claim 10, wherein: The determination unit is also used to determine whether the common components of the first application and the second application need to be upgraded when a running instruction for the installation package program for the first application is detected and when there is a currently installed first application and the version number in the installation package program of the first application is greater than the version number of the currently installed first application.

13. The device according to claim 10, wherein: The installation unit is further configured to output an installation mode selection message when a running instruction for the installation package program of the first application is detected and when there is a currently installed first application and the version number in the installation package program of the first application is equal to the version number of the currently installed first application; The installation unit is further configured to, when it is determined according to the detected selection instruction that the installation mode is modification installation and it is determined that the components to be modified include the common components of the first application and the second application, uninstall the remaining components of the components to be modified except the common components, and install the remaining components of the installation package of the first application except the common components; The installation unit is further configured to uninstall, when it is determined that the installation mode is uninstallation according to the detected selection instruction, all components included in the currently installed first application except for the common components of the currently installed first application and the second application.

14. The device according to claim 10, wherein: The determining unit is further configured to determine whether a smooth upgrade condition is met when a running instruction for the installation package program of the first application is detected; wherein the smooth upgrade condition includes that a third application has been installed, the third application belongs to a different product line from the first application, and the function of the third application includes part of the function of the first application; The determining unit is further configured to determine whether there is application mutual exclusion when the smooth upgrade condition is not met; wherein the existence of application mutual exclusion includes that a fourth application has been installed, and the fourth application is an application that belongs to a different product line from the first application and has a functional conflict; The determining unit is further configured to determine whether the first application is currently installed when the applications are not mutually exclusive.

15. The device according to claim 14, wherein: The installation unit is further used to, when a smooth upgrade condition is met, incrementally overwrite the first application under the installation path of the third application and retain user data of the third application, wherein the incremental overwrite installation means that for functional components already installed by the third application, components in the installation package of the first application are overwritten and reinstalled under the installation path of the third application, and incremental installation is used for other components included in the first application other than the functional components already installed by the third application.

16. The device according to claim 15, wherein: The installation unit performs incremental overwriting installation on the first application, including: Determining whether the third application is installed in combination or installed compatibly; wherein the third application being installed in combination includes that a fifth application is currently installed, and the fifth application and the third application belong to the same product line and have common components; the third application being installed compatibly includes that a sixth application is currently installed, and the sixth application and the third application belong to different product lines and have common components; In the case where the third application is installed in combination, determining whether the common components of the third application and the fifth application need to be upgraded; if the upgrade is required, performing an incremental overwriting installation on the first application; if the upgrade is not required, reusing the common components of the third application and the fifth application during the installation of the first application; When the third application is installed for compatibility, determine whether the shared components of the third application and the sixth application need to be upgraded; if upgrade is required, perform an incremental overwrite installation on the first application; if upgrade is not required, reuse the shared components of the third application and the sixth application during the installation of the first application.

17. The device according to claim 14, wherein: The determining unit is further configured to determine whether a compatible installation condition is satisfied when the first application is not currently installed; wherein satisfying the compatible installation condition includes that a seventh application has been installed, and the seventh application is an application that belongs to a different product line from the first application and has a common component; The installation unit is further used to install the first application under the installation path of the seventh application when the compatible installation condition is met; wherein, during the installation of the first application, the installation of the common components of the first application and the seventh application is skipped.

18. The device according to any one of claims 14 to 17, wherein: The installation unit is further used to initialize the installation package program of the first application and record the configuration file included in the installation package program of the first application into the memory when a running instruction for the installation package program of the first application is detected; wherein the configuration file includes a smooth upgrade list, an application mutual exclusion list and an application compatibility list; the smooth upgrade list is used to record the identification information of applications that belong to a different product line from the first application and whose functions are part of the functions of the first application; the application mutual exclusion list is used to record the identification information of applications that belong to a different product line from the first application and whose functions conflict with those of the first application; the application compatibility list is used to record the identification information of applications that belong to a different product line from the first application and have common components.

19. An electronic device, comprising a processor and a memory, wherein the memory stores machine executable instructions that can be executed by the processor, and the processor is used to execute the machine executable instructions to implement the method according to any one of claims 1 to 9.

20. A machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions, wherein the machine-executable instructions, when executed by a processor, implement the method according to any one of claims 1 to 9.