Application installation method and device

By downloading and generating patch packages in cloud applications for differential operations, the unconscious installation of cloud applications is achieved, solving the problems of churn and experience interruption caused by users' participation in the installation process, and improving the user experience.

CN119292645AInactive Publication Date: 2025-01-10BEIJING HAIYUDONGXIANG TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411814430.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-11
Publication Date
2025-01-10
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

During the use of existing cloud applications, users need to participate in the installation of local applications, resulting in user churn and interruption of user experience, and lack of a silent installation solution.

Method used

Download patch packages from the cloud server through the cloud application app, use the Manifest.xml file and the local application installation package to perform differential operations to generate patch packages, and hot updates to the cloud application app to achieve unconscious installation.

Benefits of technology

It realizes local application installation without user participation during the user's use of cloud applications, avoids interruption of user experience, and improves user churn rate and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119292645A_ABST
    Figure CN119292645A_ABST
Patent Text Reader

Abstract

The invention provides an application installation method and device.The method comprises the steps that after a user installs an installation package of a cloud application app, in the process that the user uses the cloud application through the cloud application app, a service pack is downloaded from a cloud server, code engineering of the cloud application app contains a Manifest.xml file, the Manifest.xml file contains the content in the Manifest.xml file of a local application, and the Manifest.xml file contains the content in the Manifest.xml file of the local application; the resource identifier in the installation package of the cloud application app is generated according to the resource identifier of the local application in an incremental manner, and a service pack is generated by performing difference operation on the installation package of the cloud application app and the installation package of the local application; the service pack is used for updating the cloud application app, and non-perceptual installation of the local application can be achieved in the process that the user uses the cloud application.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of cloud applications, and in particular to an application installation method and device. Background Art

[0002] With the rapid development of cloud application technology (such as cloud gaming), users can directly connect to cloud servers through lightweight clients and experience high-quality application content without having to download and install local applications with large installation packages. This approach reduces the hardware performance requirements for user devices and significantly shortens the startup time of applications. However, the operation of cloud applications requires high network quality, which may affect the user's long-term experience due to delays, freezes, and other issues. In contrast, local applications have the advantages of smooth operation and high image quality, and are still highly accepted by users.

[0003] In response to this situation, the applicant has currently developed a cloud application app (application), which embeds the cloud application software development kit sdk. The installation package is very small, and users can use cloud applications through the cloud application app. When users use cloud applications through the cloud application app, the installation package of the local application will be downloaded from the cloud application platform. After the download is complete, the system API (Application Programming Interface) will be called to pop up the system installation page, prompting the user whether to install the local application. After the user clicks to confirm the installation of the local application, the installation package installation option page will pop up, prompting the user to choose whether to install the latest version of the installation package of the application market or to install the installation package downloaded from the cloud application platform. After the user selects, the system will install the local application. After the installation is complete, an icon of the local application will be generated on the desktop of the user's device. After the user clicks the icon of the local application, the local application can be used. It can be seen that the entire solution will switch from the cloud application usage state to the installation process of the local application, which will interrupt the use of the cloud application, and the installation process of the local application requires user participation, and the user's willingness to participate is low, which will lead to user loss. In view of this, how to provide a silent installation solution to achieve imperceptible installation of local applications when users use cloud applications has become a technical problem that needs to be solved urgently. Summary of the invention

[0004] In view of the technical problems existing in the prior art, the embodiments of the present application provide an application installation method and device.

[0005] In a first aspect, an embodiment of the present application provides an application installation method, including: After the user installs the installation package of the cloud application app and uses the cloud application through the cloud application app, the patch package is downloaded from the cloud server, wherein the code project of the cloud application app includes the Manifest.xml file, the Manifest.xml file includes the content of the Manifest.xml file of the local application, the resource identifier in the installation package of the cloud application app is incrementally generated according to the resource identifier of the local application, and the patch package is generated by performing a difference operation on the installation package of the cloud application app and the installation package of the local application; Use patch packages to update cloud application apps.

[0006] In a second aspect, the embodiment of the present application further provides an application installation device, including: A download unit is used to download a patch package from a cloud server when a user uses a cloud application through the cloud application app after installing the installation package of the cloud application app, wherein the code project of the cloud application app includes a Manifest.xml file, the Manifest.xml file includes the content of the Manifest.xml file of the local application, the resource identifier in the installation package of the cloud application app is incrementally generated according to the resource identifier of the local application, and the patch package is generated by performing a difference operation on the installation package of the cloud application app and the installation package of the local application; The update unit is used to update the cloud application app using the patch package.

[0007] In a third aspect, an embodiment of the present application further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the application installation method described in the first aspect are executed.

[0008] In a fourth aspect, an embodiment of the present application further provides an electronic device, comprising: a processor, a storage medium and a bus, wherein the storage medium stores machine-readable instructions executable by the processor, and when the electronic device is running, the processor communicates with the storage medium through the bus, and the processor executes the machine-readable instructions to perform the steps of the application installation method described in the first aspect.

[0009] In summary, the application installation method and device, electronic device and storage medium provided in the embodiments of the present application, when a user uses a cloud application through a cloud application app, no longer calls the system API to pop up the system installation page. Instead, a patch package generated by performing a difference operation between the installation package of the cloud application app and the installation package of the local application is used as a hot update resource to hot update the cloud application app. The entire process does not require user participation and will not interrupt the use of the cloud application. In this way, the local application can be installed without perception during the user's use of the cloud application. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 A flowchart of an application installation method according to an embodiment of the present application; Figure 2 A schematic diagram of the structure of an embodiment of an application installation device provided in an embodiment of the present application; Figure 3 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0011] To make the purpose, technical scheme and advantages of the embodiments of the present application clearer, the technical scheme in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. It should be understood that the drawings in the present application only serve the purpose of explanation and description and are not used to limit the scope of protection of the present application. In addition, it should be understood that the schematic drawings are not drawn in real proportion. The flowchart used in this application shows the operations implemented according to some embodiments of the present application. It should be understood that the operations of the flowchart can be implemented out of order, and the steps without logical context can be reversed in order or implemented simultaneously. In addition, those skilled in the art can add one or more other operations to the flowchart under the guidance of the content of the present application, or remove one or more operations from the flowchart.

[0012] In addition, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. The components of the embodiments of the present application described and shown in the drawings here can be arranged and designed in various configurations. Therefore, the following detailed description of the embodiments of the present application provided in the drawings is not intended to limit the scope of the application claimed for protection, but merely represents the selected embodiments of the present application. Based on the embodiments of the present application, all other embodiments obtained by those skilled in the art without making creative work belong to the scope of protection of the present application.

[0013] It should be noted that the term "comprising" will be used in the embodiments of the present application to indicate the existence of the features declared thereafter, but does not exclude the addition of other features.

[0014] Reference Figure 1 As shown, an embodiment of the present application provides a flow chart of an application installation method, the method comprising: S10, after the user installs the installation package of the cloud application app and uses the cloud application through the cloud application app, download the patch package from the cloud server, wherein the code project of the cloud application app includes the Manifest.xml file, the Manifest.xml file includes the content of the Manifest.xml file of the local application, the resource identifier in the installation package of the cloud application app is incrementally generated according to the resource identifier of the local application, and the patch package is generated by performing a difference operation on the installation package of the cloud application app and the installation package of the local application; In this embodiment, it should be noted that the Manifest.xml file of the cloud application app contains the content of the Manifest.xml file of the local application. In specific implementation, the installation package of the local application can be decompressed to obtain the Manifest.xml file of the local application, and the Manifest.xml file of the local application can be reversed into a readable xml format file, and then the content of the readable xml format file is added to the Manifest.xml file of the cloud application app.

[0015] In order to successfully compile the installation package of the cloud application app, when building the code project of the cloud application app, it is necessary to traverse the readable XML format files, find the full class name of each component node contained therein, and determine whether there is a component file with the class name in the full class name under the path in the full class name. If so, no processing is done; or if not, the system library JavaPoet can be used to create an empty component file with the class name in the full class name under the path in the full class name. In addition, if the readable XML format file contains a style node, for each style node contained in the readable XML format file, only when there is a styles.xml file in the code project of the cloud application app and a style node with the same name as the style node exists in the styles.xml file of the cloud application app, no processing is performed. In other cases, a corresponding empty-implemented style node needs to be created, such as creating a corresponding empty-implemented style node in the styles.xml file of the cloud application app or creating a corresponding empty-implemented style node in a newly created styles.xml file; and if the readable XML format file contains a string node, for each string node contained in the readable XML format file, only when there is a strings.xml file in the code project of the cloud application app and a string node with the same name as the string node exists in the strings.xml file of the cloud application app, no processing is performed. In other cases, a corresponding empty-implemented string node needs to be created, such as creating a corresponding empty-implemented string node in the strings.xml file of the cloud application app or creating a corresponding empty-implemented string node in a newly created strings.xml file.

[0016] In addition, it should be noted that after the code engineering of the cloud application app is built, the code engineering of the cloud application app needs to be compiled into an installation package of the cloud application app. During the compilation process, the resource identifier is generated incrementally based on the resource identifier of the local application. In specific implementation, the mapping relationship between the resource identifier and the resource of the local application can be obtained from the installation package of the local application through the system library AAPT2. Then, during the resource compilation process of the cloud application app's code engineering, the resource identifier of the cloud application app is incrementally generated based on the resource identifier of the local application (that is, the order of the resource identifier of the cloud application app is after the order of the resource identifier of the local application) to prevent duplication of resource identifiers.

[0017] S11. Use the patch package to update the cloud application app.

[0018] In this embodiment, updating the cloud application app using a patch package may include: decompressing the patch package to obtain multiple second files; using the multiple second files to update the other files in the multiple first files except the Manifest.xml file to obtain multiple update files, wherein the multiple first files are files obtained by decompressing the installation package of the cloud application app; storing the multiple update files in the private directory of the cloud application app. It should be noted that the process of updating multiple first files using multiple second files retains multiple first files, that is, the updated result includes both the multiple first files and the results after updating the multiple first files. The results after updating the other files in the multiple first files except the Manifest.xml file and the Manifest.xml file of the local application can constitute the file obtained by decompressing the installation package of the local application. After the update is completed, the status of the successful update can be recorded by setting the value of the flag bit.

[0019] The application installation method provided in the embodiment of the present application no longer calls the system API to pop up the system installation page when the user uses the cloud application through the cloud application app. Instead, the patch package generated by performing a difference operation on the installation package of the cloud application app and the installation package of the local application is used as a hot update resource to hot update the cloud application app. The entire process does not require user participation and will not interrupt the use of the cloud application. In this way, the local application can be installed without perception while the user is using the cloud application.

[0020] Based on the foregoing method embodiment, the method may further include: When the cloud application app is cold started, the storage path of the dex file of the local application is obtained, and the storage path is inserted in front of the storage path of the installation package of the cloud application app in the system variable pathList.

[0021] In this embodiment, it should be noted that when the cloud application app is cold started, if it is determined by the value of the flag that the cloud application app is successfully updated, the storage path of the dex file of the local application is obtained, and the value of pathList is modified by reflection to insert the storage path of the dex file of the local application into the position in front of the storage path of the installation package of the cloud application app in pathList. Specifically, the value in pathList can be shifted back one position sequentially, and the storage path can be inserted into the first position in pathList, so that the class of the local application can be loaded before the class of the cloud application app, thereby realizing the operation of the local application.

[0022] Based on the foregoing method embodiment, the method may further include: When the local application is running, the memory address of the security verification function of the local application is obtained, and the code at the memory address is modified to be a command to jump to the target code for execution, wherein the execution result of the target code is consistent with the execution result of the security verification function verification, or the return value of the target code is consistent with the return value of the security verification function verification.

[0023] In this embodiment, it should be noted that the memory address of the security verification function of the local application can be obtained by parsing the system's dynamic library art.so through the memory mapping mmap interface. After that, the code at the memory address needs to be modified to a command to jump to the target code for execution, so that the security verification function of the local application will be replaced by the target code, and the execution result / return value of the target code is consistent with the execution result / return value of the security verification function when it passes the verification (for example, the return value of the target code and the return value of the security verification function when the verification passes are both true), thereby bypassing the security verification logic of the local application and passing the security verification of the local application.

[0024] Based on the above method embodiment, the process of generating a patch package may include: Decompressing the installation package of the local application to obtain multiple second files; An incremental file and a patch operation list for describing the changes are obtained by performing a content difference operation on a dex file in a plurality of first files and a dex file in a plurality of second files, and for each first file in the plurality of first files except a dex file and a Manifest.xml file, if it is determined that a second file with the same name as the first file and different content from the first file exists in the plurality of second files, first information is recorded and the second file is used as a target file, or if it is determined that a second file with the same name as the first file does not exist in the plurality of second files, second information is recorded, wherein the plurality of first files are packaged to obtain an installation package of a cloud application app, the patch operation list includes at least one patch operation of adding, deleting and replacing, the first information is used to indicate that the first file needs to be replaced, and the second information is used to indicate that the first file needs to be deleted; The incremental file, the patch operation list for describing the changes, the first information and the target file are packaged into a patch package, or the incremental file, the patch operation list for describing the changes and the second information are packaged into a patch package.

[0025] In this embodiment, it should be noted that when performing a difference operation on the content of the dex file, the existing BSDiff algorithm can be used. Specifically, the dex files in the multiple first files and the dex files in the multiple second files can be converted into binary data first, and then the BSDiff algorithm is used to perform a difference operation on the binary data corresponding to the dex files in the multiple first files and the binary data corresponding to the dex files in the multiple second files, to obtain an incremental file and a patch operation list for describing the changes, wherein the incremental file records the data that needs to be added and / or replaced when the binary data corresponding to the dex files in the multiple first files is converted into the binary data corresponding to the dex files in the multiple second files, and the patch operation list records the patch operations that need to be performed when the binary data corresponding to the dex files in the multiple first files is converted into the binary data corresponding to the dex files in the multiple second files, and the patch operations that need to be performed include at least one of adding, deleting and replacing. After obtaining the incremental file and the patch operation list for describing the changes, according to the patch operation list, the incremental file is used to operate the binary data corresponding to the dex files in the multiple first files, and the binary data corresponding to the dex files in the multiple second files can be obtained.

[0026] In addition, it should be noted that only the dex file needs to be operated on for content difference. For other files except the dex file and the Manifest.xml file in the multiple first files and the multiple second files, the content difference operation is not performed. Instead, it is determined whether each of the other first files except the dex file in the multiple first files exists in the multiple second files, that is, whether there is a second file with the same name and content as the first file in the multiple second files. If it exists, it will not be processed; if it does not exist, there are two specific cases: first, if there is a second file with the same name as the first file and different content as the first file in the multiple second files, the first information is recorded and the second file is used as the target file; second, if there is no second file with the same name as the first file in the multiple second files, the second information is recorded. Afterwards, it is necessary to package the incremental file, the patch operation list for describing the changes, the first information and the target file into a patch package, or to package the incremental file, the patch operation list for describing the changes and the second information into a patch package. In this way, by updating the cloud application app using the patch package, other files except the Manifest.xml file in the files obtained by decompressing the installation package of the local application can be restored.

[0027] Reference Figure 2 FIG. 1 is a schematic diagram of a structure of an application installation device provided in an embodiment of the present application, the device comprising: The downloading unit 20 is used to download the patch package from the cloud server when the user installs the installation package of the cloud application app and uses the cloud application through the cloud application app, wherein the code project of the cloud application app includes a Manifest.xml file, the Manifest.xml file includes the content of the Manifest.xml file of the local application, the resource identifier in the installation package of the cloud application app is incrementally generated according to the resource identifier of the local application, and the patch package is generated by performing a difference operation on the installation package of the cloud application app and the installation package of the local application; The updating unit 21 is used to update the cloud application app using the patch package.

[0028] The application installation device provided in the embodiment of the present application no longer calls the system API to pop up the system installation page when the user uses the cloud application through the cloud application app. Instead, the patch package generated by performing a difference operation on the installation package of the cloud application app and the installation package of the local application is used as a hot update resource to hot update the cloud application app. The entire process does not require user participation and will not interrupt the use of the cloud application. In this way, the local application can be installed without perception while the user is using the cloud application.

[0029] Based on the above device embodiment, the present invention may further include: The startup unit is used to obtain the storage path of the dex file of the local application when the cloud application app is cold started, and insert the storage path into the position in front of the storage path of the installation package of the cloud application app in the system variable pathList.

[0030] Based on the above device embodiment, the present invention may further include: The modification unit is used to obtain the memory address of the security verification function of the local application when the local application is running, and modify the code at the memory address to a command to jump to the target code for execution, wherein the execution result of the target code is consistent with the execution result of the security verification function, or the return value of the target code is consistent with the return value of the security verification function.

[0031] Based on the above device embodiment, the process of generating a patch package may include: Decompressing the installation package of the local application to obtain multiple second files; An incremental file and a patch operation list for describing the changes are obtained by performing a content difference operation on a dex file in a plurality of first files and a dex file in a plurality of second files, and for each first file in the plurality of first files except a dex file and a Manifest.xml file, if it is determined that a second file with the same name as the first file and different content from the first file exists in the plurality of second files, first information is recorded and the second file is used as a target file, or if it is determined that a second file with the same name as the first file does not exist in the plurality of second files, second information is recorded, wherein the plurality of first files are packaged to obtain an installation package of a cloud application app, the patch operation list includes at least one patch operation of adding, deleting and replacing, the first information is used to indicate that the first file needs to be replaced, and the second information is used to indicate that the first file needs to be deleted; The incremental file, the patch operation list for describing the changes, the first information and the target file are packaged into a patch package, or the incremental file, the patch operation list for describing the changes and the second information are packaged into a patch package.

[0032] The implementation process of the application installation device provided in the embodiment of the present application is consistent with the application installation method provided in the embodiment of the present application, and the effect that can be achieved is also the same as the application installation method provided in the embodiment of the present application, which will not be repeated here.

[0033] like Figure 3 As shown, an electronic device provided by an embodiment of the present application includes: a processor 30, a memory 31 and a bus 32, wherein the memory 31 stores machine-readable instructions executable by the processor 30, and when the electronic device is running, the processor 30 communicates with the memory 31 through the bus 32, and the processor 30 executes the machine-readable instructions to perform the steps of the above-mentioned application installation method.

[0034] Specifically, the above-mentioned memory 31 and processor 30 can be general-purpose memories and processors, which are not specifically limited here. When the processor 30 runs the computer program stored in the memory 31, the above-mentioned application installation method can be executed.

[0035] Corresponding to the above-mentioned application installation method, an embodiment of the present application further provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the above-mentioned application installation method are executed.

[0036] The above are only specific implementations of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. An application installation method, characterized in that: include: After the user installs the installation package of the cloud application app and uses the cloud application through the cloud application app, the patch package is downloaded from the cloud server, wherein the code project of the cloud application app includes the Manifest.xml file, the Manifest.xml file includes the content of the Manifest.xml file of the local application, the resource identifier in the installation package of the cloud application app is incrementally generated according to the resource identifier of the local application, and the patch package is generated by performing a difference operation on the installation package of the cloud application app and the installation package of the local application; Use patch packages to update cloud application apps.

2. The method according to claim 1, characterized in that Also includes: When the cloud application app is cold started, the storage path of the dex file of the local application is obtained, and the storage path is inserted in front of the storage path of the installation package of the cloud application app in the system variable pathList.

3. The method according to claim 2, characterized in that Also includes: When the local application is running, the memory address of the security verification function of the local application is obtained, and the code at the memory address is modified to be a command to jump to the target code for execution, wherein the execution result of the target code is consistent with the execution result of the security verification function verification, or the return value of the target code is consistent with the return value of the security verification function verification.

4. The method according to any one of claims 1 to 3, characterized in that The process of generating a patch package includes: Decompressing the installation package of the local application to obtain multiple second files; An incremental file and a patch operation list for describing the changes are obtained by performing a content difference operation on a dex file in a plurality of first files and a dex file in a plurality of second files, and for each first file in the plurality of first files except a dex file and a Manifest.xml file, if it is determined that a second file with the same name as the first file and different content from the first file exists in the plurality of second files, first information is recorded and the second file is used as a target file, or if it is determined that a second file with the same name as the first file does not exist in the plurality of second files, second information is recorded, wherein the plurality of first files are packaged to obtain an installation package of a cloud application app, the patch operation list includes at least one patch operation of adding, deleting and replacing, the first information is used to indicate that the first file needs to be replaced, and the second information is used to indicate that the first file needs to be deleted; The incremental file, the patch operation list for describing the changes, the first information and the target file are packaged into a patch package, or the incremental file, the patch operation list for describing the changes and the second information are packaged into a patch package.

5. An application installation device, characterized in that: include: A download unit is used to download a patch package from a cloud server when a user uses a cloud application through the cloud application app after installing the installation package of the cloud application app, wherein the code project of the cloud application app includes a Manifest.xml file, the Manifest.xml file includes the content of the Manifest.xml file of the local application, the resource identifier in the installation package of the cloud application app is incrementally generated according to the resource identifier of the local application, and the patch package is generated by performing a difference operation on the installation package of the cloud application app and the installation package of the local application; The update unit is used to update the cloud application app using the patch package.

6. The device according to claim 5, characterized in that Also includes: The startup unit is used to obtain the storage path of the dex file of the local application when the cloud application app is cold started, and insert the storage path into the position in front of the storage path of the installation package of the cloud application app in the system variable pathList.

7. The device according to claim 6, characterized in that Also includes: The modification unit is used to obtain the memory address of the security verification function of the local application when the local application is running, and modify the code at the memory address to a command to jump to the target code for execution, wherein the execution result of the target code is consistent with the execution result of the security verification function, or the return value of the target code is consistent with the return value of the security verification function.

8. The device according to any one of claims 5 to 7, characterized in that The process of generating a patch package includes: Decompressing the installation package of the local application to obtain multiple second files; An incremental file and a patch operation list for describing the changes are obtained by performing a content difference operation on a dex file in a plurality of first files and a dex file in a plurality of second files, and for each first file in the plurality of first files except a dex file and a Manifest.xml file, if it is determined that a second file with the same name as the first file and different content from the first file exists in the plurality of second files, first information is recorded and the second file is used as a target file, or if it is determined that a second file with the same name as the first file does not exist in the plurality of second files, second information is recorded, wherein the plurality of first files are packaged to obtain an installation package of a cloud application app, the patch operation list includes at least one patch operation of adding, deleting and replacing, the first information is used to indicate that the first file needs to be replaced, and the second information is used to indicate that the first file needs to be deleted; The incremental file, the patch operation list for describing the changes, the first information and the target file are packaged into a patch package, or the incremental file, the patch operation list for describing the changes and the second information are packaged into a patch package.

Citation Information

Patent Citations

  • Method and device for non-root permission hooking Java method

    CN118152044A