Application package issuing method, application package downloading system and device and electronic equipment
By building application full-inclusive, split-inclusive package and incremental package groups, the target incremental package group is selected based on the client's application version information and distributed to the client cache, the problem of waste of computing resources and flexible configuration downloads caused by single-pack downloads is solved, and the iterative update of the application is realized.
Patent Information
- Application Number
- CN202311206276.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-18
- Publication Date
- 2025-03-18
AI Technical Summary
The existing application package update platform adopts a single package download method, which leads to wasted computing resources and the inability to achieve flexible configuration download of applications, which is not conducive to iterative update of applications.
A method of distributing application packages is proposed. By building application full-inclusive, application split-package and application incremental package groups, select the target application incremental package group based on the client's application version information list, and distribute the application full-inclusive, application split-package and target application incremental package groups to the client cache.
It reduces the waste of computing resources, realizes flexible configuration downloads for applications, and facilitates iterative updates for applications.
Smart Images

Figure CN119645431A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate to the field of computer technology, and in particular to an application package distribution method, an application package downloading system, a device, and an electronic device. Background Art
[0002] React Native (RN for short) is a cross-platform mobile application development framework that Facebook open-sourced in April 2015. It is a derivative of Facebook's earlier open-source JS framework React on the native mobile application platform. Currently, it supports two major platforms, iOS and Android. Supporting hot updates of JS code is its core capability, which can achieve iterative updates of business without releasing a version. At present, the application package update platform usually adopts the following method to update the application package: based on the logic of single package update, all business-related static resources are put into a compressed package, and then downloaded from the client and loaded separately.
[0003] However, the above method usually has the following technical problems: single package download requires downloading the entire application package, which wastes computing resources. In addition, the single package download method is single and cannot realize flexible configuration download of a certain application, which is not conducive to the iterative update of the application.
[0004] The above information disclosed in this Background section is only for enhancement of understanding of the background of the inventive concept and therefore it may contain information that does not form the prior art that is already known in this country to a person of ordinary skill in the art. Summary of the invention
[0005] The content of this disclosure is used to introduce concepts in a brief form, which will be described in detail in the detailed implementation section below. The content of this disclosure is not intended to identify the key features or essential features of the technical solution claimed for protection, nor is it intended to limit the scope of the technical solution claimed for protection.
[0006] Some embodiments of the present disclosure propose an application package distribution method, an application package downloading system, an apparatus, an electronic device, a computer-readable medium, and a program product to solve one or more of the technical problems mentioned in the above background technology section.
[0007] In a first aspect, some embodiments of the present disclosure provide a method for issuing an application package, the method comprising: in response to receiving an application update request sent by a client, constructing an application full package and an application split package corresponding to the above application update request; constructing an application incremental package group set corresponding to the above application full package and the above application split package according to the version application package set corresponding to the above application update request, wherein the application incremental package group in the above application incremental package group set corresponds to the version application package in the above version application package set; according to the application version information list corresponding to the above client, selecting the corresponding application incremental package group from the above application incremental package group set as the target application incremental package group; and issuing the above application full package, the above application split package and the above target application incremental package group to the cache corresponding to the above client.
[0008] Optionally, the above-mentioned construction of an application incremental package group set corresponding to the above-mentioned application full package and the above-mentioned application split package based on the version application package set corresponding to the above-mentioned application update request includes: obtaining a preset number of version application packages of the application corresponding to the above-mentioned application update request that have been recently released as a version application package set, wherein the version application packages in the above-mentioned version application package set include: version application full package and version application split package; for each version application package in the above-mentioned version application package set, performing the following processing steps: determining a full-package application incremental package between the version application full package included in the above-mentioned version application package and the above-mentioned application full package; determining a full-package split application incremental package between the version application full package included in the above-mentioned version application package and the above-mentioned application split package; determining a split full-package application incremental package between the version application split package included in the above-mentioned version application package and the above-mentioned application full package; determining a split application incremental package between the version application split package included in the above-mentioned version application package and the above-mentioned application split package; merging the above-mentioned full-package application incremental package, the above-mentioned full-package split application incremental package, the above-mentioned split full-package application incremental package and the above-mentioned split application incremental package into an application incremental package group.
[0009] Optionally, the above-mentioned selecting a corresponding application incremental package group from the above-mentioned application incremental package group set as the target application incremental package group based on the application version information list corresponding to the above-mentioned client includes: in response to determining that the above-mentioned application version information list is not empty, reading the first application version information in the above-mentioned application version information list, and executing the following selection steps: determining whether the version corresponding to the above-mentioned application version information is greater than or equal to the latest local version; in response to determining that the version corresponding to the above-mentioned application version information is less than the latest local version, determining whether the above-mentioned application version information meets the update conditions; in response to determining that the above-mentioned application version information meets the update conditions, selecting the application incremental package group corresponding to the above-mentioned application version information from the above-mentioned application incremental package group set as the target application incremental package group.
[0010] Optionally, the method further includes: in response to determining that the application version information does not meet the update conditions, removing the application version information from the application version information list to update the application version information list, and using the updated application version information list as the application version information list to perform the selection step again.
[0011] In a second aspect, some embodiments of the present disclosure provide an application package downloading system, the system comprising: in response to receiving an application update request sent by a client, the server constructs an application full package and an application split package corresponding to the application update request; the server constructs an application incremental package group set corresponding to the application full package and the application split package according to the version application package set corresponding to the application update request; the server selects a corresponding application incremental package group from the application incremental package group set as a target application incremental package group according to the application version information list corresponding to the client, and sends the application full package, the application split package and the target application incremental package group to a cache corresponding to the client; the client determines whether there is a local application package corresponding to the application download information in the local database in response to detecting application download information and determining that the local public component package supports the installation of the latest version of the application package; the client downloads the application split package from the associated cache in response to determining that there is no local application package corresponding to the application download information in the local database.
[0012] Optionally, in response to determining that a local application package corresponding to the application download information exists in the local database, the client downloads the split full-package application incremental package and the split application incremental package in the target application incremental package group from the cache.
[0013] Optionally, in response to determining that the local public component package does not support the installation of the latest version of the application package, and determining that there is no local application package corresponding to the application download information in the local database, the client downloads the full application package from the cache; in response to determining that the local public component package does not support the installation of the latest version of the application package, and determining that there is a local application package corresponding to the application download information in the local database, the client downloads the full application incremental package and the full split application incremental package in the target application incremental package group from the cache.
[0014] In a third aspect, some embodiments of the present disclosure provide an application package sending device, the device comprising: a first construction unit, configured to, in response to receiving an application update request sent by a client, construct an application full package and an application split package corresponding to the above application update request; a second construction unit, configured to construct an application incremental package group set corresponding to the above application full package and the above application split package according to the version application package set corresponding to the above application update request, wherein the application incremental package group in the above application incremental package group set corresponds to the version application package in the above version application package set; a selection unit, configured to select the corresponding application incremental package group from the above application incremental package group set as the target application incremental package group according to the application version information list corresponding to the above client; and a sending unit, configured to send the above application full package, the above application split package and the above target application incremental package group to the cache corresponding to the above client.
[0015] Optionally, the second construction unit is further configured to: obtain a preset number of latest released version application packages of the application corresponding to the above-mentioned application update request as a version application package set, wherein the version application packages in the above-mentioned version application package set include: version application full package and version application split package; for each version application package in the above-mentioned version application package set, perform the following processing steps: determine the full-package application incremental package between the version application full package included in the above-mentioned version application package and the above-mentioned application full package; determine the full-package split application incremental package between the version application full package included in the above-mentioned version application package and the above-mentioned application split package; determine the split full-package application incremental package between the version application split package included in the above-mentioned version application package and the above-mentioned application full package; determine the split application incremental package between the version application split package included in the above-mentioned version application package and the above-mentioned application split package; merge the above-mentioned full-package application incremental package, the above-mentioned full-package split application incremental package, the above-mentioned split full-package application incremental package and the above-mentioned split application incremental package into an application incremental package group.
[0016] Optionally, the selection unit is further configured to: in response to determining that the above-mentioned application version information list is not empty, read the first application version information in the above-mentioned application version information list, and perform the following selection steps: determine whether the version corresponding to the above-mentioned application version information is greater than or equal to the latest local version; in response to determining that the version corresponding to the above-mentioned application version information is less than the latest local version, determine whether the above-mentioned application version information meets the update conditions; in response to determining that the above-mentioned application version information meets the update conditions, select the application incremental package group corresponding to the above-mentioned application version information from the above-mentioned application incremental package group set as the target application incremental package group.
[0017] Optionally, the application package sending device also includes: an update unit, configured to: in response to determining that the above-mentioned application version information does not meet the update conditions, remove the above-mentioned application version information from the above-mentioned application version information list to update the application version information list, and use the updated application version information list as the application version information list to perform the above-mentioned selection step again.
[0018] In a fourth aspect, some embodiments of the present disclosure provide an electronic device, comprising: one or more processors; a storage device on which one or more programs are stored, and when the one or more programs are executed by the one or more processors, the one or more processors implement the method described in any implementation of the first or second aspect above.
[0019] In a fifth aspect, some embodiments of the present disclosure provide a computer-readable medium having a computer program stored thereon, wherein when the program is executed by a processor, the method described in any implementation of the first aspect or the second aspect is implemented.
[0020] In a sixth aspect, some embodiments of the present disclosure provide a computer program product, including a computer program, which, when executed by a processor, implements the method described in any implementation of the first aspect or the second aspect.
[0021] The above-mentioned embodiments of the present disclosure have the following beneficial effects: through the application package delivery method of some embodiments of the present disclosure, the waste of computing resources is reduced, and flexible configuration download of a certain application can be realized, which is conducive to the iterative update of the application. Specifically, the reason for wasting computing resources and being unfavorable to the iterative update of the application is that the single package download needs to download the entire application package, which wastes computing resources. In addition, the single package download method is single, and it is impossible to flexibly configure the download of a certain application, which is not conducive to the iterative update of the application. Based on this, the application package delivery method of some embodiments of the present disclosure, first, in response to receiving the application update request sent by the client, constructs the application full package and application split package corresponding to the above application update request. Thus, the application full package and application split package of the current version of the application can be constructed. Then, according to the version application package set corresponding to the above application update request, the application incremental package group set corresponding to the above application full package and the above application split package is constructed. Among them, the application incremental package group in the above application incremental package group set corresponds to the version application package in the above version application package set. Thus, the incremental packages between each version application package and the application full package and the application split package can be calculated. Then, according to the application version information list corresponding to the above-mentioned client, the corresponding application incremental package group is selected from the above-mentioned application incremental package group set as the target application incremental package group. In this way, the incremental package of the corresponding version can be issued according to the current application version information of the client. Finally, the above-mentioned application full package, the above-mentioned application split package and the above-mentioned target application incremental package group are issued to the cache corresponding to the above-mentioned client. In this way, the full package, the split package and the incremental package can all be issued, so that the client can download the application package according to actual needs. Thereby, the waste of computing resources is reduced, and the flexible configuration download of a certain application can be realized, which is conducive to the iterative update of the application. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the accompanying drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and that components and elements are not necessarily drawn to scale.
[0023] Figure 1 is an information timing interaction diagram between the application package delivery method and the application package downloading method in some embodiments of the present disclosure;
[0024] Figure 2 is a flowchart of some embodiments of the method for issuing an application package according to the present disclosure;
[0025] Figure 3 is a flow chart of some embodiments of the application package downloading system according to the present disclosure;
[0026] Figure 4is a schematic diagram of the structure of some embodiments of the device for issuing application packages according to the present disclosure;
[0027] Figure 5 It is a schematic diagram of the structure of an electronic device suitable for implementing some embodiments of the present disclosure. DETAILED DESCRIPTION
[0028] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments set forth herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.
[0029] It should also be noted that, for ease of description, only the parts related to the invention are shown in the drawings. In the absence of conflict, the embodiments and features in the embodiments of the present disclosure can be combined with each other.
[0030] It should be noted that the concepts such as "first" and "second" mentioned in the present disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.
[0031] It should be noted that the modifications of "one" and "plurality" mentioned in the present disclosure are illustrative rather than restrictive, and those skilled in the art should understand that unless otherwise clearly indicated in the context, it should be understood as "one or more".
[0032] The names of the messages or information exchanged between multiple devices in the embodiments of the present disclosure are only used for illustrative purposes and are not used to limit the scope of these messages or information.
[0033] The present disclosure will be described in detail below with reference to the accompanying drawings and in conjunction with embodiments.
[0034] Figure 1 It is an information timing interaction diagram between the application package sending method and the application package downloading method of some embodiments of the present disclosure.
[0035] exist Figure 1In the process, first, the client 101 can send an application update request 103 to the server 102. After that, the server 102 can use the application full package 104 and the application split package 105 corresponding to the above application update request 103. Next, the server 102 can construct an application incremental package group set 106 corresponding to the above application full package 104 and the above application split package 105 according to the version application package set corresponding to the above application update request 103, wherein the application incremental package groups in the above application incremental package group set 106 correspond to the version application packages in the above version application package set. Then, the server 102 can select the corresponding application incremental package group from the above application incremental package group set 106 as the target application incremental package group 107 according to the application version information list corresponding to the above client 101. Finally, the server 102 can send the above application full package 104, the above application split package 105 and the above target application incremental package group 107 to the cache corresponding to the above client 101.
[0036] Continue to refer Figure 2 , shows a process 200 of some embodiments of the method for delivering an application package according to the present disclosure. The method for delivering an application package includes the following steps:
[0037] Step 201: In response to receiving an application update request sent by a client, construct an application full package and an application split package corresponding to the application update request.
[0038] In some embodiments, the execution subject of the application package delivery method (for example Figure 1 The server 102 shown in the figure can construct the application full package and application split package corresponding to the above application update request in response to receiving the application update request sent by the client. Here, the client can refer to the client that needs to update the application. The application update request can refer to an update request for a certain application.
[0039] In practice, after receiving the application update request sent by the client, the above-mentioned execution entity can read the local application full package and application split package of the latest version of the application corresponding to the above-mentioned application update request. Among them, the application full package can be the code package of the entire application including the public component package. The application split package can refer to the code package of the entire application that does not include the public component package. The public component package can refer to the public dependency package (common package) of all other applications.
[0040] Step 202: construct an application incremental package set corresponding to the above-mentioned application full package and the above-mentioned application split package according to the version application package set corresponding to the above-mentioned application update request.
[0041] In some embodiments, the execution subject may construct an application incremental package group set corresponding to the above-mentioned application full package and the above-mentioned application split package according to the version application package set corresponding to the above-mentioned application update request. The application incremental package group in the above-mentioned application incremental package group set corresponds to the version application package in the above-mentioned version application package set. The above-mentioned version application package set may refer to the application packages of various versions that are updated locally for the application corresponding to the above-mentioned application update request. That is, each version application package in the version application package set corresponds to a different version.
[0042] In practice, the incremental data between each version application package in the above version application package set and the above application full package can be determined as the full package application incremental package. The incremental data between each version application package in the above version application package set and the above application split package can be used as the unpacked application incremental package. The full package application incremental package and the unpacked application incremental package corresponding to each version application package can be merged into an application incremental package group. Thus, an application incremental package group set is obtained.
[0043] In some optional implementations of some embodiments, the execution subject may construct an application incremental package set corresponding to the application full package and the application split package through the following steps:
[0044] The first step is to obtain the latest released preset number of version application packages of the application corresponding to the above application update request as a version application package set. Among them, the version application packages in the above version application package set include: version application full package and version application split package. Here, the version application full package may refer to the full package of a certain version of the application. The version application split package may refer to the split package of a certain version of the application. That is, the latest released preset number of version application packages of the application corresponding to the above application update request can be obtained from the local database as a version application package set. Here, there is no restriction on the setting of the preset number. Each version application package corresponds to a release time. Thereby, it is convenient to select the latest released preset number of version application packages according to the release time.
[0045] In the second step, for each version application package in the above version application package set, perform the following processing steps:
[0046] First, determine the full-package application incremental package between the version application full package included in the version application package and the application full package. That is, the incremental data between the version application full package and the application full package can be determined as the full-package application incremental package.
[0047] Second, determine the full-package split application incremental package between the version application full package included in the version application package and the application split package. That is, the incremental data between the version application full package and the application split package can be determined as the full-package split application incremental package.
[0048] Third, determine the split full-package application incremental package between the version application split package included in the version application package and the application full package. That is, the incremental data between the version application split package and the application full package can be determined as the split full-package application incremental package.
[0049] Fourth, determine the version application split package included in the version application package and the split application incremental package between the application split package. That is, the incremental data between the version application split package and the application split package can be determined as the split application incremental package.
[0050] Fifth, the above-mentioned full-inclusive application incremental package, the above-mentioned full-inclusive split application incremental package, the above-mentioned split full-inclusive application incremental package and the above-mentioned split application incremental package are merged into an application incremental package group.
[0051] Therefore, different formats of incremental packages can be set so that the client can download the corresponding incremental package according to actual needs. Thus, flexible configuration download of a certain application can be realized, which is conducive to iterative updates of client applications.
[0052] Step 203: According to the application version information list corresponding to the client, a corresponding application incremental package group is selected from the application incremental package group set as a target application incremental package group.
[0053] In some embodiments, the execution subject may select a corresponding application incremental package group from the application incremental package group set as the target application incremental package group according to the application version information list corresponding to the client. Here, the application version information list may refer to an information list of each version of the application corresponding to the application update request downloaded by the client.
[0054] That is, the latest application version information can be selected from the above application version information list as the target application version information. Afterwards, the application incremental package group whose corresponding version information in the above application incremental package group set is the same as the above target application version information can be determined as the target application incremental package group. Here, the version information corresponding to the application incremental package group can refer to the version information corresponding to the version application package.
[0055] In some optional implementations of some embodiments, the execution subject may select a corresponding application incremental package group from the application incremental package group set as the target application incremental package group through the following steps:
[0056] In the first step, in response to determining that the application version information list is not empty, the first application version information in the application version information list is read, and the following selection steps are performed:
[0057] The first selection step is to determine whether the version corresponding to the above application version information is greater than or equal to the latest local version.
[0058] The second selection step is to determine whether the application version information meets the update condition in response to determining that the version corresponding to the application version information is smaller than the local latest version. The update condition may mean that the version represented by the application version information is within the version update range. The version update range may include at least one application version.
[0059] In the third selection step, in response to determining that the application version information meets the update condition, the application incremental package group corresponding to the application version information is selected from the application incremental package group set as the target application incremental package group. That is, the application incremental package group whose corresponding version information is the same as the target application version information can be selected from the application incremental package group set as the target application incremental package group.
[0060] Thus, the latest application version information can be selected to make incremental packages, thereby avoiding making too many incremental packages and meeting the update requirements of different versions of applications.
[0061] Optionally, in response to determining that the above application version information list is empty, an empty target application incremental package group is generated.
[0062] Optionally, in response to determining that the application version information does not meet the update conditions, the application version information is removed from the application version information list to update the application version information list, and the updated application version information list is used as the application version information list to perform the selection step again.
[0063] In some embodiments, the execution entity may, in response to determining that the application version information does not meet the update conditions, remove the application version information from the application version information list to update the application version information list, and use the updated application version information list as the application version information list to execute the selection step again.
[0064] Step 204: Send the above-mentioned full application package, the above-mentioned application split package and the above-mentioned target application incremental package group to the cache corresponding to the above-mentioned client.
[0065] In some embodiments, the execution entity may send the full application package, the split application package, and the target application incremental package group to a cache corresponding to the client.
[0066] The above-mentioned various embodiments of the present disclosure have the following beneficial effects: through the application package distribution method of some embodiments of the present disclosure, the waste of computing resources is reduced, and flexible configuration download of a certain application can be achieved, which is conducive to the iterative update of the application.
[0067] Further references Figure 3, showing some embodiments of the application package downloading system according to the present disclosure. The application package downloading system comprises the following steps:
[0068] Step 301: In response to receiving an application update request sent by a client, the server constructs an application full package and an application split package corresponding to the application update request.
[0069] In some embodiments, in response to receiving an application update request sent by a client, the server may construct an application full package and an application split package corresponding to the application update request. The server is in communication connection with the client.
[0070] Step 302: The server constructs an application incremental package set corresponding to the application full package and the application split package according to the version application package set corresponding to the application update request.
[0071] In some embodiments, the server constructs an application incremental package set corresponding to the application full package and the application split package according to the version application package set corresponding to the application update request.
[0072] In step 303, the server selects a corresponding application incremental package group from the application incremental package group set as a target application incremental package group according to the application version information list corresponding to the client, and sends the application full package, the application split package and the target application incremental package group to the cache corresponding to the client.
[0073] In some embodiments, the server can select a corresponding application incremental package group from the application incremental package group set as the target application incremental package group based on the application version information list corresponding to the client, and send the application full package, the application split package and the target application incremental package group to the cache corresponding to the client.
[0074] Here, the specific implementation of steps 301-303 and the technical effects brought about can be referred to Figure 2 The corresponding steps 201-204 in the embodiments are not described in detail here.
[0075] Step 304: In response to detecting the application download information and determining that the local public component package supports installation of the latest version of the application package, the client determines whether there is a local application package corresponding to the application download information in the local database.
[0076] In some embodiments, the client may determine whether there is a local application package corresponding to the application download information in the local database in response to detecting the application download information and determining that the local public component package supports the installation of the latest version of the application package. First, in response to detecting the application download information, it may be determined whether the local public component package supports the installation of the latest version of the application package. The application download information may be information about the application package selected by the user operating the client, and may include the name of the application. The local public component package may refer to a local public component package. The latest version of the application package may refer to the latest version of the application package pointed to by the application download information. That is, it is determined whether the above-mentioned local public component package supports the installation of the latest version of the application package. Then, it may be determined whether there is a historically downloaded application package of the application corresponding to the above-mentioned application download information in the local database.
[0077] Therefore, it is possible to determine whether the latest version of the application package can be installed based on the version information of the local public component package, thereby facilitating the determination of downloading the corresponding application package to meet the client's needs.
[0078] Step 305: In response to determining that there is no local application package corresponding to the application download information in the local database, the client downloads the application split package from the associated cache.
[0079] In some embodiments, the client can download the application split package from the associated cache in response to determining that there is no local application package corresponding to the application download information in the local database. Here, the associated cache can refer to the cache of the execution subject communication connection, which is used to store various application packages of the application to be updated.
[0080] Optionally, in response to determining that there is a local application package corresponding to the above application download information in the local database, the client downloads the split full-package application incremental package and the split application incremental package in the target application incremental package group from the above cache.
[0081] In some embodiments, the client can, in response to determining that there is a local application package corresponding to the application download information in the local database, download the split full-package application incremental package and the split application incremental package in the target application incremental package group from the cache. Here, the target application incremental package group includes: full-package application incremental package, full-package split application incremental package, split full-package application incremental package, and split application incremental package.
[0082] Optionally, in response to determining that the local public component package does not support installation of the latest version of the application package and determining that there is no local application package corresponding to the application download information in the local database, the client downloads the entire application package from the cache.
[0083] In some embodiments, the client may download the entire application package from the cache in response to determining that the local public component package does not support installation of the latest version of the application package and that there is no local application package corresponding to the application download information in the local database.
[0084] Therefore, the corresponding application package can be adaptively downloaded according to the client's own application version information.
[0085] Optionally, in response to determining that the local public component package does not support the installation of the latest version of the application package, and determining that there is a local application package corresponding to the application download information in the local database, the client downloads the full-package application incremental package and the full-package split application incremental package in the target application incremental package group from the cache.
[0086] In some embodiments, the above-mentioned client can download the full-package application incremental package and the full-package split application incremental package in the target application incremental package group from the above-mentioned cache in response to determining that the above-mentioned local public component package does not support the installation of the latest version of the application package, and determining that there is a local application package corresponding to the above-mentioned application download information in the local database.
[0087] from Figure 3 It can be seen that Figure 3 In some corresponding embodiments, the process 300 can adaptively download the corresponding application package according to the client's own application version information. Therefore, it is not necessary to download the entire application package, which avoids the waste of computing resources, and can flexibly configure the download to facilitate iterative updates of the application.
[0088] Further references Figure 4 As an implementation of the methods shown in the above figures, the present disclosure provides some embodiments of an application package delivery device. These application package delivery device embodiments are similar to Figure 2 Corresponding to the method embodiments shown, the application package sending device can be specifically applied to various electronic devices.
[0089] like Figure 4As shown, the application package sending device 400 of some embodiments includes: a first construction unit 401, a second construction unit 402, a selection unit 403 and a sending unit 404. The first construction unit 401 is configured to construct the application full package and the application split package corresponding to the above application update request in response to receiving the application update request sent by the client; the second construction unit 402 is configured to construct the application incremental package group set corresponding to the above application full package and the above application split package according to the version application package set corresponding to the above application update request, wherein the application incremental package group in the above application incremental package group set corresponds to the version application package in the above version application package set; the selection unit 403 is configured to select the corresponding application incremental package group from the above application incremental package group set as the target application incremental package group according to the application version information list corresponding to the above client; the sending unit 404 is configured to send the above application full package, the above application split package and the above target application incremental package group to the cache corresponding to the above client.
[0090] Optionally, the second construction unit 402 is further configured to: obtain a preset number of latest released version application packages of the application corresponding to the above-mentioned application update request as a version application package set, wherein the version application packages in the above-mentioned version application package set include: version application full package and version application split package; for each version application package in the above-mentioned version application package set, perform the following processing steps: determine the full-package application incremental package between the version application full package included in the above-mentioned version application package and the above-mentioned application full package; determine the full-package split application incremental package between the version application full package included in the above-mentioned version application package and the above-mentioned application split package; determine the split full-package application incremental package between the version application split package included in the above-mentioned version application package and the above-mentioned application full package; determine the split application incremental package between the version application split package included in the above-mentioned version application package and the above-mentioned application split package; merge the above-mentioned full-package application incremental package, the above-mentioned full-package split application incremental package, the above-mentioned split full-package application incremental package and the above-mentioned split application incremental package into an application incremental package group.
[0091] Optionally, the selection unit 403 is further configured to: in response to determining that the above-mentioned application version information list is not empty, read the first application version information in the above-mentioned application version information list, and perform the following selection steps: determine whether the version corresponding to the above-mentioned application version information is greater than or equal to the latest local version; in response to determining that the version corresponding to the above-mentioned application version information is less than the latest local version, determine whether the above-mentioned application version information meets the update conditions; in response to determining that the above-mentioned application version information meets the update conditions, select the application incremental package group corresponding to the above-mentioned application version information from the above-mentioned application incremental package group set as the target application incremental package group.
[0092] Optionally, the application package sending device 400 also includes: an update unit, configured to: in response to determining that the above-mentioned application version information does not meet the update conditions, remove the above-mentioned application version information from the above-mentioned application version information list to update the application version information list, and use the updated application version information list as the application version information list to perform the above-mentioned selection step again.
[0093] It is understandable that the units recorded in the application package issuing device 400 are similar to those in the reference Figure 2 Therefore, the operations, features and beneficial effects described above for the method are also applicable to the application package sending device 400 and the units included therein, and will not be described in detail here.
[0094] Reference below Figure 5 , which shows an electronic device (eg, Figure 1 The electronic devices in some embodiments of the present disclosure may include but are not limited to mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, AR / VR / MR devices, etc. Figure 5 The electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0095] like Figure 5 As shown, the electronic device 500 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 501, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 502 or a program loaded from a storage device 508 into a random access memory (RAM) 503. In the RAM 503, various programs and data required for the operation of the electronic device 500 are also stored. The processing device 501, the ROM 502, and the RAM 503 are connected to each other via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.
[0096] Typically, the following devices may be connected to the I / O interface 505: an input device 506 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 507 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 508 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 509. The communication device 509 may allow the electronic device 500 to communicate with other devices wirelessly or by wire to exchange data. Although Figure 5 The electronic device 500 is shown with various devices, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead. Figure 5 Each block shown in the figure may represent one device, or may represent multiple devices as required.
[0097] In particular, according to some embodiments of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, some embodiments of the present disclosure include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program contains program code for executing the method shown in the flowchart. In some such embodiments, the computer program can be downloaded and installed from the network through the communication device 509, or installed from the storage device 508, or installed from the ROM 502. When the computer program is executed by the processing device 501, the above-mentioned functions defined in the method of some embodiments of the present disclosure are executed.
[0098] It should be noted that the computer-readable medium recorded in some embodiments of the present disclosure may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In some embodiments of the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In some embodiments of the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, which carries a computer-readable program code. This propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
[0099] In some embodiments, the client and the server may communicate using any currently known or future developed network protocol such as HTTP (HyperText Transfer Protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), an internet (e.g., the Internet), and a peer-to-peer network (e.g., an ad hoc peer-to-peer network), as well as any currently known or future developed network.
[0100] The above-mentioned computer-readable medium may be included in the above-mentioned electronic device; or it may exist independently without being installed in the electronic device. The above-mentioned computer-readable medium carries one or more programs. When the above-mentioned one or more programs are executed by the electronic device, the electronic device: in response to receiving an application update request sent by the client, constructs the application full package and application split package corresponding to the above-mentioned application update request; according to the version application package set corresponding to the above-mentioned application update request, constructs an application incremental package group set corresponding to the above-mentioned application full package and the above-mentioned application split package, wherein the application incremental package group in the above-mentioned application incremental package group set corresponds to the version application package in the above-mentioned version application package set; according to the application version information list corresponding to the above-mentioned client, selects the corresponding application incremental package group from the above-mentioned application incremental package group set as the target application incremental package group; sends the above-mentioned application full package, the above-mentioned application split package and the above-mentioned target application incremental package group to the cache corresponding to the above-mentioned client.
[0101] Computer program code for performing the operations of some embodiments of the present disclosure may be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0102] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0103] The units described in some embodiments of the present disclosure may be implemented by software or by hardware. The described units may also be set in a processor. For example, they may be described as: a processor comprising: a first construction unit, a second construction unit, a selection unit, and a sending unit. Among them, the names of these units do not constitute a limitation on the unit itself under certain circumstances. For example, the sending unit may also be described as "a unit that sends the above-mentioned application full package, the above-mentioned application split package, and the above-mentioned target application incremental package group to the cache corresponding to the above-mentioned client."
[0104] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.
[0105] Some embodiments of the present disclosure further provide a computer program product, including a computer program, which implements any of the above-mentioned application package delivery methods when executed by a processor.
[0106] The above descriptions are only some preferred embodiments of the present disclosure and an explanation of the technical principles used. Those skilled in the art should understand that the scope of the invention involved in the embodiments of the present disclosure is not limited to the technical solutions formed by a specific combination of the above-mentioned technical features, but should also cover other technical solutions formed by any combination of the above-mentioned technical features or their equivalent features without departing from the above-mentioned inventive concept. For example, the above-mentioned features are replaced with the technical features with similar functions disclosed in the embodiments of the present disclosure (but not limited to) and the technical solutions formed.
Claims
1. A method for issuing an application package, comprising: In response to receiving an application update request sent by a client, constructing an application full package and an application split package corresponding to the application update request; According to the version application package set corresponding to the application update request, construct an application incremental package group set corresponding to the application full package and the application split package, wherein the application incremental package group in the application incremental package group set corresponds to the version application package in the version application package set; According to the application version information list corresponding to the client, selecting a corresponding application incremental package group from the application incremental package group set as a target application incremental package group; The full application package, the split application package and the target application incremental package group are sent to the cache corresponding to the client.
2. The method according to claim 1, wherein: The step of constructing an application incremental package set corresponding to the application full package and the application split package according to the version application package set corresponding to the application update request includes: Obtaining a preset number of latest released version application packages of the application corresponding to the application update request as a version application package set, wherein the version application packages in the version application package set include: a version application full package and a version application split package; For each version application package in the version application package set, the following processing steps are performed: Determine a full-package application incremental package between the version application full package included in the version application package and the application full package; Determine a full-package split application incremental package between the version application full package included in the version application package and the application split package; Determine a split full-package application incremental package between the version application split package included in the version application package and the application full package; Determine a version application split package included in the version application package and a split application incremental package between the application split package; The full-package application incremental package, the full-package split application incremental package, the split full-package application incremental package and the split application incremental package are combined into an application incremental package group.
3. The method according to claim 1, wherein: The selecting, according to the application version information list corresponding to the client, a corresponding application incremental package group from the application incremental package group set as a target application incremental package group comprises: In response to determining that the application version information list is not empty, reading the first application version information in the application version information list, and performing the following selection steps: Determine whether the version corresponding to the application version information is greater than or equal to the latest local version; In response to determining that the version corresponding to the application version information is smaller than the local latest version, determining whether the application version information meets an update condition; In response to determining that the application version information meets the update condition, an application incremental package group corresponding to the application version information is selected from the application incremental package group set as a target application incremental package group.
4. The method according to claim 3, wherein: The method further comprises: In response to determining that the application version information does not meet the update condition, the application version information is removed from the application version information list to update the application version information list, and the updated application version information list is used as the application version information list to perform the selection step again.
5. An application package downloading system, comprising: In response to receiving the application update request sent by the client, the server constructs an application full package and an application split package corresponding to the application update request; The server constructs an application incremental package set corresponding to the application full package and the application split package according to the version application package set corresponding to the application update request; The server selects a corresponding application incremental package group from the application incremental package group set as a target application incremental package group according to the application version information list corresponding to the client, and sends the application full package, the application split package and the target application incremental package group to the cache corresponding to the client; In response to detecting the application download information and determining that the local public component package supports installation of the latest version of the application package, the client determines whether there is a local application package corresponding to the application download information in the local database; In response to determining that there is no local application package corresponding to the application download information in the local database, the client downloads the application split package from the associated cache.
6. The system according to claim 5, wherein: In response to determining that there is a local application package corresponding to the application download information in the local database, the client downloads the split full-package application incremental package and the split application incremental package in the target application incremental package group from the cache.
7. The system according to claim 5, wherein: The client, in response to determining that the local public component package does not support installation of the latest version of the application package and determining that there is no local application package corresponding to the application download information in the local database, downloads the entire application package from the cache; In response to determining that the local public component package does not support the installation of the latest version of the application package, and determining that there is a local application package corresponding to the application download information in the local database, the client downloads the full-package application incremental package and the full-package split application incremental package in the target application incremental package group from the cache.
8. An application package issuing device, comprising: A first construction unit is configured to, in response to receiving an application update request sent by a client, construct an application full package and an application split package corresponding to the application update request; A second construction unit is configured to construct an application incremental package group set corresponding to the application full package and the application split package according to the version application package set corresponding to the application update request, wherein the application incremental package group in the application incremental package group set corresponds to the version application package in the version application package set; A selection unit is configured to select a corresponding application incremental package group from the application incremental package group set as a target application incremental package group according to the application version information list corresponding to the client; The sending unit is configured to send the full application package, the split application package and the target application incremental package group to the cache corresponding to the client.
9. An electronic device, comprising: one or more processors; a storage device having one or more programs stored thereon; When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 4.
10. A computer readable medium having a computer program stored thereon, wherein: When the program is executed by a processor, the method according to any one of claims 1 to 4 is implemented.
11. A computer program product, comprising a computer program, which, when executed by a processor, implements the method according to any one of claims 1 to 4.