Application updating system and method and electronic equipment

By establishing communication connections between multiple electronic devices and collaboratively updating applications, the poor user experience problem caused by excessive application installation package is solved, and the effect of reducing user operations and downloading data is achieved.

CN119440597APending Publication Date: 2025-02-14HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310957364.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-07-31
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

With the rich application functions, the application installation package is too large, causing users to wait for a long time to download and install, and the user experience is poor.

Method used

By establishing communication connections between multiple electronic devices, collaborative updates of applications are realized, reducing user operations and downloading data. The specific method includes: the first electronic device establishes a communication connection with the second electronic device, the first electronic device acquires an update package based on the first version and the second version, sends it to the second electronic device, and synthesizes and installs the latest version. Application.

Benefits of technology

Multi-device collaborative updates have been realized, reducing the amount of user operations and device download data, and improving user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119440597A_ABST
    Figure CN119440597A_ABST
Patent Text Reader

Abstract

The invention provides an application updating system and method and electronic equipment. The first application of the first version is installed on the second electronic equipment, and the first application of the second version is installed on the first electronic equipment. The second electronic equipment sends a first version identifier of the first application to the first electronic equipment; under the condition that the second version is higher than the first version, the first electronic equipment obtains a first update package, and the first update package is obtained based on a first installation package of the first version and a second installation package of the second version; the first electronic device sends the first update packet to the second electronic device through the communication connection; the second electronic device synthesizes a second installation package of a second version based on the first update package and the first installation package of the first version; and the first electronic equipment further installs the first application based on the second installation package of the second version. The applications on the devices are updated cooperatively by multiple devices, and the data volume downloaded when the applications are updated by the devices is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of terminal technology, and in particular to an application updating system, method and electronic device. Background Art

[0002] With the advancement of technology and the development of smart electronic devices, in order to meet the needs of users, developers have developed a variety of functional applications. Users can download and install applications on electronic devices and experience different application features through installed applications, such as playing music, playing videos, etc.

[0003] Currently, an installation package of an application may include multiple different function packages, and different function packages may implement different functions. For example, a function package of an application may include but is not limited to a basic package, a configuration package, an entry function package, or a feature function package.

[0004] As applications become more and more functional, the number of application function packages increases, resulting in application installation packages being too large. It takes a long time for electronic devices to download application installation packages, and users also need to wait a long time to download application installation packages, resulting in poor user experience. Summary of the invention

[0005] The present application provides an application update system, method and electronic device, which realizes the collaborative update of applications on multiple devices by multiple devices, which can not only reduce user operations, but also reduce the amount of data downloaded when the device updates the application.

[0006] In a first aspect, the present application provides an application update system, the system comprising a first electronic device and a second electronic device, wherein a communication connection is established between the first electronic device and the second electronic device, a first version of a first application is installed on the second electronic device, and a second version of the first application is installed on the first electronic device, wherein the second electronic device is used to send a first version identifier of the first application to the first electronic device; the first electronic device, when the second version is higher than the first version, obtains a first update package, the first update package being obtained based on a first installation package of the first version and a second installation package of the second version; the first electronic device is further used to send the first update package to the second electronic device via the communication connection; the second electronic device is used to synthesize a second installation package of the second version based on the first update package and the first installation package of the first version; the first electronic device is further used to install the first application based on the second installation package of the second version.

[0007] The first electronic device obtains the second version of the first application by installing the second installation package of the second version.

[0008] The second electronic device installs the first version of the first application based on the first installation package of the first version.

[0009] The communication connection between the first electronic device and the second electronic device may include but is not limited to a Bluetooth connection, a Wi-Fi connection, a server connection, and the like.

[0010] In some embodiments, the first electronic device and the second electronic device establish an association relationship, and the first electronic device and the second electronic device may establish the association relationship in, but not limited to, any of the following ways.

[0011] Method 1: The first electronic device and the second electronic device are logged in with the same user account.

[0012] When the first electronic device and the second electronic device are logged in with the same user account, it can be understood that the first electronic device and the second electronic device are multiple electronic devices of the same user, and the multiple electronic devices of the same user are associated by default.

[0013] Method 2: The first electronic device and the second electronic device have different user accounts, but the two user accounts are associated with each other.

[0014] When the first electronic device and the second electronic device are logged in with different user accounts, but the two user accounts have an associated relationship, it can be understood that the first electronic device and the second electronic device are multiple electronic devices in a family group, and multiple electronic devices in a family group have an associated relationship by default.

[0015] Method three: The first electronic device receives a user operation and actively establishes an association relationship with the second electronic device.

[0016] Optionally, if the user accounts logged into the first electronic device and the second electronic device are different, and the two user accounts have not established an association relationship, the first electronic device and the second electronic device have not established an association relationship. In this case, the first electronic device can receive a user operation to actively establish an association relationship with the second electronic device. For example, the association relationship is established by scanning a code or entering a verification code.

[0017] Optionally, the second electronic device may actively establish an association relationship with the first electronic device.

[0018] In some embodiments, the operating systems installed on the first electronic device and the second electronic device are the same.

[0019] The same operating system installed on the first electronic device and the second electronic device specifically means that: the operating systems of the first electronic device and the second electronic device are operating systems of the same manufacturer, for example, the first electronic device is an operating system suitable for mobile phones, and the second electronic device is an operating system suitable for pads; or, the operating systems of the first electronic device and the second electronic device are the same operating system, for example, both are HarmonyOS operating systems, and the operating systems of the first electronic device and the second electronic device can be the same version number or different version numbers.

[0020] In other embodiments, when the second version is lower than the first version and the second version is not the latest version of the first application, the first electronic device can obtain a third update package from the server and send the third update package to the second electronic device. The second electronic device can synthesize a third installation package of the third version based on the third update package and the first installation package of the first version, and install and update to the third application of the third version based on the third installation package of the third version.

[0021] The first electronic device may also receive the first installation package of the first version sent by the second electronic device, and obtain the first update package based on the first installation package of the first version and the second installation package of the second version. The first electronic device may synthesize the third installation package of the third version based on the first update package, the third update package, and the second installation package of the second version, and install and update the third application to the third version based on the third installation package of the third version. Optionally, the first update package may also be obtained by the first electronic device from the server.

[0022] In other embodiments, when the second version is lower than the first version and the second version is the latest version of the first application, the first electronic device may also receive the first installation package of the first version sent by the second electronic device, and obtain the first update package based on the first installation package of the first version and the second installation package of the second version. The first electronic device may synthesize the first installation package of the first version based on the first update package and the second installation package of the second version, and install and update the second application to the second version based on the first installation package of the first version. Optionally, the first update package may also be obtained by the first electronic device from the server.

[0023] Through this method, the second electronic device can obtain the first update package from the first electronic device and update the first application based on the first update package. The second electronic device does not need to download the complete second installation package of the second version. On the one hand, the amount of data downloaded by the second electronic device is reduced. On the other hand, when the second electronic device is not connected to the Internet, or both the second electronic device and the first electronic device are not connected to the Internet, the second electronic device can obtain the first update package from the first electronic device via a Bluetooth connection.

[0024] In combination with the first aspect, in a possible implementation manner, the second version is the latest version of the first application.

[0025] In the case that the second version is the latest version, the first electronic device only needs to obtain the first update package, and the second electronic device does not need to obtain other update packages from the server.

[0026] In combination with the first aspect, in a possible implementation manner, the first electronic device is further used to: obtain a second version identifier; and determine, based on the first version identifier and the second version identifier, that the second version is higher than the first version.

[0027] In one possible implementation, the first electronic device may obtain the second version identifier, and determine locally on the first electronic device that the second version is higher than the first version based on the first version identifier and the second version identifier. For example, generally speaking, the higher the version, the larger the version identifier, so the first electronic device may determine that the second version is higher than the first version based on the second version identifier being greater than the first version identifier. For another example, the first electronic device locally stores the chronological relationship of various versions of the first application, so the first electronic device may determine that the second version is higher than the first version based on the first version identifier, the second version identifier, and the chronological relationship of various versions of the first application stored locally.

[0028] In other possible implementations, when the first electronic device is unable to confirm the order of the first version and the second version, the first electronic device may send the first version identifier and the second version identifier to the server, which confirms the order of the first version and the second version and then sends a message to the first electronic device, so that the first electronic device determines that the second version is higher than the first version.

[0029] In combination with the first aspect, in one possible implementation, the first electronic device is further used to send a second version identifier to a server; the server is used to send a first message to the first electronic device when it is determined that the second version is the latest version of the first application; the first electronic device is further used to determine that the second version is the latest version of the first application in response to the first message.

[0030] When the first electronic device is unable to confirm the order of the first version and the second version, the first electronic device may send the first version identifier and the second version identifier to the server, which confirms the order of the first version and the second version and then sends a first message to the first electronic device, so that the first electronic device can determine that the second version is higher than the first version based on the first message.

[0031] In combination with the first aspect, in a possible implementation, the first electronic device is further used to receive a first installation package sent by the second electronic device; the first electronic device is specifically used to obtain a first update package based on the first installation package and the second installation package.

[0032] Optionally, the second electronic device may periodically / irregularly send the first installation package installed on the first electronic device to the first electronic device, so that the first electronic device may store the first installation package of the second electronic device, so that the first electronic device may determine the first update package based on the first installation package and the second installation package.

[0033] Optionally, the second electronic device can send the first installation package to the first electronic device when the second electronic device is idle, that is, send it to the first electronic device when the second electronic device is not in use. In this way, the situation that the first installation package is sent during the use of the second electronic device and causes a freeze can be avoided.

[0034] Optionally, the second electronic device may also send the first installation package to the first electronic device within a fixed time period. For example, between 12:00 p.m. and 5:00 a.m., the second electronic device may send the first installation package to the first electronic device. The second electronic device is most likely not used during the fixed time period, so that the situation of sending the first installation package during the use of the second electronic device causing a freeze can be avoided.

[0035] Optionally, the second electronic device may also send the first installation package to the first electronic device within a fixed time period and when the second electronic device is idle.

[0036] In combination with the first aspect, in a possible implementation manner, the system further includes a server; and the first electronic device is further configured to:

[0037] Obtain a second version identifier; send the first version identifier and the second version identifier to a server; the server, based on the first version identifier and the second version identifier, obtains a first update package; the server is also used to send the first update package to a first electronic device; the first electronic device is specifically used to receive the first update package sent by the server and obtain the first update package.

[0038] In this way, the first electronic device can send the first version identifier and the second version identifier to the server, and the server confirms that the second version is higher than the first version, and determines that the second version is the latest version of the first application. The server can then obtain the first installation package of the first version based on the first version identifier, and then obtain the second installation package of the second version based on the second version identifier. The server then obtains the first update package based on the first installation package of the first version and the second installation package of the second version. The first update package can be a difference package between the first installation package of the first version and the second installation package of the second version. The server sends the first update package to the first electronic device, and the first electronic device then sends the first update package to the second electronic device.

[0039] In this way, the second electronic device does not need to send the first installation package of the first version to the first electronic device, and the first electronic device can directly obtain the first update package from the server, further reducing the amount of data transmitted between electronic devices.

[0040] In combination with the first aspect, in a possible implementation, when the second installation package of the second version is not the latest version installation package of the first application, the first electronic device is further used to: obtain a first update package and a second update package, the second update package being obtained based on the second installation package and a third installation package of the third version, the third installation package of the third version being the latest version installation package of the first application; send the first update package and the second update package to the second electronic device via a communication connection; the second electronic device is further used to: synthesize a third installation package of the third version based on the first update package, the second update package and the first installation package of the first version; and install the first application based on the third installation package of the third version.

[0041] The first update package may be a difference package between a first installation package of a first version and a second installation package of a second version.

[0042] The second update package may be a difference package between the second installation package of the second version and the third installation package of the third version.

[0043] Through this method, when the second version is not the latest version, the second electronic device can obtain the first update package and the second update package from the first electronic device, and update the first application based on the first update package and the second update package. The second electronic device can update the first application to the latest version without downloading the complete third installation package of the third version, thereby reducing the amount of data downloaded by the second electronic device.

[0044] In combination with the first aspect, in a possible implementation, the first electronic device is further used to: synthesize a third installation package of a third version based on the second update package and the second installation package; and install the first application based on the third installation package of the third version.

[0045] In one possible implementation, after the first electronic device obtains the first update package and the second update package, the first electronic device can update the first application based on the second update package. The first electronic device can update the first application to the latest version without downloading the complete third installation package of the third version, thereby reducing the amount of data downloaded by the first electronic device.

[0046] In other possible implementations, after obtaining the first update package and the second update package, the first electronic device may only need to send the first update package and the second update package to the second electronic device, and the first electronic device may not update the first application based on the second update package.

[0047] In combination with the first aspect, in a possible implementation, the system also includes a server; the first electronic device is further used to: determine that the second version is higher than the first version based on the first version identifier and the second version identifier; send the second version identifier to the server; the server is further used to: obtain a second update package based on the second version identifier; send the second update package to the first electronic device; the first electronic device is specifically used to receive the second update package sent by the server and obtain the second update package.

[0048] In one possible implementation, the first electronic device may obtain the second version identifier, and determine locally on the first electronic device that the second version is higher than the first version based on the first version identifier and the second version identifier. For example, generally speaking, the higher the version, the larger the version identifier, so the first electronic device may determine that the second version is higher than the first version based on the second version identifier being greater than the first version identifier. For another example, the first electronic device locally stores the chronological relationship of various versions of the first application, so the first electronic device may determine that the second version is higher than the first version based on the first version identifier, the second version identifier, and the chronological relationship of various versions of the first application stored locally.

[0049] In other possible implementations, when the first electronic device is unable to confirm the order of the first version and the second version, the first electronic device may send the first version identifier and the second version identifier to the server, which confirms the order of the first version and the second version and then sends a message to the first electronic device, so that the first electronic device determines that the second version is higher than the first version.

[0050] In this way, after the first electronic device determines that the second version is higher than the first version, the first electronic device needs to send the second version identifier to the server, and the server determines whether the second version is the latest version of the first application. In the case of determining that the second version is the latest version of the first application, the server can obtain the version identifier (for example, the third version identifier) ​​of the latest version of the first application, and the server can obtain the third installation package of the third version based on the third version identifier, and the server can obtain the second installation package of the second version based on the second version identifier. Afterwards, the server can obtain the second update package based on the third installation package of the third version and the second installation package of the second version, and the second update package can be a difference package between the third installation package of the third version and the second installation package of the second version. The server then sends the second update package to the first electronic device, and the first electronic device sends the second update package to the first electronic device, so that the first electronic device can obtain the second update package and update the first application to the latest version based on the second update package.

[0051] In combination with the first aspect, in a possible implementation, the first electronic device is further used to receive a first installation package sent by the second electronic device; the first electronic device is specifically used to obtain a first update package based on the first installation package and the second installation package.

[0052] Optionally, the second electronic device may periodically / irregularly send the first installation package installed on the first electronic device to the first electronic device, so that the first electronic device may store the first installation package of the second electronic device, so that the first electronic device may determine the first update package based on the first installation package and the second installation package.

[0053] Optionally, the second electronic device can send the first installation package to the first electronic device when the second electronic device is idle, that is, send it to the first electronic device when the second electronic device is not in use. In this way, the situation that the first installation package is sent during the use of the second electronic device and causes a freeze can be avoided.

[0054] Optionally, the second electronic device may also send the first installation package to the first electronic device within a fixed time period. For example, between 12:00 p.m. and 5:00 a.m., the second electronic device may send the first installation package to the first electronic device. The second electronic device is most likely not used during the fixed time period, so that the situation of sending the first installation package during the use of the second electronic device causing a freeze can be avoided.

[0055] Optionally, the second electronic device may also send the first installation package to the first electronic device within a fixed time period and when the second electronic device is idle.

[0056] In combination with the first aspect, in a possible implementation, the system also includes a server; the first electronic device is further used to: obtain a second version identifier; send the first version identifier and the second version identifier to the server; the server is further used to: obtain a first update package and a second update package based on the first version identifier and the second version identifier; send the first update package and the second update package to the first electronic device; the first electronic device is specifically used to receive the first update package and the second update package sent by the server, and obtain the second update package and the first update package.

[0057] In this way, the first electronic device can send the first version identifier and the second version identifier to the server, and the server confirms that the second version is higher than the first version, and determines that the latest version of the first application is the third version. The server can then obtain the first installation package of the first version based on the first version identifier, and then obtain the second installation package of the second version based on the second version identifier, and then obtain the third installation package of the third version based on the third version identifier. The server then obtains the first update package based on the first installation package of the first version and the second installation package of the second version, and obtains the second update package based on the second installation package of the second version and the third installation package of the third version. The first update package can be a difference package between the first installation package of the first version and the second installation package of the second version, and the second update package can be a difference package between the second installation package of the second version and the third installation package of the third version. The server sends the first update package and the second update package to the first electronic device, and the first electronic device then sends the first update package and the second update package to the second electronic device.

[0058] In this way, the second electronic device does not need to send the first installation package of the first version to the first electronic device, and the first electronic device can directly obtain the first update package from the server, further reducing the amount of data transmitted between electronic devices.

[0059] In combination with the first aspect, in a possible implementation method, the first installation package is a compressed first installation package, and the second electronic device is specifically used to: obtain the compressed first installation package, and decompress the compressed first installation package to obtain a decompressed first installation package; synthesize a decompressed second installation package of the second version based on the decompressed first installation package and the first update package; synthesize a decompressed third installation package of the third version based on the decompressed second installation package and the second update package; compress the three versions of the decompressed third installation package to obtain a third installation package of the third version.

[0060] In this way, when the second electronic device needs to update the first application based on two or more update packages, the second electronic device only needs to decompress the compressed first installation package, synthesize the installation packages of adjacent versions in sequence, and then compress the latest version of the installation package, and then install and update the first application based on the latest version of the compressed installation package. This speeds up the installation and update of the first application by the second electronic device.

[0061] In combination with the first aspect, in a possible implementation, the first electronic device is specifically used to send a first update package to a second electronic device through a communication connection when a first condition is met; wherein the first condition includes any one of the following: the first electronic device receives a first user operation, and the first user operation is used to update a first application on the first electronic device and the second electronic device; or, when the first electronic device and the second electronic device establish a communication connection, or after the first electronic device and the second electronic device establish a communication connection, the first electronic device irregularly / periodically detects that the version of the first application installed on the second electronic device is lower than the version of the first application installed on the first electronic device; or, the first electronic device receives a second message sent by the second electronic device, and the second message is sent after the second electronic device receives a second user operation, and the second user operation is used to update the first application on the first electronic device and the second electronic device.

[0062] In combination with the first aspect, in a possible implementation manner, the first version identifier includes an application identifier of the first application and a version identifier of the first application.

[0063] Optionally, the first version identifier may also only include the version identifier of the first application.

[0064] In a second aspect, the present application provides an application update method, the method comprising: a first electronic device receives a first version identifier of a first application sent by a second electronic device, the first version identifier is sent through a communication connection between the first electronic device and the second electronic device, the second version of the first application is installed on the first electronic device, and the first version of the first application is installed on the second electronic device; when the second version is higher than the first version, the first electronic device obtains a first update package, the first update package is obtained based on a first installation package of the first version and a second installation package of the second version; the first electronic device sends the first update package to the second electronic device through a communication connection, the first update package is used by the second electronic device to synthesize a second installation package of the second version based on the first installation package of the first version, and the second installation package of the second version is used by the second electronic device to install the second version of the first application.

[0065] In conjunction with the second aspect, in a possible implementation, the second version is the latest version of the first application.

[0066] In combination with the second aspect, in a possible implementation, before the first electronic device obtains the first update package, the method also includes: the first electronic device obtains a second version identifier; the first electronic device determines that the second version is higher than the first version based on the first version identifier and the second version identifier.

[0067] In combination with the second aspect, in a possible implementation, after determining that the second version is higher than the first version, the method also includes: the first electronic device sends a second version identifier to a server, and the second version identifier is used by the server to determine whether the second version is the latest version of the first application; the first electronic device receives a first message sent by the server; in response to the first message, the first electronic device determines that the second version is the latest version of the first application.

[0068] In combination with the second aspect, in a possible implementation, before the first electronic device obtains the first update package, the method also includes: the first electronic device receives a first installation package sent by the second electronic device; the first electronic device obtains the first update package, specifically including: the first electronic device obtains the first update package based on the first installation package and the second installation package.

[0069] In combination with the second aspect, in a possible implementation method, before the first electronic device obtains the first update package, the method also includes: the first electronic device obtains the second version identifier; the first electronic device sends the first version identifier and the second version identifier to the server; the first electronic device obtains the first update package, specifically including: the first electronic device receives the first update package sent by the server, and obtains the first update package, where the first update package is obtained by the server based on the first version identifier and the second version identifier.

[0070] In combination with the second aspect, in a possible implementation, the method also includes: when the second installation package of the second version is not the latest version of the installation package of the first application, the first electronic device obtains a first update package and a second update package, the second update package is obtained based on the second installation package and the third installation package of the third version, and the third installation package of the third version is the latest version of the installation package of the first application; the first electronic device sends the first update package and the second update package to the second electronic device through a communication connection, the first update package and the second update package are used by the second electronic device to synthesize the third installation package of the third version based on the first installation package of the first version, and the third installation package of the third version is used by the second electronic device to install the third version of the first application.

[0071] In combination with the second aspect, in a possible implementation method, after the first electronic device obtains the first update package and the second update package, the method also includes: the first electronic device synthesizes a third installation package of a third version based on the second update package and the second installation package; and the first electronic device installs the first application based on the third installation package of the third version.

[0072] In combination with the second aspect, in a possible implementation method, before the first electronic device obtains the second update package, the method also includes: the first electronic device determines that the second version is higher than the first version based on the first version identifier and the second version identifier; the first electronic device sends the second version identifier to the server; the first electronic device obtains the second update package, specifically including: the first electronic device receives the second update package sent by the service, and the second update package is determined by the server based on the second version identifier.

[0073] In combination with the second aspect, in a possible implementation method, before the first electronic device obtains the first update package, the method also includes: the first electronic device receives a first installation package sent by the second electronic device; the first electronic device obtains the first update package, specifically including: the first electronic device obtains the first update package based on the first installation package and the second installation package.

[0074] In combination with the second aspect, in a possible implementation method, before the first electronic device obtains the first update package and the second update package, the method also includes: the first electronic device obtains the second version identifier; the first electronic device sends the first version identifier and the second version identifier to the server; the first electronic device obtains the first update package and the second update package, specifically including: the first electronic device receives the first update package and the second update package sent by the service, the first update package and the second update package are determined by the server based on the first version identifier and the second version identifier.

[0075] In combination with the second aspect, in a possible implementation, the first electronic device sends the first update package to the second electronic device via a communication connection, specifically including: when a first condition is met, the first electronic device sends the first update package to the second electronic device via a communication connection; wherein the first condition includes any one of the following: the first electronic device receives a first user operation, and the first user operation is used to update the first application on the first electronic device and the second electronic device; or, after the first electronic device and the second electronic device establish a communication connection, the first electronic device detects that the first version of the first application installed on the second electronic device is lower than the second version of the first application installed on the first electronic device.

[0076] In combination with the second aspect, in a possible implementation manner, the first version identifier includes an application identifier of the first application and a version identifier of the first application.

[0077] In a third aspect, the present application provides an application update method, the method comprising: a second electronic device sends a first version identifier of a first application to a first electronic device, the first version identifier is sent through a communication connection between the first electronic device and the second electronic device, the first electronic device has a second version of the first application installed, and the second electronic device has a first version of the first application installed; when the second version is higher than the first version, the second electronic device receives a first update package sent by the first electronic device through a communication connection, the first update package is obtained based on a first installation package of the first version and a second installation package of the second version; the second electronic device synthesizes a second installation package of the second version based on the first installation package of the first version;

[0078] The second electronic device installs the third version of the first application based on the second installation package of the second version.

[0079] In combination with the third aspect, in a possible implementation, the second version is the latest version of the first application.

[0080] In combination with the third aspect, in a possible implementation, before the second electronic device receives the first update package sent by the first electronic device through a communication connection, the method also includes: the second electronic device sends the first installation package to the first electronic device, and the first installation package is used by the first electronic device to determine the first update package in combination with the second installation package.

[0081] In combination with the third aspect, in a possible implementation manner, the first update package is determined by the server based on the first version identifier and the second version identifier, and the first version identifier and the second version identifier are sent by the first electronic device to the server.

[0082] In combination with the third aspect, in a possible implementation, the method also includes: when the second installation package of the second version is not the latest version of the installation package of the first application, the second electronic device receives the first update package and the second update package sent by the first electronic device through a communication connection, the second update package is obtained based on the second installation package and the third installation package of the third version, and the third installation package of the third version is the latest version of the installation package of the first application; the second electronic device synthesizes the third installation package of the third version based on the first update package, the second update package and the first installation package of the first version; the second electronic device installs the third version of the first application based on the third installation package of the third version.

[0083] In combination with the third aspect, in a possible implementation manner, the second update package is determined by the server based on the first version identifier and the second version identifier, and the first version identifier and the second version identifier are sent by the first electronic device to the server.

[0084] In combination with the third aspect, in a possible implementation, before the second electronic device receives the first update package sent by the first electronic device through a communication connection, the method also includes: the second electronic device sends the first installation package to the first electronic device, and the first installation package is used by the first electronic device to determine the first update package in combination with the second installation package.

[0085] In combination with the third aspect, in a possible implementation manner, the second update package and the first update package are determined by the server based on the first version identifier and the second version identifier, and the first version identifier and the second version identifier are sent by the first electronic device to the server.

[0086] In combination with the third aspect, in a possible implementation, the second electronic device receives the first update package sent by the first electronic device through a communication connection, specifically including: when the first condition is met, the second electronic device receives the first update package sent by the first electronic device through a communication connection; wherein the first condition includes any one of the following: the second electronic device receives a second user operation, and the second user operation is used to update the first application installed on the second electronic device; or, after the first electronic device and the second electronic device establish a communication connection, the first electronic device detects that the first version of the first application installed on the second electronic device is lower than the second version of the first application installed on the first electronic device.

[0087] In combination with the third aspect, in a possible implementation manner, the first version identifier includes an application identifier of the first application and a version identifier of the first application.

[0088] In a fourth aspect, the present application provides an application update method, the method comprising: a server receives a first version identifier and a second version identifier sent by a first electronic device; the server obtains a first update package and a second update package based on the first version identifier and the second version identifier; when the second version is higher than the first version, the server sends the first update package to the first electronic device, the first update package is used by the first electronic device to send to the second electronic device, the first update package is used by the second electronic device to combine with the first installation package of the first version to obtain a second installation package of the second version, and the second installation package of the second version is used by the second electronic device to install the second version of the first application, wherein a communication connection is established between the first electronic device and the second electronic device, the first version of the first application is installed on the second electronic device, and the second version of the first application is installed on the first electronic device.

[0089] In conjunction with the fourth aspect, in a possible implementation, the second version is the latest version of the first application.

[0090] In combination with the fourth aspect, in a possible implementation, when the second installation package of the second version is not the latest version installation package of the first application, the method also includes: the server obtains a second update package based on the second version identifier; the server sends the first update package and the second update package to the first electronic device, the first update package and the second update package are used by the first electronic device to send to the second electronic device, the first update package and the second update package are used by the second electronic device to combine with the first installation package of the first version to obtain a third installation package of the third version, and the third installation package of the third version is used for the second electronic device to install the third version of the first application, wherein a communication connection is established between the first electronic device and the second electronic device, the first version of the first application is installed on the second electronic device, and the second version of the first application is installed on the first electronic device.

[0091] In conjunction with the fourth aspect, in one possible implementation, the second update package is used by the first electronic device to combine with the second installation package of the second version to obtain a third installation package of the third version, and the third installation package of the third version is used by the first electronic device to install the third version of the first application.

[0092] In conjunction with the fourth aspect, in a possible implementation manner, the first version identifier includes an application identifier of the first application and a version identifier of the first application.

[0093] In a fifth aspect, the present application provides an electronic device, which is a first electronic device, and the first electronic device includes a processor and a memory; the memory is coupled to the processor, and the memory is used to store computer program code, the computer program code includes computer instructions, and the processor calls the computer instructions to execute an application running method provided in any possible implementation of any of the above aspects.

[0094] In a sixth aspect, the present application provides an electronic device, which is a second electronic device, and the second electronic device includes a processor and a memory; the memory is coupled to the processor, and the memory is used to store computer program code, and the computer program code includes computer instructions, and the processor calls the computer instructions to execute an application running method provided in any possible implementation of any of the above aspects.

[0095] In the seventh aspect, the present application provides a server, the server including a processor and a memory; the memory is coupled to the processor, the memory is used to store computer program code, the computer program code includes computer instructions, and the processor calls the computer instructions to execute an application running method provided in any possible implementation of any of the above aspects.

[0096] In an eighth aspect, the present application provides a computer-readable storage medium for storing computer instructions. When the computer instructions are executed on a first electronic device, the first electronic device executes an application running method provided in any possible implementation of any of the above aspects.

[0097] In a ninth aspect, the present application provides a computer-readable storage medium for storing computer instructions. When the computer instructions are executed on a second electronic device, the second electronic device executes an application running method provided in any possible implementation of any of the above aspects.

[0098] In a tenth aspect, the present application provides a computer-readable storage medium for storing computer instructions. When the computer instructions are executed on a server, the server executes an application running method provided in any possible implementation of any of the above aspects.

[0099] In an eleventh aspect, the present application provides a computer program product. When the computer program product is run on a first electronic device, it enables the first electronic device to execute an application running method provided in any possible implementation of any of the above aspects.

[0100] In a twelfth aspect, the present application provides a computer program product. When the computer program product is run on a second electronic device, the second electronic device executes an application running method provided in any possible implementation of any of the above aspects.

[0101] In a thirteenth aspect, the present application provides a computer program product, which, when running on a server, enables the server to execute an application running method provided in any possible implementation of any of the above aspects.

[0102] For the beneficial effects of the second to thirteenth aspects, reference may be made to the description of the beneficial effects in the first aspect, and this application will not repeat them here. BRIEF DESCRIPTION OF THE DRAWINGS

[0103] Figure 1 A schematic diagram showing a method for an electronic device 100 to download an update installation package from an application server 200 is shown;

[0104] Figure 2 A schematic diagram showing a method for an electronic device 100 to download an update function package from an application server 200 is shown;

[0105] Figure 3 A system architecture diagram is shown;

[0106] Figure 4A-4D A UI diagram for downloading a first application is shown;

[0107] Figure 5A-Figure 5B A UI diagram for updating a first application is shown;

[0108] Figure 5C-5E Another UI diagram for updating a first application is shown;

[0109] Figure 6 A schematic diagram showing a server updating a first application;

[0110] Figure 7A-7C A schematic diagram showing an electronic device downloading a first application;

[0111] Figure 8 A schematic diagram showing synchronization of application identifications of installed applications between electronic device 100 and electronic device 300 is shown;

[0112] Figure 9A-9E A schematic diagram showing a collaborative update of a first application by multiple devices;

[0113] Fig.10 A schematic diagram of a method for collaboratively updating a first application by an electronic device 100 and an electronic device 300 provided in the present application;

[0114] Figure 11A-11B Another schematic diagram of multiple devices collaboratively updating a first application is shown;

[0115] Fig.12 A schematic diagram of another method for electronic device 100 and electronic device 300 to collaboratively update a first application provided by the present application;

[0116] Fig.13 A schematic diagram of the structure of an electronic device is shown;

[0117] Fig.14 1 is a software structure block diagram of the electronic device 100 according to an embodiment of the present invention. DETAILED DESCRIPTION

[0118] The technical solutions in the embodiments of the present application will be described clearly and in detail below in conjunction with the accompanying drawings. In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in the text is only a description of the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, "multiple" means two or more than two.

[0119] In the following, the terms "first" and "second" are used for descriptive purposes only and are not to be understood as suggesting or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features, and in the description of the embodiments of the present application, unless otherwise specified, "plurality" means two or more.

[0120] The term "user interface (UI)" in the following embodiments of the present application refers to a medium interface for interaction and information exchange between an application or operating system and a user, which realizes the conversion between the internal form of information and the form acceptable to the user. A common form of user interface is a graphical user interface (GUI), which refers to a user interface related to computer operation displayed in a graphical manner. It can be a visual interface element such as text, icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, widgets, etc. displayed on the display screen of an electronic device.

[0121] The electronic device 100 can receive user operations to download, install and update applications from the application server.

[0122] An application can implement multiple functions, and different functions can be implemented by different function packages. An application installation package can include multiple function packages. The functions of an application may include but are not limited to one or more of the following: login function, payment function, map function, navigation function, networking function, advertising display function, data storage function, image recognition function, smooth connection function, screen projection function, communication function, camera function, multimedia function, device virtualization function, device security function, etc.

[0123] The functions of the application can be updated from time to time. After the function of the application is updated, the installation package of the application will also have a new function package, resulting in the application installation package being updated. The electronic device 100 needs to obtain and install the updated installation package of the application (which can be called an updated installation package) so that the user can experience the new functions of the application.

[0124] Currently, there are two methods for the electronic device 100 to obtain an update installation package of an application.

[0125] Method 1: The electronic device 100 downloads the update installation package from the application server 200 .

[0126] Figure 1 A schematic diagram of a method for an electronic device 100 to download an update installation package from an application server 200 is shown.

[0127] S101. The server 200 stores an update installation package of a first application.

[0128] After the function of the first application is updated, the installation package of the first application will also be updated, and the server 200 will store the updated installation package of the first application.

[0129] S102: The electronic device 100 receives an operation from a user to update a first application.

[0130] After the function of the first application is updated, the electronic device 100 can receive a user operation to download an update installation package of the first application, so that the user can experience the new function of the first application.

[0131] S103 . In response to a user operation, the electronic device 100 sends an identifier of the first application to the server 200 .

[0132] S104. The server 200 obtains an update installation package of the first application based on the identifier of the first application.

[0133] S105 . The server 200 sends the update installation package of the first application to the electronic device 100 .

[0134] In response to the user operation, the electronic device 100 may send the application identifier of the first application to the server 200. The server 200 may obtain the update installation package of the first application based on the application identifier of the first application, and send the update installation package of the first application to the electronic device 100.

[0135] S106. The electronic device 100 installs the first application based on the update installation package.

[0136] After the electronic device 100 obtains the update installation package of the first application, the electronic device 100 can install the first application based on the update installation package of the first application. After the first application is installed, the electronic device 100 can receive a user operation to start and run the first application, and the user can experience the new functions of the first application.

[0137] but, Figure 1 In the method of updating applications on the electronic device shown, the electronic device 100 needs to download the updated installation package of the application completely. Generally, the installation package of the application is relatively large, and the electronic device 100 needs to spend a long time waiting to download the updated installation package of the application, which will also consume the flow of the electronic device 100, and the user experience is not good.

[0138] Method 2: The electronic device 100 downloads the update function package from the application server 200 .

[0139] Figure 2 A schematic diagram of a method for an electronic device 100 to download an update function package from an application server 200 is shown.

[0140] S201. The server 200 stores an updated function package of a first application.

[0141] After the function of the first application is updated, the installation package of the first application is also updated, and the newly added function of the first application can be implemented by the updated function package of the first application. After the function of the first application is updated, the installation package of the first application is also updated to obtain the updated installation package of the first application, and the updated installation package of the first application may include the installation package of the first application and the updated function package of the first application. The updated function package of the first application is stored in the server 200.

[0142] S202: The electronic device 100 receives an operation from a user to update a first application.

[0143] After the function of the first application is updated, the electronic device 100 can receive the user's operation to obtain the update installation package of the first application, so that the user can experience the new function of the first application.

[0144] Since the installation package of the first application has been stored on the electronic device 100 , the electronic device 100 only needs to download the update function package of the first application, so as to reduce the amount of data downloaded by the electronic device 100 .

[0145] S203 . In response to a user operation, the electronic device 100 sends an identifier of the first application to the server 200 .

[0146] S204. The server 200 obtains an updated function package of the first application based on the identifier of the first application.

[0147] S205 . The server 200 sends the updated function package of the first application to the electronic device 100 .

[0148] In response to the user operation, the electronic device 100 may send the application identifier of the first application to the server 200. The server 200 may obtain the updated function package of the first application based on the application identifier of the first application, and send the updated function package of the first application to the electronic device 100.

[0149] S206: The electronic device 100 obtains an updated installation package of the first application based on the installation package of the first application and the update function package.

[0150] S207: Install the first application based on the updated installation package.

[0151] The electronic device 100 locally stores the installation package of the first application. After the electronic device 100 obtains the update function package of the first application, the electronic device 100 can obtain the update installation package of the first application based on the installation package of the first application and the update function package of the first application.

[0152] The electronic device 100 then installs the first application based on the update installation package of the first application. After the first application is installed, the electronic device 100 can receive a user operation to start and run the first application, and the user can experience the new functions of the first application.

[0153] Figure 2 Although the method of updating applications on the electronic device shown in the figure can reduce the amount of data downloaded by the electronic device 100, when the user needs to update applications on multiple electronic devices, the user needs to follow the above steps on each electronic device. Figure 2 The user operation is cumbersome, and each device needs to download the update function package from the server. If the versions of the applications installed on each electronic device are inconsistent, the update function packages downloaded by each application are also different.

[0154] The present application provides an application update method, which can realize multi-device collaborative update of applications on multiple devices, which can not only reduce user operations, but also reduce the amount of data downloaded when the device updates the application.

[0155] Figure 3 A system architecture diagram provided for this application.

[0156] like Figure 3 As shown, the system may include an electronic device 100 , a server 200 , and an electronic device 300 .

[0157] Server 200 may be an application market server, and server 200 may store installation packages of multiple applications, updated function packages after application function updates, and updated installation packages after application function updates. The updated installation packages may include application installation packages and application updated function packages.

[0158] The electronic device 100 and the electronic device 300 establish a communication connection.

[0159] Among them, the electronic device 300 can send the identifier of the application installed on the device to the electronic device 100, so that the electronic device 100 can obtain the application identifier of the same application installed between the electronic device 100 and the electronic device 300 based on the identifier of the application installed on the electronic device 100 and the identifier of the application installed on the electronic device 300. Exemplarily, the same application installed between the electronic device 100 and the electronic device 300 may be the first application.

[0160] In some embodiments, the electronic device 100 may obtain a first installation package of a first version of a first application installed on the electronic device 300. The electronic device 100 may obtain a second installation package of a second version of the first application installed on the electronic device 100, and determine the version sequence between the first version and the second version, for example, the electronic device 100 determines that the latest version is the second version, followed by the first version. Afterwards, the electronic device 100 may send an identifier of the second version to the server 200, and the server 200 may determine whether the second version in the server 200 is the latest version based on the identifier of the second version.

[0161] In the case where the second version is the latest version, the electronic device 100 can determine the first update package based on the second installation package of the second version and the first installation package of the first version, and send the first update package to the electronic device 300. The electronic device 300 can synthesize the second installation package of the second version based on the first update package and the first installation package of the first version, and install the first application based on the second installation package of the second version. In this way, the first application is updated on the electronic device 300.

[0162] In the case where the second version is not the latest version, the server 200 can obtain the third installation package of the third version of the first application, and determine the second update package based on the third installation package of the third version and the second installation package of the second version, and send the second update package to the electronic device 100. The electronic device 100 can determine the first update package based on the second installation package of the second version and the first installation package of the first version, and send the first update package and the second update package to the electronic device 300. The electronic device 300 can synthesize the third installation package of the third version based on the first update package, the second update package and the first installation package of the first version, and install the first application based on the third installation package of the third version. In this way, the first application is updated on the electronic device 300.

[0163] Similarly, the electronic device 300 can also synthesize the third installation package of the third version based on the second update package and the second installation package of the second version, and install the first application based on the third installation package of the third version. In this way, the first application is updated on the electronic device 100.

[0164] In other embodiments, the electronic device 100 may obtain the identifier of the first version of the first application installed on the electronic device 300, and obtain the identifier of the second version of the first application installed on the electronic device 100. The first version and the second version may be the same or different. Afterwards, the electronic device 100 sends the identifier of the first version and the identifier of the second version to the server 200. The server 200 may determine the version sequence between the first version and the second version, for example, the server 200 determines that the latest version is the second version, followed by the first version.

[0165] Afterwards, the server 200 may determine whether the second version in the server 200 is the latest version in the server 200 based on the identifier of the second version.

[0166] In the case where the second version is the latest version in the server 200, the server 200 can obtain the second installation package of the second version and the first installation package of the first version, and determine the first update package based on the second installation package of the second version and the first installation package of the first version. Afterwards, the server 200 sends the first update package to the electronic device 100, and the electronic device 100 can send the first update package to the electronic device 300. The electronic device 300 can synthesize the second installation package of the second version based on the first update package and the first installation package of the first version, and install the first application based on the second installation package of the second version. In this way, the first application is updated on the electronic device 300.

[0167] In the case where the second version is not the latest version in the server 200, the server 200 can obtain the third installation package of the third version of the first application, and determine the first update package based on the second installation package of the second version and the first installation package of the first version, and determine the second update package based on the third installation package of the third version and the second installation package of the second version. The server 200 then sends the first update package and the second update package to the electronic device 100. The electronic device 100 can send the first update package and the second update package to the electronic device 300. The electronic device 300 can synthesize the third installation package of the third version based on the first update package, the second update package and the first installation package of the first version, and install the first application based on the third installation package of the third version. In this way, the first application is updated on the electronic device 300.

[0168] Similarly, the electronic device 100 can synthesize the third installation package of the third version based on the second update package and the second installation package of the second version, and install the first application based on the third installation package of the third version. In this way, the first application is updated on the electronic device 100.

[0169] It should be noted that Figure 2 The system shown is not limited to the electronic device 300, but may also include other electronic devices that establish a communication connection with the electronic device 100, which is not limited in this application.

[0170] Next, a scenario in which the electronic device 100 downloads and updates the first application is introduced.

[0171] Download the first app

[0172] Figure 4A-4D A UI diagram for downloading a first application is shown.

[0173] The electronic device 100 may receive a user operation to download an installation package of the first application from the application store, and install the first application on the electronic device based on the installation package of the first application. After the first application is installed on the electronic device 100, the electronic device 100 may display an application icon of the first application on the desktop.

[0174] Exemplarily, the first application may be a Huawei video application.

[0175] like Figure 4A As shown, Figure 4A The main interface 310 of the electronic device 100 before the Huawei video application is installed is shown. The main interface 310 includes icons of multiple applications, such as an icon of a weather application, an icon of a Huawei store application, an icon of a smart home application, an icon of a sports and health application, an icon of a memo application, an icon of a calendar application, an icon of a life service application, an icon of a camera application, an icon of an address book application, an icon of a phone application, and an icon of a message application, etc. The main interface 310 also shows a battery indicator, a weather indicator, a date indicator, a network signal indicator, a page indicator, etc.

[0176] like Figure 4A As shown, the electronic device 100 can receive an input operation (such as a click) from a user on an icon of the Huawei Store application. In response to the user's input operation, the electronic device 100 can display Figure 4B The user interface 320 shown. The user interface 320 is the main interface of the Huawei Store application. The user interface 320 includes an application search bar 3201 and recommended applications, and the recommended applications may be Huawei music applications, sports health applications, etc. Among them, the electronic device 100 can receive the user's input operation in the search bar 3201 (for example, entering the application keyword in the search bar 3201), and the electronic device 100 will display the application search interface.

[0177] Exemplarily, the electronic device 100 receives the keyword "Huawei Video" entered by the user in the search bar, and then the electronic device 100 can display the download interface or opening interface of Huawei Video. If the application 1 has been installed locally, in response to the keyword "Huawei Video" entered by the user, the electronic device 100 will display the opening interface of the application 1. Among them, the interface may include the icon of Huawei Video, the introduction information of Huawei Video, the control for opening Huawei Video, etc.

[0178] For example, Figure 4C As shown, the electronic device 100 receives the keyword "Huawei Video" entered by the user in the search bar, and then the electronic device 100 can display the download interface of Huawei Video. The download interface of Huawei Video can include the icon of Huawei Video, the introduction information of Huawei Video, the download control of Huawei Video installation package, etc.

[0179] For example, Figure 4C As shown, the electronic device 100 can receive a user input operation (eg, a single click) for a download control of the Huawei video installation package. In response to the user's input operation, the electronic device 100 can download the installation package of the Huawei video application and install the Huawei video application.

[0180] like Figure 4D As shown, after the electronic device 100 has installed the Huawei video application, the electronic device 100 can display the icon 3101 of the Huawei video application in the main interface 310. The electronic device 100 can receive a user input operation (e.g., a single click) on the icon 3101 of the Huawei video application in the main interface 310. In response to the user's input operation, the electronic device 100 can display the content of the Huawei video application, such as playing a video provided by the Huawei video application.

[0181] Update First App

[0182] In the present application, the user can operate on the electronic device 100 to update the first application installed on the electronic device 100. The user can also operate on the electronic device 100 to simultaneously update the same application installed on the electronic device 100 and other electronic devices that establish communication connections with the electronic device 100.

[0183] Figure 5A-Figure 5B A UI diagram for updating a first application is shown.

[0184] Exemplarily, the first application may be a Huawei video application.

[0185] refer to Figure 4A In the description of the embodiment, the electronic device 100 may also receive an input operation of the user for the application icon of the Huawei store, and the electronic device 100 may display Figure 4B The electronic device 100 may receive an input operation of a user in the search bar 3201. For example, if "Huawei Video" is input in the search bar 3201, the electronic device 100 may display Figure 5A User interface 510 is shown.

[0186] User interface 510 and Figure 4C The user interface 320 shown is similar, except that, when the Huawei Video application has been installed on the electronic device 100, the user interface 510 includes an update option, and the user can update the new features of the installed Huawei Video application through the update option.

[0187] For example, Figure 5A As shown, the electronic device 100 may receive an input operation (eg, a click) from a user for an update option in the user interface 510. In response to the input operation from the user, the electronic device 100 may display Figure 5BThe prompt bar 5101 shown. The prompt bar 5101 may include a local update option and a collaborative update option. Among them, the user can update only the Huawei video application on the electronic device 100 through the local update option. The user can also use the collaborative update option to simultaneously update the Huawei video application on the electronic device 100 and other electronic devices that establish a communication connection with the electronic device 100.

[0188] Figure 5C-5E Another UI diagram for updating the first application is shown.

[0189] For example, Figure 5C As shown, the electronic device 100 can receive a user input operation (such as a single click) for the icon 3101 of the Huawei video application in the main interface 310, and in response to the user's input operation, the electronic device 100 can display Figure 5D The prompt bar 5102 shown. The prompt bar 5102 may include a local update option and a collaborative update option. Among them, the user can update only the Huawei video application on the electronic device 100 through the local update option. The user can also use the collaborative update option to simultaneously update the Huawei video application on the electronic device 100 and other electronic devices that establish a communication connection with the electronic device 100.

[0190] It should be noted that the prompt bar 5102 may also include other options, such as an option to uninstall the Huawei video application, an option to share the Huawei video application, etc.

[0191] Optionally, in some embodiments, after the electronic device 100 and the electronic device 300 collaboratively update the first application, the electronic device 100 may display Figure 5E The prompt information 5103 shown is used to prompt the user that the Huawei video application has been updated on both the electronic device 100 and the electronic device 300. Among them, "Lisa's HUA WEIP40" may be the device name of the electronic device 100, and "Lucy's Mate 40" may be the device name of the electronic device 300.

[0192] Next, a detailed description will be given of the server 200 storing the installation package of the first application, the electronic device downloading and installing the first application, and the electronic device updating the installed first application.

[0193] The server 200 stores the installation package of the first application.

[0194] After the developer develops the installation package of the first application, the developer can upload the installation package of the first application to the server 200, so that the electronic device can download the first installation package of the first application from the server 200 and install and use the first application.

[0195] like Figure 6As shown in (a), the first installation package of the first application may include multiple different function packages, and different function packages may implement different functional characteristics. For example, the first installation package may include a first function package and a second function package. Among them, different function packages may implement different functional characteristics. Exemplarily, the first function package may include a basic function package of the first application or an Entry function package of the first application, and the second function package may include a configuration function package of the first application, such as a resource package related to the language configuration of the first application, a resource package related to the central processing unit (CPU) configuration of the first application, etc.

[0196] The versions of different function packages in the first installation package are consistent. For example, the versions of the first function package and the second function package in the first installation package are consistent. For example, the versions of the first function package and the second function package may be the first version, and the version of the first installation package of the first application is also the first version.

[0197] Optionally, when the developer needs to update the function of the first application, for example, to add a new function to the first application, the developer can update the first installation package of the first application to obtain the fourth installation package of the first application. The fourth installation package of the first application can be Figure 6 After the installation package of the first application is updated, the server 200 also needs to update the installation package of the first application. For example, the server 200 can store the fourth installation package of the first application, so that the electronic device can download the fourth installation package of the first application from the server 200 and install and use the new functions of the first application.

[0198] like Figure 6 As shown in (b), the fourth installation package of the first application may include multiple different function packages, and different function packages may implement different functional characteristics. For example, the fourth installation package may include a first function package, a second function package, and a third function package. Among them, different function packages may implement different functional characteristics. Exemplarily, the first function package may include a basic function package of the first application or an Entry function package of the first application, and the second function package may include a configuration function package of the first application, such as a resource package related to the language configuration of the first application, a resource package related to the central processing unit (CPU) configuration of the first application, etc. The third function package may include a Feature function package, such as a resource package that provides login function, payment function, map function, navigation function, networking function, advertising display function, data storage function, image recognition function, connection function, screen projection function, communication function, camera function, multimedia function, device virtualization function, device security function, etc.

[0199] The versions of different function packages in the fourth installation package are consistent. For example, the versions of the first function package, the second function package and the third function package in the fourth installation package are consistent. For example, the versions of the first function package, the second function package and the third function package can be the fourth version, and the version of the fourth installation package of the first application is also the fourth version.

[0200] Optionally, when the developer needs to update the function of the first application, for example, to add a new function to the first application, the developer can update the first installation package of the first application to obtain the second installation package of the first application. The second installation package of the first application can be Figure 6 After the installation package of the first application is updated, the server 200 also needs to update the installation package of the first application. For example, the server 200 can store the second installation package of the first application, so that the electronic device can download the second installation package of the first application from the server 200 and install and use the new functions of the first application.

[0201] like Figure 6 As shown in (c), the second installation package of the first application may include a first function package, a second function package, a third function package and a fourth function package. Among them, different function packages can realize different functional characteristics. The first function package, the second function package and the third function package in the second installation package are the same as the first function package, the second function package and the third function package in the first installation package. The difference is that the second installation package adds a fourth function package compared to the first installation package. The fourth function package may also include a Feature function package, and the fourth function package can be used to implement the function package of the newly added functions of the first application, such as providing login function, payment function, map function, navigation function, networking function, advertising display function, data storage function, image recognition function, connection function, screen projection function, communication function, camera function, multimedia function, device virtualization function, device security function and other related resource packages.

[0202] After the installation package of the first application is updated, the version of the installation package of the first application also needs to be updated to distinguish the new version from the old version of the installation package of the first application. For example, the versions of the first function package, the second function package, the third function package, and the fourth function package in the second installation package can be the second version. The version of the second installation package of the first application is also the second version.

[0203] Optionally, when the developer needs to continue to update the function of the first application, for example, to add a new function to the first application, the developer can update the first installation package of the first application to obtain the third installation package of the first application. The third installation package of the first application can be Figure 6After the installation package of the first application is updated, the server 200 also needs to update the installation package of the first application. For example, the server 200 can store the third installation package of the first application, so that the electronic device can download the third installation package of the first application from the server 200 and install and use the new functions of the first application.

[0204] like Figure 6 As shown in (d), the third installation package of the first application may include a first function package, a second function package, a third function package, a fourth function package and a fifth function package. Among them, different function packages can realize different functional characteristics. The first function package, the second function package, the third function package and the fourth function package in the third installation package are the same as the first function package, the second function package, the third function package and the fourth function package in the second installation package. The difference is that the third installation package adds a fifth function package compared to the second installation package. The fifth function package may also include a Feature function package, and the fifth function package may be used to implement a function package of the newly added functions of the first application, such as providing a login function, a payment function, a map function, a navigation function, a networking function, an advertising display function, a data storage function, an image recognition function, a smooth connection function, a screen projection function, a communication function, a camera function, a multimedia function, a device virtualization function, a device security function and other related resource packages, etc.

[0205] After the installation package of the first application is updated, the version of the installation package of the first application also needs to be updated to distinguish the new version from the old version of the installation package of the first application. For example, the versions of the first function package, the second function package, the third function package, the fourth function package, and the fifth function package in the third installation package may be the third version. The version of the third installation package of the first application is also the third version.

[0206] Figure 6 (a)- Figure 6 In (d), the versions of the installation package of the first application are sequentially the third version, the second version, the fourth version and the first version.

[0207] Optionally, there are many types of electronic devices, and for the same application, different types of electronic devices may use different installation packages. For example, for the Huawei Video application, the installation packages of the Huawei Video application installed on the mobile phone and the watch are different. The installation package of the Huawei Video application installed on the mobile phone cannot be applied to the watch, and the installation package of the Huawei Video application installed on the watch cannot be applied to the mobile phone.

[0208] In order to distinguish whether different types of devices use the same women's bag, when the developer uploads the installation package of the first application to the server 200, the developer can select the device type to which the installation package of the first application is applicable. The server 200 can save the correspondence between the installation package of the first application and the device type to which the installation package is applicable.

[0209] Table 1

[0210]

[0211] Exemplarily, as shown in Figure 1, the correspondence between different installation packages and the device types applicable to the installation packages is stored in the server 200. For example, the device types applicable to the first installation package / second installation package / third installation package / fourth installation package of the first application include but are not limited to any of the following: mobile phones, tablets, and computers. The device types applicable to the fifth installation package of the first application include but are not limited to any of the following: watches.

[0212] Download and install the first application on your electronic device

[0213] refer to Figure 4A-4D In the description of the embodiment, the electronic device can download and install the first application from the server 200. The electronic device 100, the electronic device 300 and the electronic device 400 can download the installation package of the first application from the server 200 and install the first application.

[0214] like Fig. 7A As shown, the electronic device 300 may receive a user operation to download the first application. In response to the user operation, the electronic device 300 may send the application identifier of the first application and the device type of the electronic device 300 to the server 200.

[0215] Exemplarily, the device type of the electronic device 300 may be a tablet. The server 200 may obtain the first installation package of the first application based on the application identifier of the first application and the device type of the electronic device 300, and send the first installation package to the electronic device 300. The electronic device 300 may install the first application based on the first installation package of the first application.

[0216] like Figure 7B As shown, the electronic device 400 may receive a user operation to download the first application. In response to the user operation, the electronic device 400 may send the application identifier of the first application and the device type of the electronic device 400 to the server 200.

[0217] Exemplarily, the device type of the electronic device 400 may be a computer. The server 200 may obtain the fourth installation package of the first application based on the application identifier of the first application and the device type of the electronic device 400, and send the fourth installation package to the electronic device 300. The electronic device 300 may install the first application based on the fourth installation package of the first application.

[0218] like Figure 7CAs shown, the electronic device 100 may receive a user operation to download the first application. In response to the user operation, the electronic device 100 may send the application identifier of the first application and the device type of the electronic device 100 to the server 200.

[0219] Exemplarily, the device type of the electronic device 100 may be a mobile phone. The server 200 may obtain the second installation package of the first application based on the application identifier of the first application and the device type of the electronic device 100, and send the second installation package to the electronic device 100. The electronic device 100 may install the first application based on the second installation package of the first application.

[0220] The electronic device updates the first installed application

[0221] In the present application, electronic devices can collaboratively update the same installed applications, saving user operations and reducing the amount of data required to download application installation packages.

[0222] The collaborative updating of applications between electronic devices includes the following stages: synchronizing application identifiers of installed applications between electronic devices, obtaining update packages by electronic devices, and updating applications by electronic devices based on the update packages.

[0223] First, it is introduced how to synchronize the application IDs of installed applications between electronic devices.

[0224] Figure 8 A schematic diagram showing synchronization of application identifications of installed applications between electronic device 100 and electronic device 300 is shown.

[0225] S801: The electronic device 100 and the electronic device 300 establish an association relationship.

[0226] When the electronic device 100 and the electronic device 300 establish an association relationship, the electronic device 100 and the electronic device 300 may synchronize the identifiers of the applications installed on their respective devices, so that the electronic device 100 and the electronic device 300 may collaboratively update the same installed applications.

[0227] The electronic device 100 and the electronic device 300 may establish an association relationship based on but not limited to any one of the following methods.

[0228] Method 1: The electronic device 100 and the electronic device 300 are logged in with the same user account.

[0229] When the electronic device 100 and the electronic device 300 are logged in with the same user account, it can be understood that the electronic device 100 and the electronic device 300 are multiple electronic devices of the same user, and the multiple electronic devices of the same user are associated by default.

[0230] Method 2: The electronic device 100 and the electronic device 300 have different user accounts, but the two user accounts are associated with each other.

[0231] When electronic device 100 and electronic device 300 are logged in with different user accounts, but the two user accounts have established an association relationship, it can be understood that electronic device 100 and electronic device 300 are multiple electronic devices in a family group, and multiple electronic devices in a family group have established an association relationship by default.

[0232] Method three: the electronic device 100 receives a user operation and actively establishes an association relationship with the electronic device 300.

[0233] Optionally, when the user accounts logged into the electronic device 100 and the electronic device 300 are different, and the two user accounts have not established an association relationship, the electronic device 100 and the electronic device 300 have not established an association relationship. In this case, the electronic device 100 can receive a user operation to actively establish an association relationship with the electronic device 300. For example, the electronic device 100 and the electronic device 300 can negotiate to obtain a trusted platform credential, and establish an association relationship based on the trusted credential. For another example, the electronic device 100 and the electronic device 300 can establish an association relationship by scanning a code. For another example, the electronic device 100 and the electronic device 300 can also establish an association relationship by entering a verification code.

[0234] Not limited to the above-mentioned method, the electronic device 100 and the electronic device 300 may also establish an association relationship based on other methods, which is not limited in this application.

[0235] In some embodiments, it also includes determining that the operating systems installed on the electronic device 100 and the electronic device 300 are the same.

[0236] This step can be performed by the electronic device 100 or the electronic device 300, and this application does not limit this.

[0237] The same operating system installed on the electronic device 100 and the electronic device 300 specifically means that: the operating systems of the electronic device 100 and the electronic device 300 are operating systems of the same manufacturer, for example, the electronic device 100 is an operating system suitable for a mobile phone, and the electronic device 300 is an operating system suitable for a pad; or, the operating systems of the electronic device 100 and the electronic device 300 are the same operating system, for example, both are HarmonyOS operating systems, and the operating systems of the electronic device 100 and the electronic device 300 may be the same version number or different version numbers.

[0238] S802 : The electronic device 300 sends the application identifier of the application installed on the electronic device 300 to the electronic device 100 .

[0239] The electronic device 300 may be installed with one or more applications. The electronic device 300 may obtain the application identifiers of the applications installed on the electronic device 300 and send the application identifiers of the applications installed on the electronic device 300 to the electronic device 100 .

[0240] Table 2

[0241] Application ID of installed applications The application identifier of the first application, the application identifier of the second application, and the application identifier of the third application

[0242] Table 2 shows the application identifiers of the applications installed on the electronic device 300. Exemplarily, the application identifiers of the applications installed on the electronic device 300 may include, but are not limited to: an application identifier of a first application, an application identifier of a second application, and an application identifier of a third application.

[0243] S803: The electronic device 100 obtains the application identifier of the application installed on the electronic device 100.

[0244] The electronic device 100 may be installed with one or more applications, and the electronic device 100 may obtain the application identifiers of the applications installed on the electronic device 100 .

[0245] Table 3

[0246] Application ID of installed applications The application identifier of the first application, the application identifier of the fourth application, and the application identifier of the fifth application

[0247] Table 3 shows the application identifiers of the applications installed on the electronic device 300. Exemplarily, the application identifiers of the applications installed on the electronic device 300 may include, but are not limited to: the application identifier of the first application, the application identifier of the fourth application, and the application identifier of the fifth application.

[0248] S804: The electronic device 100 determines the application identifier of the same application that has been installed (eg, the application identifier of the first application) based on the application identifiers of the applications that have been installed on the electronic device 300 and the application identifiers of the applications that have been installed on the electronic device 100.

[0249] After electronic device 100 obtains the application identifier of the application installed on electronic device 100 and the application identifier of the application installed on electronic device 300, electronic device 100 can determine the application identifier of the same installed application based on the application identifier of the application installed on electronic device 300 and the application identifier of the application installed on electronic device 100.

[0250] Exemplarily, the electronic device 100 may determine that the same application installed on the electronic device 100 and the electronic device 300 may be the first application.

[0251] S805 . The electronic device 100 sends the application identifier of the first application to the electronic device 300 .

[0252] After the electronic device 100 can determine that the same application installed on the electronic device 100 and the electronic device 300 is the first application, the electronic device 100 can send the application identifier of the first application to the electronic device 300, so that the electronic device 300 can obtain the same application installed on the electronic device 100 and the electronic device 300.

[0253] Optionally, in other embodiments, the method steps of determining the same application installed on the electronic device 100 and the electronic device 300 in S803-S805 may also be executed by the electronic device 300, which is not limited in the present application.

[0254] Figure 8 The embodiment is described by taking the electronic device 300 as an example. In other embodiments, if the electronic device 100 establishes an association relationship with multiple devices at the same time, for example, the electronic device 100 also establishes an association relationship with the electronic device 400, then the electronic device 100 and the electronic device 400 may also establish an association relationship according to Figure 8 The method shown in the embodiment determines the same application installed on the electronic device 100 and the electronic device 400, so that the electronic device 100 can subsequently update the same installed application in collaboration with the electronic device 400. Exemplarily, the same application installed on the electronic device 100 and the electronic device 400 can also be the first application.

[0255] Optionally, the number and type of applications installed on the electronic device 100 and the electronic device 300 may change. Figure 8 The embodiments may be executed periodically / irregularly to timely update the same applications installed on the electronic device 100 and the electronic device 300 .

[0256] Next, we will introduce how electronic devices obtain update packages.

[0257] The functions of the application can be updated. After the functions of the application are updated, the installation package of the application will also be updated accordingly. The electronic device can obtain the installation package of the updated application and reinstall the application based on the installation package of the updated application. The user can use the new functions of the application based on the installation package of the updated application.

[0258] In some embodiments, the electronic device can receive installation packages and versions of installation packages sent by other devices, and determine an update package based on the local installation package and the installation packages sent by other devices. The electronic device then sends the update package to other electronic devices, and the other electronic devices can synthesize the latest version of the installation package based on the update package and the local installation packages of other electronic devices.

[0259] Figure 9A-9E A schematic diagram showing a collaborative update of a first application by multiple devices.

[0260] For example, Fig. 9A As shown, the electronic device 300 has a first version of the first application installed and stores a first installation package of the first version, and the electronic device 100 has a second version of the first application installed and stores a first installation package of the second version, and the second version is higher than the first version. In the case where the second version is the latest version of the first application, the electronic device 100 needs to send the first update package to the electronic device 300, and the electronic device 300 can update the first version of the first application to the second version of the first application based on the first update package.

[0261] Specifically, the electronic device 300 may send the first installation package of the first version to the electronic device 100 .

[0262] The electronic device 100 also has the first application installed therein, and stores a second installation package of a second version, where the second version is higher than the first version.

[0263] After the electronic device 100 receives the first installation package of the first version sent by the electronic device 300, the electronic device 100 needs to determine whether the second version is the latest version of the first application. In the case where the second version is the latest version of the first application, it means that the second installation package of the second version installed in the electronic device 100 is the latest version of the installation package of the first application. The electronic device 100 can determine the first update package based on the second installation package of the second version and the first installation package of the first version. The first update package can be a difference package between the second installation package of the second version and the first installation package of the first version. For example, the first update package can include Figure 6 The third function package and the fourth function package shown in (c) .

[0264] After determining the first update package, the electronic device 100 may send the first update package to the electronic device 300. The electronic device 300 may synthesize the second installation package of the second version based on the first installation package of the first version and the first update package. The electronic device 300 may reinstall the first application based on the second installation package of the second version. In this way, the first application is updated on the electronic device 300.

[0265] Fig. 9B A schematic diagram showing the electronic device 300 synthesizing a second installation package of a second version.

[0266] The electronic device 300 stores a compressed first version of the first installation package. The electronic device 300 can decompress the compressed first version of the first installation package to obtain an uncompressed first version of the first installation package.

[0267] After receiving the first update package sent by the electronic device 100, the electronic device 300 may synthesize the uncompressed second installation package of the second version based on the uncompressed first installation package of the first version and the first update package.

[0268] Afterwards, the electronic device 300 compresses the uncompressed second version of the second installation package to obtain a compressed second version of the second installation package.

[0269] Finally, the electronic device 300 may install the first application based on the second installation package of the compressed second version to update the first application.

[0270] For example, Fig. 9C As shown, the electronic device 300 has a first version of the first application installed and stores a first installation package of the first version, and the electronic device 100 has a second version of the first application installed and stores a second installation package of the second version, and the second version is higher than the first version. In the case where the second version is not the latest version of the first application, the electronic device 100 needs to send the first update package and the second update package to the electronic device 300, and the electronic device 300 can update the first version of the first application to the third version of the first application based on the first update package and the second update package.

[0271] Specifically, the electronic device 300 can send the first installation package of the first version to the electronic device 100. After the electronic device 100 receives the first installation package of the first version sent by the electronic device 300, the electronic device 100 needs to determine whether the second version is the latest version of the first application. When the second version is not the latest version of the first application, it means that the second installation package of the second version installed in the electronic device 100 is not the latest version of the installation package. The electronic device 100 needs to send the identifier of the second version to the server 200. The server 200 can obtain the second installation package of the second version based on the identifier of the second version. The server 200 then obtains the third installation package of the third version. The server 200 can obtain the second update package based on the second installation package of the second version and the third installation package of the third version. The second update package can be a difference package between the second installation package of the second version and the third installation package of the third version. For example, the second update package may include Figure 6 The server 200 then sends the second update package to the electronic device 100.

[0272] After the electronic device 100 obtains the second update package, the electronic device 100 can synthesize the third installation package of the third version based on the second installation package of the second version and the second update package. In this way, the electronic device 100 only needs to download the second update package to obtain the third installation package of the third version, thereby reducing the amount of data downloaded by the electronic device 100 when updating the first application on the electronic device 100.

[0273] Fig.9D A schematic diagram showing the electronic device 100 synthesizing a third installation package of a third version.

[0274] The second installation package of the compressed second version is stored on the electronic device 100. The electronic device 100 can decompress the second installation package of the compressed second version to obtain the second installation package of the uncompressed second version.

[0275] After receiving the second update package sent by the server 200 , the electronic device 100 may synthesize the uncompressed third installation package of the third version based on the uncompressed second installation package of the second version and the second update package.

[0276] Afterwards, the electronic device 100 compresses the uncompressed third version of the third installation package to obtain a compressed third version of the third installation package.

[0277] Finally, the electronic device 100 may install the first application based on the third installation package of the compressed third version to update the first application.

[0278] When the electronic device 100 determines that the second version is higher than the first version, the electronic device 100 may determine a first update package based on the second installation package of the second version and the first installation package of the first version. The first update package may be a difference package between the second installation package of the second version and the first installation package of the first version. For example, the first update package may include Figure 6 The electronic device 100 also needs to send the first update package and the second update package to the electronic device 300.

[0279] After receiving the first update package and the second update package, the electronic device 300 can synthesize the third installation package of the third version based on the first update package, the second update package and the first installation package of the first version. In this way, the electronic device 300 only needs to download the first update package and the second update package to obtain the third installation package of the third version, thereby reducing the amount of data downloaded by the electronic device 300 when updating the first application on the electronic device 300.

[0280] Fig.9E A schematic diagram showing the electronic device 300 synthesizing a third installation package of a third version.

[0281] The electronic device 300 stores a compressed first version of the first installation package. The electronic device 300 can decompress the compressed first version of the first installation package to obtain an uncompressed first version of the first installation package.

[0282] After receiving the first update package and the second update package sent by the electronic device 100, the electronic device 300 may synthesize the uncompressed second installation package of the second version based on the uncompressed first installation package of the first version and the first update package.

[0283] Afterwards, the electronic device 300 synthesizes the uncompressed third version of the third installation package based on the uncompressed second version of the second installation package and the second update package.

[0284] Afterwards, the electronic device 300 compresses the uncompressed third version of the third installation package to obtain a compressed third version of the third installation package.

[0285] Finally, the electronic device 300 can install the first application based on the third installation package of the compressed third version to update the first application.

[0286] Fig.10 A schematic diagram of a method for electronic device 100 and electronic device 300 to collaboratively update a first application provided in the present application.

[0287] S1001: The electronic device 100 and the electronic device 300 establish a communication connection.

[0288] The communication connection may be any one of a server connection, a Bluetooth connection, a Wi-Fi connection, etc. The electronic device 100 and the electronic device 300 may also establish a communication connection based on other methods, such as a USB connection, etc., which is not limited in the present application.

[0289] S1002 : The electronic device 100 sends an acquisition message to the electronic device 300 .

[0290] Optionally, the electronic device 100 may be a device whose storage space and / or computing power and / or remaining power of the electronic device 100 are higher than those of the electronic device 300. Then the electronic device 100 may actively send an acquisition message to the electronic device 300 to acquire the installation package of the first application installed on the electronic device 300.

[0291] For example, Figure 8 It can be seen from the embodiment that the same application installed on the electronic device 100 and the electronic device 300 may be the first application.

[0292] In a possible implementation, the acquisition message may carry the application identifier of the first application. In other possible implementations, the application identifier of the first application may also be sent to the electronic device 300 independently of the acquisition message, which is not limited in this application.

[0293] S1003. In response to the acquisition message, the electronic device 300 acquires a first installation package of a first version of the first application.

[0294] After receiving the acquisition message sent by the electronic device 100, the electronic device 300 can acquire the first installation package of the first version on the electronic device 300 based on the application identifier of the first application in response to the acquisition message.

[0295] The first installation package of the first version may be a version of the first application installed on the electronic device 300 .

[0296] Exemplarily, the first installation package of the first version may be Figure 6 The installation package of the first application shown in (a).

[0297] S1004 : The electronic device 300 sends the first installation package of the first version to the electronic device 100 .

[0298] S1005. The electronic device 100 obtains a second installation package of the second version of the first application.

[0299] The second installation package of the second version may be a version of the first application installed on the electronic device 100 .

[0300] Exemplarily, the second installation package of the second version may be Figure 6 The installation package of the first application shown in (c).

[0301] Optionally, S1005 may be executed in any step before, between or after S1001-S1004, and this application does not limit this.

[0302] S1006: The electronic device 100 determines that the latest version is the second version based on the first version and the second version.

[0303] After the electronic device 100 obtains the first installation package of the first version sent by the electronic device 300, the electronic device 100 needs to determine which of the first version and the second version is the latest version.

[0304] In some embodiments, the electronic device 100 can directly determine that the latest version is the second version from the first version and the second version. For example, the electronic device 100 can determine the latest version based on the numerical values ​​of the first version and the second version. The larger the numerical value, the newer the version. The electronic device 100 can determine that the second version is the latest version from the first version and the second version in this way.

[0305] In other embodiments, when the electronic device 100 cannot determine which of the first version and the second version is the latest version, the electronic device 100 may send the identifier of the first version and the identifier of the second version to the server 200. After the server 200 obtains the identifier of the first version and the identifier of the second version, the server 200 may determine the latest version from the first version and the second version. For example, the server 200 may determine that the latest version is the second version, and the server 200 then sends the identifier of the second version to the electronic device 100. The electronic device 100 may determine that the latest version is the second version.

[0306] In a possible implementation, when the electronic device 100 determines that the first version and the second version are the same, that is, the same version of the first application is installed on the electronic device 100 and the electronic device 300. The electronic device 100 also needs to determine whether the first version or the second version is the latest version in the server 200. That is, S1008 is executed.

[0307] In other possible implementations, when the electronic device 100 determines that the first version is different from the second version, for example, the second version is lower than the first version, that is, the electronic device 100 determines that the first version is the latest version, and the version of the first application installed on the electronic device 100 is lower than the version of the first application installed on the electronic device 300. The electronic device 100 also needs to determine whether the first version is the latest version in the server 200.

[0308] In other possible implementations, when the electronic device 100 determines that the first version is different from the second version, for example, the second version is higher than the first version, that is, the electronic device 100 determines that the second version is the latest version, and the version of the first application installed on the electronic device 100 is higher than the version of the first application installed on the electronic device 300. The electronic device 100 also needs to determine whether the second version is the latest version in the server 200. That is, S1008 is executed.

[0309] S1007: The electronic device 100 determines a first update package based on the second installation package of the second version and the first installation package of the first version.

[0310] When the electronic device 100 determines that the second version is different from the first version, for example, the second version is higher than the first version or the second version is lower than the first version, the electronic device 100 can determine a first update package based on the second installation package of the second version and the first installation package of the first version. The first update package can be a difference package between the second installation package of the second version and the first installation package of the first version.

[0311] Exemplarily, the first update package may include Figure 6 The third function package and the fourth function package shown in (c) .

[0312] In other embodiments, when the electronic device 100 determines that the second version is the same as the first version, the electronic device 100 may not execute S1007 but directly execute S1008.

[0313] Optionally, S1001 - S1007 may be performed periodically / irregularly so that the electronic device 100 may determine the difference packages between the installation packages of the same application installed on the electronic device 100 and the electronic device 300 .

[0314] Optionally, S1001-S1007 may be executed when the electronic device 100 is not in use. In this way, it is avoided that S1001-S1007 is executed when the electronic device 100 is in use and occupies the computing resources and memory resources of the electronic device 100.

[0315] Optionally, after executing S1007, S1001-S1017 may not be executed, and S1018 may be executed directly. In this way, the electronic device 300 may update the first application to the same version as the first application on the electronic device 100, and the first application on the electronic device 300 is updated when the electronic device 100 and the electronic device 300 are not connected to the network.

[0316] S1008 . If the first condition is met, the electronic device 100 sends the identifier of the second version to the server 200 .

[0317] When the electronic device 100 determines that the second version is the latest version of the first application installed in the electronic device 100 and the electronic device 300 , the electronic device 100 also needs to determine whether the second version is the latest version of the first application in the server 200 .

[0318] When the first condition is met, the electronic device 100 may send the identifier of the second version to the server 200 .

[0319] In a possible implementation, the first condition may be that the electronic device 100 detects that the user Figure 5B The first condition may also be that the electronic device 100 detects that the user has input the collaborative update option in the prompt bar 5101. Figure 5D The input operation of the collaborative update option in the prompt bar 5102 is shown.

[0320] In other possible implementations, the first condition may be that the electronic device 100 receives an execution message sent by the electronic device 300. The execution message may be that the electronic device 300 monitors the user's Figure 5B The input operation of the collaborative update option in the prompt bar 5101 shown in the figure, or the electronic device 300 detects that the user is Figure 5DAfter the collaborative update option in the prompt bar 5102 is input, it is sent to the electronic device 100.

[0321] In other possible implementations, the first condition may be that when the electronic device 100 and the electronic device 300 establish a communication connection, the electronic device 100 sends the identifier of the second version to the server 200. Or after the electronic device 100 and the electronic device 300 establish a communication connection, when the electronic device 100 automatically detects that the version of the first application installed on the electronic device 300 is lower than the version of the first application installed on the electronic device 100, the electronic device 100 sends the identifier of the second version to the server 200. In this way, without the user's active triggering, the electronic device 100 can automatically and collaboratively update the same application installed on the electronic device 100 and the electronic device 300.

[0322] The first condition may also be other judgment conditions, which is not limited in this application.

[0323] S1009: The server 200 determines whether the second version is the latest version.

[0324] After receiving the identifier of the second version sent by the electronic device 100, the server 200 needs to determine whether the second version is the latest version.

[0325] When the server 200 determines that the second version is not the latest version, S1010 is executed.

[0326] When the server 200 determines that the second version is the latest version, S1017 is executed.

[0327] S1010. The server 200 obtains a third installation package of a third version.

[0328] If the server 200 determines that the second version is not the latest version, the server 200 can obtain the latest version of the first application, that is, the third version, based on the application identifier of the first application, and obtain the third installation package of the third version. The third installation package is the latest version of the first application.

[0329] Optionally, the application identifier of the first application may be sent to the server 200 together with the identifier of the second version in S1008. The application identifier of the first application may be carried in the identifier of the second version and sent to the server 200. The application identifier of the first application may also be sent to the server 200 independently of the identifier of the second version, which is not limited in this application.

[0330] S1011. The server 200 obtains a second installation package of a second version.

[0331] After receiving the identifier of the second version sent by the electronic device 100 , the server 200 may determine that the second version is the latest version of the first application installed in the electronic device 100 and the electronic device 300 .

[0332] The server 200 may obtain the second installation package of the second version based on the identifier of the second version.

[0333] Optionally, S1011 may be executed before, after, or simultaneously with any step after S1018, and this application does not limit this.

[0334] S1012: The server 200 determines a second update package based on the third installation package and the second installation package.

[0335] After the server 200 obtains the third installation package of the third version and the second installation package of the second version, the server 200 may calculate a difference package between the third installation package and the second installation package to obtain a second update package.

[0336] S1013 : The server 200 sends the second update package to the electronic device 100 .

[0337] S1014: The electronic device 100 obtains a third installation package of a third version based on the second installation package and the second update package.

[0338] After receiving the second update package sent by the server 200, the electronic device 100 can synthesize the third installation package of the third version based on the second installation package and the second update package. In this way, the electronic device 100 can obtain the third installation package of the third version without downloading the third installation package of the third version. The amount of data downloaded by the electronic device 100 is reduced.

[0339] For a specific implementation of how the electronic device 100 synthesizes the third installation package of the third version based on the second installation package and the second update package, please refer to Fig.9D The description in the embodiments will not be repeated in this application.

[0340] S1015 : The electronic device 100 sends the first update package and the second update package to the electronic device 300 .

[0341] S1016. The electronic device 300 obtains a third installation package of a third version based on the first update package, the second update package and the first installation package.

[0342] After the electronic device 100 receives the second update package sent by the server 200, the electronic device 100 can send the first update package and the second update package to the electronic device 300. After obtaining the first update package and the second update package, the electronic device 300 can obtain the third installation package of the third version based on the first update package, the second update package and the first installation package. In this way, the electronic device 300 and the electronic device 100 can collaboratively update the first application, and it is also achieved that when the electronic device 300 does not download the third installation package of the third version, the electronic device 300 can obtain the third installation package of the third version, thereby reducing the amount of data downloaded by the electronic device 100.

[0343] For a specific implementation of how the electronic device 300 synthesizes the third installation package of the third version based on the first update package, the second update package and the first installation package, please refer to Fig.9E The description in the embodiments will not be repeated in this application.

[0344] Optionally, S1015-S1016 may be executed before S1014, and S1015-S1016 may also be executed simultaneously with S1014, which is not limited in the present application.

[0345] S1017. The server 200 sends a first message to the electronic device 100.

[0346] S1018 . In response to the first message, the electronic device 100 sends a first update package to the electronic device 300 .

[0347] S1019: The electronic device 300 obtains a second installation package of a second version based on the first update package and the first installation package.

[0348] When the server 200 determines that the second version is the latest version, it means that the second installation package of the second version installed in the electronic device 100 is already the latest version and does not need to be updated. Then the server 200 can send a first message to the electronic device 100, the first message is used to indicate to the electronic device 100 that the second version is already the latest version.

[0349] When the electronic device 100 determines that the second version is different from the first version, for example, the second version is higher than the first version or the second version is lower than the first version, the electronic device 100 can determine the first update package based on the second installation package of the second version and the first installation package of the first version. The first update package can be a difference package between the second installation package of the second version and the first installation package of the first version. The electronic device 100 sends the first update package to the electronic device 300. The electronic device 300 can obtain the second installation package of the second version based on the first update package and the first installation package. In this way, the electronic device 300 only needs to obtain the first update package from the server 200 to obtain the second installation package of the second version, thereby reducing the amount of data downloaded by the electronic device 100.

[0350] When the electronic device 100 determines that the second version is the same as the first version and the second version is the latest version, it means that the first application installed in the electronic device 100 and the electronic device 300 is already the latest version and does not need to be updated, and there is no need to execute S1017-S1019.

[0351] For a specific implementation of how the electronic device 300 obtains the second installation package of the second version based on the first update package and the first installation package, please refer to Fig. 9B The description in the embodiments will not be repeated in this application.

[0352] Optionally, when the electronic device 300 updates the first application on the electronic device 300 after acquiring the first update package and the second update package through the electronic device 100, if the electronic device 100 can also update the first application on the electronic device 100 based on the second update package, before the electronic device 100 updates the first application on the electronic device 100 based on the second update package, in a possible implementation, the electronic device 300 may prompt the user whether to agree to update the first application on the electronic device 100, and then update the first application on the electronic device 100 after the user agrees. In other possible implementations, the electronic device 300 may not prompt, and the electronic device 100 directly updates the first application on the electronic device 100.

[0353] Optionally, in other embodiments, the electronic device 100 may also establish communication connections with more electronic devices at the same time, and the electronic device 100 may simultaneously collaborate with multiple electronic devices to update the first application. For example, the electronic device 100 is simultaneously connected to the electronic device 300 and the electronic device 400, and the electronic devices 100, 300, and 400 all have the first application installed. For example, the electronic device 100 has a second version of the second installed first application installed, the electronic device 300 has a first version of the first installed first application installed, and the electronic device 400 has a fourth version of the fourth installed first application installed. If the second version is higher than the first version and higher than the fourth version, the electronic devices 100, 300, and 400 may update the first application in accordance with the second version. Fig.10 The solution shown in the embodiment updates the first application on the electronic device 100, the electronic device 300 and the electronic device 400, which will not be described in detail in this application.

[0354] In other embodiments, the electronic device may receive the version of the installation package sent by other devices, and send the version of the local installation package and the version of the installation package sent by other devices to the server 200. The server 200 may obtain the latest version of the installation package, the local installation package of the electronic device, and the installation package of other devices, and sort them in order of version. The update packages between the adjacent version installation packages are calculated respectively, and the update packages are sent to the electronic device. The electronic device can synthesize the latest version of the installation package based on the update package to implement the update application.

[0355] Figure 11A-11B Another schematic diagram of multiple devices collaboratively updating a first application is shown.

[0356] For example, Fig.11A As shown, the electronic device 300 has a first version of the first application installed and stores a first installation package of the first version, and the electronic device 100 has a second version of the first application installed and stores a second installation package of the second version, and the second version is higher than the first version. The electronic device 300 can send the first version identifier to the electronic device 100, and the electronic device 100 then sends the first version identifier and the second version identifier to the server 200. In the case where the second version is the latest version of the first application, the server 200 needs to send the first update package to the electronic device 100, and the electronic device 100 then sends the first update package to the electronic device 300, and the electronic device 300 can update the first version of the first application to the second version of the first application based on the first update.

[0357] Specifically, Fig.11A As shown, the electronic device 300 has a first application installed therein and stores a first installation package of a first version. The electronic device 300 may send an identifier of the first version to the electronic device 100 .

[0358] The electronic device 100 also has the first application installed therein, and stores a second installation package of a second version, where the second version is higher than the first version.

[0359] The electronic device 100 may obtain the identifier of the second version, and send the identifier of the first version and the identifier of the second version to the server 200 .

[0360] After the server 200 obtains the identifier of the first version and the identifier of the second version, the server 200 can determine the version sequence of the first version and the second version, for example, the server 200 can confirm that the second version is a newer version than the first version. The server 200 also needs to determine whether the second version is the latest version of the installation package of the first application stored in the server 200.

[0361] In the case where it is determined that the second version is the latest version of the installation package of the first application stored in the server 200, the server 200 can obtain the first installation package of the first version based on the identifier of the first version, and the server 200 can also obtain the second installation package of the second version based on the identifier of the second version. Afterwards, the server 200 can determine the first update package based on the first installation package of the first version and the second installation package of the second version. The first update package can be a difference package between the second installation package of the second version and the first installation package of the first version. For example, the first update package can include Figure 6 The third function package and the fourth function package shown in (c) .

[0362] After determining the first update package, the server 200 may send the first update package to the electronic device 100 .

[0363] The electronic device 100 then sends the first update package to the electronic device 300 .

[0364] After the electronic device 300 obtains the first update package, the electronic device 300 can synthesize the second installation package of the second version based on the first installation package of the first version and the first update package. In this way, the first application is updated on the electronic device 300.

[0365] For how the electronic device 300 synthesizes the second installation package of the second version based on the first installation package of the first version and the first update package, please refer to Fig. 9B The description in the embodiments will not be repeated in this application.

[0366] For example, Fig. 11BAs shown, the electronic device 300 has a first version of the first application installed and stores a first installation package of the first version, and the electronic device 100 has a second version of the first application installed and stores a second installation package of the second version, and the second version is higher than the first version. The electronic device 300 can send the first version identifier to the electronic device 100, and the electronic device 100 then sends the first version identifier and the second version identifier to the server 200. In the case where the second version is not the latest version of the first application, the server 200 needs to send the first update package and the second update package to the electronic device 100, and the electronic device 100 then sends the first update package and the second update package to the electronic device 300, and the electronic device 300 can update the first version of the first application to the third version of the first application based on the first update package and the second update package.

[0367] Specifically, Fig. 11B As shown, the electronic device 300 has a first application installed therein and stores a first installation package of a first version. The electronic device 300 may send an identifier of the first version to the electronic device 100 .

[0368] The electronic device 100 also has the first application installed therein, and stores a second installation package of a second version, where the second version is higher than the first version.

[0369] The electronic device 100 may obtain the identifier of the second version, and send the identifier of the first version and the identifier of the second version to the server 200 .

[0370] After the server 200 obtains the identifier of the first version and the identifier of the second version, the server 200 can determine the version sequence of the first version and the second version, for example, the server 200 can confirm that the second version is a newer version than the first version. The server 200 also needs to determine whether the second version is the latest version of the installation package of the first application stored in the server 200.

[0371] When it is determined that the second version is not the latest version of the installation package of the first application stored in the server 200, the server 200 needs to determine the latest version of the installation package of the first application stored in the server 200. For example, the server 200 may confirm that the latest version of the installation package of the first application stored in the server 200 may be the third version.

[0372] Afterwards, the server 200 may obtain the third installation package of the third version, the second installation package of the second version, and the first installation package of the first version. The server 200 may determine the first update package based on the first installation package of the first version and the second installation package of the second version. The first update package may be a difference package between the second installation package of the second version and the first installation package of the first version. For example, the first update package may include Figure 6The third function package and the fourth function package shown in (c) .

[0373] The server 200 may determine a second update package based on the third installation package of the third version and the second installation package of the second version. The second update package may be a difference package between the third installation package of the third version and the second installation package of the second version. For example, the second update package may include Figure 6 The fifth functional package shown in (d).

[0374] After determining the first update package and the second update package, the server 200 may send the first update package and the second update package to the electronic device 100 .

[0375] After the electronic device 100 obtains the first update package and the second update package, the electronic device 100 can synthesize the third installation package of the third version based on the second installation package of the second version and the second update package. In this way, the electronic device 100 only needs to download the second update package to obtain the third installation package of the third version, thereby reducing the amount of data downloaded by the electronic device 100 when updating the first application on the electronic device 100.

[0376] For how the electronic device 100 synthesizes the third installation package of the third version based on the second installation package of the second version and the second update package, please refer to Fig.9D The description in the embodiments will not be repeated in this application.

[0377] The electronic device 100 also needs to send the first update package and the second update package to the electronic device 300. After receiving the first update package and the second update package, the electronic device 300 can synthesize the third installation package of the third version based on the first update package, the second update package and the first installation package of the first version. In this way, the electronic device 300 only needs to download the first update package and the second update package to obtain the third installation package of the third version, thereby reducing the amount of data downloaded by the electronic device 300 when updating the first application on the electronic device 300.

[0378] For how the electronic device 300 synthesizes the third installation package of the third version based on the first update package, the second update package and the first installation package of the first version, please refer to Fig.9E The description in the embodiments will not be repeated in this application.

[0379] Fig.12 A schematic diagram of another method for electronic device 100 and electronic device 300 to collaboratively update a first application provided in the present application.

[0380] S1201: The electronic device 100 and the electronic device 300 establish a communication connection.

[0381] The communication connection may be any one of a server connection, a Bluetooth connection, a Wi-Fi connection, etc. The electronic device 100 and the electronic device 300 may also establish a communication connection based on other methods, such as a USB connection, etc., which is not limited in the present application.

[0382] S1202 : The electronic device 100 sends an acquisition message to the electronic device 300 .

[0383] Optionally, the electronic device 100 may be a device whose storage space, computing power, and / or remaining power of the electronic device 100 are higher than those of the electronic device 300. Then the electronic device 100 may actively send an acquisition message to the electronic device 300 to acquire the version of the installation package of the first application installed on the electronic device 300.

[0384] For example, Figure 8 It can be seen from the embodiment that the same application installed on the electronic device 100 and the electronic device 300 may be the first application.

[0385] In a possible implementation, the acquisition message may carry the application identifier of the first application. In other possible implementations, the application identifier of the first application may also be sent to the electronic device 300 independently of the acquisition message, which is not limited in this application.

[0386] S1203: In response to the acquisition message, the electronic device 300 acquires the identifier of the first version of the first installation package of the first application.

[0387] In response to the acquisition message, the electronic device 300 may acquire the version of the first application installed on the electronic device 300 .

[0388] Exemplarily, the version of the first application installed on the electronic device 300 may be a first version, and the electronic device 300 may obtain an identifier of the first version.

[0389] For example, the first installation package of the first version can be Figure 6 The installation package of the first application shown in (a).

[0390] S1204 : The electronic device 300 sends the identifier of the first version to the electronic device 100 .

[0391] S1205. The electronic device 100 obtains an identifier of a second version of the second installation package of the first application.

[0392] The second installation package of the second version may be a version of the first application installed on the electronic device 100 .

[0393] Exemplarily, the second installation package of the second version may be Figure 6 The installation package of the first application shown in (c).

[0394] The electronic device 100 may obtain the second version of the first application installed on the electronic device 100 .

[0395] Optionally, S1205 may be executed in any step before, between or after S1201-S1204, and this application does not limit this.

[0396] Optionally, S1201 - S1205 may be performed periodically / irregularly so that the electronic device 100 may obtain versions of the same application installed on the electronic device 100 and the electronic device 300 .

[0397] Optional S1201-S1205 may be executed when the electronic device 100 is not in use. In this way, it is avoided that S1201-S1205 is executed when the electronic device 100 is in use and occupies the computing resources and memory resources of the electronic device 100.

[0398] S1206: If the first condition is met, the electronic device 100 sends the identifier of the first version and the identifier of the second version to the server 200.

[0399] When the first condition is met, that is, when the first application installed on the electronic device 100 and the electronic device 300 needs to be updated, the electronic device 100 can send the first version identifier and the second version identifier to the server 200, so as to obtain an update package for updating the first application installed on the electronic device 100 and the electronic device 300.

[0400] In a possible implementation, the first condition may be that the electronic device 100 detects that the user Figure 5B The first condition may also be that the electronic device 100 detects that the user has input the collaborative update option in the prompt bar 5101. Figure 5D The input operation of the collaborative update option in the prompt bar 5102 is shown.

[0401] In other possible implementations, the first condition may be that the electronic device 100 receives an execution message sent by the electronic device 300. The execution message may be that the electronic device 300 monitors the user's Figure 5B The input operation of the collaborative update option in the prompt bar 5101 shown in the figure, or the electronic device 300 detects that the user is Figure 5D After the collaborative update option in the prompt bar 5102 is input, it is sent to the electronic device 100.

[0402] In other possible implementations, the first condition may be that the electronic device 100 is not in use. In this way, the electronic device 100 may automatically and collaboratively update the same application installed on the electronic device 100 and the electronic device 300 without the need for active triggering by the user.

[0403] The first condition may also be other judgment conditions, which is not limited in this application.

[0404] S1207: The server 200 determines that the latest version is the second version based on the first version and the second version.

[0405] After receiving the identifiers of the first version and the second version sent by the electronic device 100, the server 200 can determine the version sequence of the first version and the second version. For example, the server 200 can confirm that the second version is a newer version than the first version.

[0406] S1208. The server 200 determines whether the second version is the latest version.

[0407] After the server 200 confirms that the second version is a newer version than the first version, the server 200 needs to determine whether the second version is the latest version.

[0408] When the server 200 determines that the second version is not the latest version, S1209 is executed.

[0409] When the server 200 determines that the second version is the latest version, S1216 is executed.

[0410] S1209. The server 200 obtains the third installation package of the third version, the second installation package of the second version, and the first installation package of the first version.

[0411] When the server 200 determines that the second version is not the latest version of the first application, the server 200 may obtain the third version of the first application, which may be the latest version of the installation package of the first application stored in the server 200 .

[0412] After determining that the latest version of the first application is the third version, server 200 can obtain the third installation package of the third version based on the identifier of the third version, obtain the second installation package of the second version based on the identifier of the second version, and then obtain the first installation package of the first version based on the identifier of the first version.

[0413] S1210: The server 200 determines a first update package based on the second installation package of the second version and the first installation package of the first version.

[0414] S1211. The server 200 determines a second update package based on the third installation package of the third version and the second installation package of the second version.

[0415] After the server 200 obtains the third installation package of the third version, the second installation package of the second version, and the first installation package of the first version, the server 200 confirms that the order of the three versions is the third version, the second version, and the first version.

[0416] Afterwards, the server 200 can calculate the update packages between the installation packages of two adjacent versions. For example, the server 200 can determine the first update package based on the second installation package of the second version and the first installation package of the first version, and determine the second update package based on the third installation package of the third version and the second installation package of the second version. In this way, the data volume of the update package sent by the server 200 to the electronic device 100 is minimal.

[0417] S1212 : The server 200 sends the first update package and the second update package to the electronic device 100 .

[0418] S1213: The electronic device 100 obtains a third installation package of a third version based on the second installation package and the second update package.

[0419] After receiving the second update package sent by the server 200, the electronic device 100 can synthesize the third installation package of the third version based on the second installation package and the second update package. In this way, the electronic device 100 can obtain the third installation package of the third version without downloading the third installation package of the third version. The amount of data downloaded by the electronic device 100 is reduced.

[0420] For a specific implementation of how the electronic device 100 synthesizes the third installation package of the third version based on the second installation package and the second update package, please refer to Fig.9D The description in the embodiments will not be repeated in this application.

[0421] S1214 : The electronic device 100 sends the first update package and the second update package to the electronic device 300 .

[0422] S1215. The electronic device 300 obtains a third installation package of a third version based on the first update package, the second update package and the first installation package.

[0423] After the electronic device 100 receives the first update package and the second update package sent by the server 200, the electronic device 100 can send the first update package and the second update package to the electronic device 300. After obtaining the first update package and the second update package, the electronic device 300 can obtain the third installation package of the third version based on the first update package, the second update package and the first installation package. In this way, the electronic device 300 and the electronic device 100 can collaboratively update the first application, and it is also achieved that when the electronic device 300 does not download the third installation package of the third version, the electronic device 300 can obtain the third installation package of the third version, thereby reducing the amount of data downloaded by the electronic device 100.

[0424] For a specific implementation of how the electronic device 300 synthesizes the third installation package of the third version based on the first update package, the second update package and the first installation package, please refer to Fig.9E The description in the embodiments will not be repeated in this application.

[0425] Optionally, S1214-S1215 may be executed before S1213, and S1214-S1215 may also be executed simultaneously with S1213, which is not limited in this application.

[0426] S1216. The server 200 obtains the second installation package of the second version and the first installation package of the first version.

[0427] S1217: The server 200 determines a first update package based on the second installation package of the second version and the first installation package of the first version.

[0428] When the server 200 determines that the second version is the latest version of the installation package of the first application stored in the server 200, it means that the second installation package of the second version installed in the electronic device 100 is the latest version and does not need to be updated. The server 200 can obtain the second installation package of the second version based on the identifier of the second version, and obtain the first installation package of the first version based on the identifier of the first version.

[0429] Afterwards, the server 200 may determine a first update package based on the second installation package of the second version and the first installation package of the first version. The first update package may be a difference package between the second installation package of the second version and the first installation package of the first version.

[0430] Exemplarily, the first update package may include Figure 6 The third function package and the fourth function package shown in (c) .

[0431] S1218 . The server 200 sends the first update package to the electronic device 100 .

[0432] S1219 . The electronic device 100 sends the first update package to the electronic device 300 .

[0433] S1220: The electronic device 300 obtains a second installation package of a second version based on the first update package and the first installation package.

[0434] The server 200 sends the first update package to the electronic device 100, and the electronic device 100 sends the first update package to the electronic device 300. The electronic device 300 can obtain the second installation package of the second version based on the first update package and the first installation package. In this way, the electronic device 300 only needs to obtain the first update package from the server 200 to obtain the second installation package of the second version, thereby reducing the amount of data downloaded by the electronic device 100.

[0435] For a specific implementation of how the electronic device 300 obtains the second installation package of the second version based on the first update package and the first installation package, please refer to Fig. 9B The description in the embodiments will not be repeated in this application.

[0436] Optionally, when the electronic device 300 updates the first application on the electronic device 300 after acquiring the first update package and the second update package through the electronic device 100, if the electronic device 100 can also update the first application on the electronic device 100 based on the second update package, before the electronic device 100 updates the first application on the electronic device 100 based on the second update package, in a possible implementation, the electronic device 300 may prompt the user whether to agree to update the first application on the electronic device 100, and then update the first application on the electronic device 100 after the user agrees. In other possible implementations, the electronic device 300 may not prompt, and the electronic device 100 directly updates the first application on the electronic device 100.

[0437] Optionally, in other embodiments, the electronic device 100 may also establish communication connections with more electronic devices at the same time, and the electronic device 100 may simultaneously collaborate with multiple electronic devices to update the first application. For example, the electronic device 100 is simultaneously connected to the electronic device 300 and the electronic device 400, and the electronic devices 100, 300, and 400 all have the first application installed. For example, the electronic device 100 has a second version of the second installed first application installed, the electronic device 300 has a first version of the first installed first application installed, and the electronic device 400 has a fourth version of the fourth installed first application installed. If the second version is higher than the first version and higher than the fourth version, the electronic devices 100, 300, and 400 may update the first application in accordance with the second version. Fig.12 The solution shown in the embodiment updates the first application on the electronic device 100, the electronic device 300 and the electronic device 400, which will not be described in detail in this application.

[0438] refer to Fig.13 , Fig.13 A schematic structural diagram of an electronic device is shown.

[0439] The electronic device 100 may be a mobile phone, a tablet computer, a desktop computer, a laptop computer, a handheld computer, a notebook computer, an ultra-mobile personal computer (UMPC), a netbook, a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) device, a virtual reality (VR) device, an artificial intelligence (AI) device, a wearable device, an in-vehicle device, a smart home device and / or a smart city device. The embodiments of the present application do not impose any special restrictions on the specific type of the electronic device.

[0440] The electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.

[0441] It is to be understood that the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the electronic device 100. In other embodiments of the present application, the electronic device 100 may include more or fewer components than shown in the figure, or combine some components, or separate some components, or arrange the components differently. The components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.

[0442] The processor 110 may include one or more processing units, for example, the processor 110 may include an application processor (AP), a modem processor, a graphics processor (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.

[0443] The controller can generate operation control signals according to the instruction operation code and timing signal to complete the control of instruction fetching and execution.

[0444] The processor 110 may also be provided with a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. The memory may store instructions or data that the processor 110 has just used or cyclically used. If the processor 110 needs to use the instruction or data again, it may be directly called from the memory. This avoids repeated access, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.

[0445] In some embodiments, the processor 110 may include one or more interfaces. The interface may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.

[0446] The I2C interface is a bidirectional synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL). In some embodiments, the processor 110 may include multiple groups of I2C buses. The processor 110 may be coupled to the touch sensor 180K, the charger, the flash, the camera 193, etc. through different I2C bus interfaces. For example: the processor 110 may be coupled to the touch sensor 180K through the I2C interface, so that the processor 110 communicates with the touch sensor 180K through the I2C bus interface, thereby realizing the touch function of the electronic device 100.

[0447] The I2S interface can be used for audio communication. In some embodiments, the processor 110 can include multiple I2S buses. The processor 110 can be coupled to the audio module 170 via the I2S bus to achieve communication between the processor 110 and the audio module 170. In some embodiments, the audio module 170 can transmit an audio signal to the wireless communication module 160 via the I2S interface to achieve the function of answering a call through a Bluetooth headset.

[0448] The PCM interface can also be used for audio communication, sampling, quantizing and encoding analog signals. In some embodiments, the audio module 170 and the wireless communication module 160 can be coupled via a PCM bus interface. In some embodiments, the audio module 170 can also transmit audio signals to the wireless communication module 160 via the PCM interface to realize the function of answering calls via a Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.

[0449] The UART interface is a universal serial data bus for asynchronous communication. The bus can be a bidirectional communication bus. It converts the data to be transmitted between serial communication and parallel communication. In some embodiments, the UART interface is generally used to connect the processor 110 and the wireless communication module 160. For example, the processor 110 communicates with the Bluetooth module in the wireless communication module 160 through the UART interface to implement the Bluetooth function. In some embodiments, the audio module 170 can transmit an audio signal to the wireless communication module 160 through the UART interface to implement the function of playing music through a Bluetooth headset.

[0450] The MIPI interface can be used to connect the processor 110 with peripheral devices such as the display screen 194 and the camera 193. The MIPI interface includes a camera serial interface (CSI), a display serial interface (DSI), etc. In some embodiments, the processor 110 and the camera 193 communicate via the CSI interface to implement the shooting function of the electronic device 100. The processor 110 and the display screen 194 communicate via the DSI interface to implement the display function of the electronic device 100.

[0451] The GPIO interface can be configured by software. The GPIO interface can be configured as a control signal or as a data signal. In some embodiments, the GPIO interface can be used to connect the processor 110 with the camera 193, the display 194, the wireless communication module 160, the audio module 170, the sensor module 180, etc. The GPIO interface can also be configured as an I2C interface, an I2S interface, a UART interface, a MIPI interface, etc.

[0452] The USB interface 130 is an interface that complies with the USB standard specification, and specifically can be a Mini USB interface, a Micro USB interface, a USB Type C interface, etc. The USB interface 130 can be used to connect a charger to charge the electronic device 100, and can also be used to transfer data between the electronic device 100 and a peripheral device. It can also be used to connect headphones to play audio through the headphones. The interface can also be used to connect other electronic devices, such as AR devices, etc.

[0453] It is understandable that the interface connection relationship between the modules illustrated in the embodiment of the present invention is only a schematic illustration and does not constitute a structural limitation on the electronic device 100. In other embodiments of the present application, the electronic device 100 may also adopt different interface connection methods in the above embodiments, or a combination of multiple interface connection methods.

[0454] The charging management module 140 is used to receive charging input from a charger. The charger may be a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 may receive charging input from a wired charger through the USB interface 130. In some wireless charging embodiments, the charging management module 140 may receive wireless charging input through a wireless charging coil of the electronic device 100. While the charging management module 140 is charging the battery 142, it may also power the electronic device through the power management module 141.

[0455] The power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140, and supplies power to the processor 110, the internal memory 121, the display screen 194, the camera 193, and the wireless communication module 160. The power management module 141 can also be used to monitor parameters such as battery capacity, battery cycle number, battery health status (leakage, impedance), etc. In some other embodiments, the power management module 141 can also be set in the processor 110. In other embodiments, the power management module 141 and the charging management module 140 can also be set in the same device.

[0456] The wireless communication function of the electronic device 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.

[0457] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in electronic device 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve the utilization of antennas. For example, antenna 1 can be reused as a diversity antenna for a wireless local area network. In some other embodiments, the antenna can be used in combination with a tuning switch.

[0458] The mobile communication module 150 can provide solutions for wireless communications including 2G / 3G / 4G / 5G, etc., applied to the electronic device 100. The mobile communication module 150 may include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), etc. The mobile communication module 150 can receive electromagnetic waves from the antenna 1, and filter, amplify, and process the received electromagnetic waves, and transmit them to the modulation and demodulation processor for demodulation. The mobile communication module 150 can also amplify the signal modulated by the modulation and demodulation processor, and convert it into electromagnetic waves for radiation through the antenna 1. In some embodiments, at least some of the functional modules of the mobile communication module 150 can be set in the processor 110. In some embodiments, at least some of the functional modules of the mobile communication module 150 can be set in the same device as at least some of the modules of the processor 110.

[0459] The modem processor may include a modulator and a demodulator. Among them, the modulator is used to modulate the low-frequency baseband signal to be sent into a medium-high frequency signal. The demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing. After the low-frequency baseband signal is processed by the baseband processor, it is passed to the application processor. The application processor outputs a sound signal through an audio device (not limited to a speaker 170A, a receiver 170B, etc.), or displays an image or video through a display screen 194. In some embodiments, the modem processor may be an independent device. In other embodiments, the modem processor may be independent of the processor 110 and be set in the same device as the mobile communication module 150 or other functional modules.

[0460] The wireless communication module 160 can provide wireless communication solutions including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR), etc., which are applied to the electronic device 100. The wireless communication module 160 can be one or more devices integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via the antenna 2, modulates the frequency of the electromagnetic wave signal and performs filtering, and sends the processed signal to the processor 110. The wireless communication module 160 can also receive the signal to be sent from the processor 110, modulate the frequency of it, amplify it, and convert it into electromagnetic waves for radiation through the antenna 2.

[0461] In some embodiments, the antenna 1 of the electronic device 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the electronic device 100 can communicate with the network and other devices through wireless communication technology. The wireless communication technology may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), wideband code division multiple access (WCDMA), time-division code division multiple access (TD-CDMA), long term evolution (LTE), BT, GNSS, WLAN, NFC, FM, and / or IR technology. The GNSS may include a global positioning system (GPS), a global navigation satellite system (GLONASS), a Beidou navigation satellite system (BDS), a quasi-zenith satellite system (QZSS) and / or a satellite based augmentation system (SBAS).

[0462] The electronic device 100 implements the display function through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, which connects the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 110 may include one or more GPUs that execute program instructions to generate or change display information.

[0463] The display screen 194 is used to display images, videos, etc. The display screen 194 includes a display panel. The display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode or an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), Miniled, MicroLed, Micro-oLed, a quantum dot light-emitting diode (QLED), etc. In some embodiments, the electronic device 100 may include 1 or N display screens 194, where N is a positive integer greater than 1.

[0464] The electronic device 100 can realize the shooting function through ISP, camera 193, video codec, GPU, display screen 194 and application processor.

[0465] The ISP is used to process the data fed back by the camera 193. For example, when taking a photo, the shutter is opened, and the light is transmitted to the camera photosensitive element through the lens. The light signal is converted into an electrical signal, and the camera photosensitive element transmits the electrical signal to the ISP for processing and converts it into an image visible to the naked eye. The ISP can also perform algorithm optimization on the noise and brightness of the image. The ISP can also optimize the exposure, color temperature and other parameters of the shooting scene. In some embodiments, the ISP can be set in the camera 193.

[0466] The camera 193 is used to capture still images or videos. The object generates an optical image through the lens and projects it onto the photosensitive element. The photosensitive element can be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the optical signal into an electrical signal, and then passes the electrical signal to the ISP to be converted into a digital image signal. The ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in a standard RGB, YUV or other format. In some embodiments, the electronic device 100 may include 1 or N cameras 193, where N is a positive integer greater than 1.

[0467] The digital signal processor is used to process digital signals, and can process not only digital image signals but also other digital signals. For example, when the electronic device 100 is selecting a frequency point, the digital signal processor is used to perform Fourier transform on the frequency point energy.

[0468] Video codecs are used to compress or decompress digital videos. The electronic device 100 may support one or more video codecs. Thus, the electronic device 100 may play or record videos in a variety of coding formats, such as Moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, MPEG4, etc.

[0469] NPU is a neural network (NN) computing processor. By drawing on the structure of biological neural networks, such as the transmission mode between neurons in the human brain, it can quickly process input information and can also continuously self-learn. Through NPU, applications such as intelligent cognition of electronic device 100 can be realized, such as image recognition, face recognition, voice recognition, text understanding, etc.

[0470] The internal memory 121 may include one or more random access memories (RAM) and one or more non-volatile memories (NVM).

[0471] Random access memory may include static random-access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM, for example, the fifth generation DDR SDRAM is generally referred to as DDR5 SDRAM), etc.; non-volatile memory may include disk storage devices and flash memory.

[0472] Flash memory can be divided into NOR FLASH, NAND FLASH, 3D NAND FLASH, etc. according to the operating principle; single-level cell (SLC), multi-level cell (MLC), triple-level cell (TLC), quad-level cell (QLC), etc. according to the storage unit potential level; universal flash storage (UFS), embedded multi media card (eMMC), etc. according to the storage specification.

[0473] The random access memory can be directly read and written by the processor 110, and can be used to store executable programs (such as machine instructions) of the operating system or other running programs, and can also be used to store user and application data.

[0474] The non-volatile memory may also store executable programs and user and application data, etc., and may be loaded into the random access memory in advance for direct reading and writing by the processor 110 .

[0475] The external memory interface 120 can be used to connect to an external non-volatile memory to expand the storage capacity of the electronic device 100. The external non-volatile memory communicates with the processor 110 through the external memory interface 120 to implement a data storage function. For example, files such as music and videos are stored in the external non-volatile memory.

[0476] The electronic device 100 can implement audio functions such as music playing and recording through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the headphone jack 170D, and the application processor.

[0477] The audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signals. The audio module 170 can also be used to encode and decode audio signals. In some embodiments, the audio module 170 can be arranged in the processor 110, or some functional modules of the audio module 170 can be arranged in the processor 110.

[0478] The speaker 170A, also called a "speaker", is used to convert an audio electrical signal into a sound signal. The electronic device 100 can listen to music or listen to a hands-free call through the speaker 170A.

[0479] The receiver 170B, also called a "earpiece", is used to convert audio electrical signals into sound signals. When the electronic device 100 receives a call or voice message, the voice can be received by placing the receiver 170B close to the human ear.

[0480] Microphone 170C, also called "microphone" or "microphone", is used to convert sound signals into electrical signals. When making a call or sending a voice message, the user can speak by putting their mouth close to microphone 170C to input the sound signal into microphone 170C. The electronic device 100 can be provided with at least one microphone 170C. In other embodiments, the electronic device 100 can be provided with two microphones 170C, which can not only collect sound signals but also realize noise reduction function. In other embodiments, the electronic device 100 can also be provided with three, four or more microphones 170C to collect sound signals, reduce noise, identify the sound source, realize directional recording function, etc.

[0481] The earphone interface 170D is used to connect a wired earphone and can be a USB interface 130 or a 3.5 mm open mobile terminal platform (OMTP) standard interface or a cellular telecommunications industry association of the USA (CTIA) standard interface.

[0482] The pressure sensor 180A is used to sense the pressure signal and can convert the pressure signal into an electrical signal. In some embodiments, the pressure sensor 180A can be set on the display screen 194. There are many types of pressure sensors 180A, such as resistive pressure sensors, inductive pressure sensors, capacitive pressure sensors, etc. The capacitive pressure sensor can be a parallel plate including at least two conductive materials. When a force acts on the pressure sensor 180A, the capacitance between the electrodes changes. The electronic device 100 determines the intensity of the pressure according to the change in capacitance. When a touch operation acts on the display screen 194, the electronic device 100 detects the touch operation intensity according to the pressure sensor 180A. The electronic device 100 can also calculate the touch position according to the detection signal of the pressure sensor 180A. In some embodiments, touch operations acting on the same touch position but with different touch operation intensities can correspond to different operation instructions. For example: when a touch operation with a touch operation intensity less than the first pressure threshold acts on the short message application icon, an instruction to view the short message is executed. When a touch operation with a touch operation intensity greater than or equal to the first pressure threshold acts on the short message application icon, an instruction to create a new short message is executed.

[0483] The gyro sensor 180B can be used to determine the motion posture of the electronic device 100. In some embodiments, the angular velocity of the electronic device 100 around three axes (e.g., x, y, and z axes) can be determined by the gyro sensor 180B. The gyro sensor 180B can be used for anti-shake shooting. For example, when the shutter is pressed, the gyro sensor 180B detects the angle of the electronic device 100 shaking, calculates the distance that the lens module needs to compensate based on the angle, and allows the lens to offset the shaking of the electronic device 100 through reverse movement to achieve anti-shake. The gyro sensor 180B can also be used for navigation and somatosensory game scenes.

[0484] The air pressure sensor 180C is used to measure air pressure. In some embodiments, the electronic device 100 calculates the altitude through the air pressure value measured by the air pressure sensor 180C to assist positioning and navigation.

[0485] The magnetic sensor 180D includes a Hall sensor. The electronic device 100 can use the magnetic sensor 180D to detect the opening and closing of the flip leather case. In some embodiments, when the electronic device 100 is a flip phone, the electronic device 100 can detect the opening and closing of the flip cover according to the magnetic sensor 180D. Then, according to the detected opening and closing state of the leather case or the opening and closing state of the flip cover, the flip cover can be automatically unlocked.

[0486] The acceleration sensor 180E can detect the magnitude of the acceleration of the electronic device 100 in all directions (generally three axes). When the electronic device 100 is stationary, the magnitude and direction of gravity can be detected. It can also be used to identify the posture of the electronic device and is applied to applications such as horizontal and vertical screen switching and pedometers.

[0487] The distance sensor 180F is used to measure the distance. The electronic device 100 can measure the distance by infrared or laser. In some embodiments, when shooting a scene, the electronic device 100 can use the distance sensor 180F to measure the distance to achieve fast focusing.

[0488] The proximity light sensor 180G may include, for example, a light emitting diode (LED) and a light detector, such as a photodiode. The light emitting diode may be an infrared light emitting diode. The electronic device 100 emits infrared light outward through the light emitting diode. The electronic device 100 uses a photodiode to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it can be determined that there is an object near the electronic device 100. When insufficient reflected light is detected, the electronic device 100 can determine that there is no object near the electronic device 100. The electronic device 100 can use the proximity light sensor 180G to detect that the user holds the electronic device 100 close to the ear to talk, so as to automatically turn off the screen to save power. The proximity light sensor 180G can also be used in leather case mode and pocket mode to automatically unlock and lock the screen.

[0489] The ambient light sensor 180L is used to sense the ambient light brightness. The electronic device 100 can adaptively adjust the brightness of the display screen 194 according to the perceived ambient light brightness. The ambient light sensor 180L can also be used to automatically adjust the white balance when taking pictures. The ambient light sensor 180L can also cooperate with the proximity light sensor 180G to detect whether the electronic device 100 is in a pocket to prevent accidental touches.

[0490] The fingerprint sensor 180H is used to collect fingerprints. The electronic device 100 can use the collected fingerprint characteristics to implement fingerprint unlocking, access application locks, fingerprint photography, fingerprint call answering, etc.

[0491] The temperature sensor 180J is used to detect temperature. In some embodiments, the electronic device 100 uses the temperature detected by the temperature sensor 180J to execute a temperature processing strategy. For example, when the temperature reported by the temperature sensor 180J exceeds a threshold, the electronic device 100 reduces the performance of a processor located near the temperature sensor 180J to reduce power consumption and implement thermal protection. In other embodiments, when the temperature is lower than another threshold, the electronic device 100 heats the battery 142 to avoid abnormal shutdown of the electronic device 100 due to low temperature. In other embodiments, when the temperature is lower than another threshold, the electronic device 100 boosts the output voltage of the battery 142 to avoid abnormal shutdown caused by low temperature.

[0492] The touch sensor 180K is also called a "touch control device". The touch sensor 180K can be set on the display screen 194. The touch sensor 180K and the display screen 194 form a touch screen, also called a "touch control screen". The touch sensor 180K is used to detect touch operations acting on or near it. The touch sensor can pass the detected touch operation to the application processor to determine the type of touch event. Visual output related to the touch operation can be provided through the display screen 194. In other embodiments, the touch sensor 180K can also be set on the surface of the electronic device 100, which is different from the position of the display screen 194.

[0493] The bone conduction sensor 180M can obtain a vibration signal. In some embodiments, the bone conduction sensor 180M can obtain a vibration signal of a vibrating bone block of the vocal part of the human body. The bone conduction sensor 180M can also contact the human pulse to receive a blood pressure beat signal. In some embodiments, the bone conduction sensor 180M can also be set in an earphone and combined into a bone conduction earphone. The audio module 170 can parse out a voice signal based on the vibration signal of the vibrating bone block of the vocal part obtained by the bone conduction sensor 180M to realize a voice function. The application processor can parse the heart rate information based on the blood pressure beat signal obtained by the bone conduction sensor 180M to realize a heart rate detection function.

[0494] The key 190 includes a power key, a volume key, etc. The key 190 may be a mechanical key or a touch key. The electronic device 100 may receive key input and generate key signal input related to user settings and function control of the electronic device 100.

[0495] Motor 191 can generate vibration prompts. Motor 191 can be used for incoming call vibration prompts, and can also be used for touch vibration feedback. For example, touch operations acting on different applications (such as taking pictures, audio playback, etc.) can correspond to different vibration feedback effects. For touch operations acting on different areas of the display screen 194, motor 191 can also correspond to different vibration feedback effects. Different application scenarios (for example: time reminders, receiving messages, alarm clocks, games, etc.) can also correspond to different vibration feedback effects. The touch vibration feedback effect can also support customization.

[0496] The indicator 192 may be an indicator light, which may be used to indicate the charging status, power changes, messages, missed calls, notifications, etc.

[0497] The SIM card interface 195 is used to connect a SIM card. The SIM card can be connected to and separated from the electronic device 100 by inserting it into the SIM card interface 195 or pulling it out from the SIM card interface 195. The electronic device 100 can support 1 or N SIM card interfaces, where N is a positive integer greater than 1. The SIM card interface 195 can support Nano SIM cards, Micro SIM cards, SIM cards, and the like. Multiple cards can be inserted into the same SIM card interface 195 at the same time. The types of the multiple cards can be the same or different. The SIM card interface 195 can also be compatible with different types of SIM cards. The SIM card interface 195 can also be compatible with external memory cards. The electronic device 100 interacts with the network through the SIM card to implement functions such as calls and data communications. In some embodiments, the electronic device 100 uses an eSIM, such as an embedded SIM card. The eSIM card can be embedded in the electronic device 100 and cannot be separated from the electronic device 100.

[0498] The software system of the electronic device 100 may adopt a layered architecture, an event-driven architecture, a micro-core architecture, a micro-service architecture, or a cloud architecture. In the embodiment of the present invention, the Android system of the layered architecture is taken as an example to exemplify the software structure of the electronic device 100.

[0499] Fig.14 1 is a software structure block diagram of the electronic device 100 according to an embodiment of the present invention.

[0500] The layered architecture divides the software into several layers, each with clear roles and division of labor. The layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers, from top to bottom: the application layer, the application framework layer, the Android runtime and system library, and the kernel layer.

[0501] The application layer can include a series of application packages.

[0502] like Fig.14 As shown, the application package may include camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message and other applications.

[0503] The application framework layer provides an application programming interface (API) and a programming framework for the applications in the application layer. The application framework layer includes some predefined functions.

[0504] like Fig.14 As shown, the application framework layer may include a window manager, a content provider, a view system, a phone manager, a resource manager, a notification manager, and the like.

[0505] The window manager is used to manage window programs. The window manager can obtain the display screen size, determine whether there is a status bar, lock the screen, capture the screen, etc.

[0506] Content providers are used to store and retrieve data and make it accessible to applications. The data may include videos, images, audio, calls made and received, browsing history and bookmarks, phone books, etc.

[0507] The view system includes visual controls, such as controls for displaying text, controls for displaying images, etc. The view system can be used to build applications. A display interface can be composed of one or more views. For example, a display interface including a text notification icon can include a view for displaying text and a view for displaying images.

[0508] The phone manager is used to provide communication functions of the electronic device 100, such as management of call status (including connecting, hanging up, etc.).

[0509] The resource manager provides various resources for applications, such as localized strings, icons, images, layout files, video files, and so on.

[0510] The notification manager enables applications to display notification information in the status bar. It can be used to convey notification-type messages and can disappear automatically after a short stay without user interaction. For example, the notification manager is used to notify download completion, message reminders, etc. The notification manager can also be a notification that appears in the system top status bar in the form of a chart or scroll bar text, such as notifications of applications running in the background, or a notification that appears on the screen in the form of a dialog window. For example, a text message is displayed in the status bar, a prompt sound is emitted, an electronic device vibrates, an indicator light flashes, etc.

[0511] Android Runtime includes core libraries and virtual machines. Android runtime is responsible for scheduling and management of the Android system.

[0512] The core library consists of two parts: one part is the function that needs to be called by the Java language, and the other part is the Android core library.

[0513] The application layer and the application framework layer run in a virtual machine. The virtual machine executes the Java files of the application layer and the application framework layer as binary files. The virtual machine is used to perform functions such as object life cycle management, stack management, thread management, security and exception management, and garbage collection.

[0514] The system library may include multiple functional modules, such as surface manager, media library, 3D graphics processing library (such as OpenGL ES), 2D graphics engine (such as SGL), etc.

[0515] The surface manager is used to manage the display subsystem and provide the fusion of 2D and 3D layers for multiple applications.

[0516] The media library supports playback and recording of a variety of commonly used audio and video formats, as well as static image files, etc. The media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.

[0517] The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing.

[0518] A 2D graphics engine is a drawing engine for 2D drawings.

[0519] The kernel layer is the layer between hardware and software. The kernel layer contains at least display driver, camera driver, audio driver, and sensor driver.

[0520] The various implementation modes of the present application can be combined arbitrarily to achieve different technical effects.

[0521] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state disk (SSD)), etc.

[0522] Those skilled in the art can understand that to implement all or part of the processes in the above-mentioned embodiments, the processes can be completed by computer programs to instruct related hardware, and the programs can be stored in computer-readable storage media. When the programs are executed, they can include the processes of the above-mentioned method embodiments. The aforementioned storage media include: ROM or random access memory RAM, magnetic disk or optical disk and other media that can store program codes.

[0523] The above description is only an embodiment of the technical solution of the present invention, and is not intended to limit the protection scope of the present invention. Any modification, equivalent replacement, improvement, etc. made according to the disclosure of the present invention shall be included in the protection scope of the present invention.

Claims

1. An application update system, characterized in that: The system includes a first electronic device and a second electronic device, wherein a communication connection is established between the first electronic device and the second electronic device, a first version of a first application is installed on the second electronic device, and a second version of the first application is installed on the first electronic device, wherein: The second electronic device is used to send a first version identifier of the first application to the first electronic device; The first electronic device, when the second version is higher than the first version, obtains a first update package, where the first update package is obtained based on a first installation package of the first version and a second installation package of the second version; The first electronic device is further configured to send the first update package to the second electronic device via the communication connection; The second electronic device is configured to synthesize the second installation package of the second version based on the first update package and the first installation package of the first version; The first electronic device is further used to install the first application based on the second installation package of the second version.

2. The system according to claim 1, characterized in that The second version is the latest version of the first application.

3. The system according to claim 2, characterized in that The first electronic device is further used for: Obtaining the second version identifier; Based on the first version identifier and the second version identifier, it is determined that the second version is higher than the first version.

4. The method according to claim 3, characterized in that The first electronic device is further used to send the second version identifier to the server; The server is configured to send a first message to the first electronic device when determining that the second version is the latest version of the first application; The first electronic device is further configured to determine, in response to the first message, that the second version is the latest version of the first application.

5. The system according to any one of claims 1 to 4, characterized in that: The first electronic device is further used to receive the first installation package sent by the second electronic device; The first electronic device is specifically configured to obtain the first update package based on the first installation package and the second installation package.

6. The system according to claim 2, characterized in that The system further includes a server; the first electronic device is further used for: Obtaining the second version identifier; Sending the first version identifier and the second version identifier to the server; The server obtains the first update package based on the first version identifier and the second version identifier; The server is further configured to send the first update package to the first electronic device; The first electronic device is specifically configured to receive the first update package sent by the server and obtain the first update package.

7. The system according to claim 1, characterized in that When the second installation package of the second version is not the installation package of the latest version of the first application, the first electronic device is further configured to: Obtaining the first update package and the second update package, where the second update package is obtained based on the second installation package and a third installation package of a third version, where the third installation package of the third version is an installation package of a latest version of the first application; sending the first update package and the second update package to the second electronic device via the communication connection; The second electronic device is further used for: synthesizing the third installation package of the third version based on the first update package, the second update package and the first installation package of the first version; The first application is installed based on the third installation package of the third version.

8. The method according to claim 7, characterized in that The first electronic device is further used for: synthesizing the third installation package of the third version based on the second update package and the second installation package; The first application is installed based on the third installation package of the third version.

9. The system according to claim 7, characterized in that The system further includes a server; the first electronic device is further used for: Determining, based on the first version identifier and the second version identifier, that the second version is higher than the first version; sending the second version identifier to the server; The server is also used for: Based on the second version identifier, obtaining the second update package; sending the second update package to the first electronic device; The first electronic device is specifically configured to receive the second update package sent by the server, and obtain the second update package.

10. The system according to any one of claims 7 to 9, characterized in that: The first electronic device is further used to receive the first installation package sent by the second electronic device; The first electronic device is specifically configured to obtain the first update package based on the first installation package and the second installation package.

11. The system according to claim 7, characterized in that The system further includes a server; the first electronic device is further used for: Obtaining the second version identifier; Sending the first version identifier and the second version identifier to the server; The server is also used for: Based on the first version identifier and the second version identifier, obtaining the first update package and the second update package; Sending the first update package and the second update package to the first electronic device; The first electronic device is specifically configured to receive the first update package and the second update package sent by the server, and obtain the second update package and the first update package.

12. The system according to any one of claims 7 to 11, characterized in that: The first installation package is a compressed first installation package, and the second electronic device is specifically used for: Obtaining the compressed first installation package, and decompressing the compressed first installation package to obtain a decompressed first installation package; synthesizing the decompressed second installation package of the second version based on the decompressed first installation package and the first update package; synthesizing the decompressed third installation package of the third version based on the decompressed second installation package and the second update package; The decompressed third installation packages of the three versions are compressed to obtain the third installation package of the third version.

13. The system according to any one of claims 1 to 12, characterized in that: The first electronic device is specifically configured to send the first update package to the second electronic device through the communication connection when a first condition is met; The first condition includes any one of the following: The first electronic device receives a first user operation, where the first user operation is used to update the first application on the first electronic device and the second electronic device; or, After the first electronic device and the second electronic device establish a communication connection, the first electronic device detects that the first version of the first application installed on the second electronic device is lower than the second version of the first application installed on the first electronic device; or, The first electronic device receives a second message sent by the second electronic device, where the second message is sent after the second electronic device receives a second user operation, where the second user operation is used to update the first application on the first electronic device and the second electronic device.

14. The system according to any one of claims 1 to 13, characterized in that: The first version identifier includes an application identifier of the first application and a version identifier of the first application.

15. An application update method, characterized in that: The method comprises: The first electronic device receives a first version identifier of a first application sent by a second electronic device, where the first version identifier is sent through a communication connection between the first electronic device and the second electronic device, the first electronic device has the second version of the first application installed, and the second electronic device has the first version of the first application installed; When the second version is higher than the first version, the first electronic device obtains a first update package, where the first update package is obtained based on a first installation package of the first version and a second installation package of the second version; The first electronic device sends the first update package to the second electronic device through the communication connection, the first update package is used by the second electronic device to synthesize the second installation package of the second version based on the first installation package of the first version, and the second installation package of the second version is used by the second electronic device to install the second version of the first application.

16. The method according to claim 15, characterized in that The second version is the latest version of the first application.

17. The method according to claim 16, characterized in that Before the first electronic device obtains the first update package, the method further includes: The first electronic device obtains the second version identifier; The first electronic device determines, based on the first version identifier and the second version identifier, that the second version is higher than the first version.

18. The method according to claim 17, characterized in that After determining that the second version is higher than the first version, the method further includes: The first electronic device sends the second version identifier to a server, where the second version identifier is used by the server to determine whether the second version is the latest version of the first application; The first electronic device receives a first message sent by the server; In response to the first message, the first electronic device determines that the second version is the latest version of the first application.

19. The method according to any one of claims 15 to 18, characterized in that: Before the first electronic device obtains the first update package, the method further includes: The first electronic device receives the first installation package sent by the second electronic device; The first electronic device obtains a first update package, specifically including: The first electronic device obtains the first update package based on the first installation package and the second installation package.

20. The method according to claim 16, characterized in that Before the first electronic device obtains the first update package, the method further includes: The first electronic device obtains the second version identifier; The first electronic device sends the first version identifier and the second version identifier to the server; The first electronic device obtains a first update package, specifically including: The first electronic device receives the first update package sent by the server, and obtains the first update package, where the first update package is obtained by the server based on the first version identifier and the second version identifier.

21. The method according to claim 15, characterized in that The method further comprises: When the second installation package of the second version is not the installation package of the latest version of the first application, the first electronic device obtains the first update package and the second update package, the second update package is obtained based on the second installation package and the third installation package of the third version, and the third installation package of the third version is the installation package of the latest version of the first application; The first electronic device sends the first update package and the second update package to the second electronic device through the communication connection, the first update package and the second update package are used by the second electronic device to synthesize the third installation package of the third version based on the first installation package of the first version, and the third installation package of the third version is used by the second electronic device to install the third version of the first application.

22. The method according to claim 21, characterized in that After the first electronic device obtains the first update package and the second update package, the method further includes: The first electronic device synthesizes the third installation package of the third version based on the second update package and the second installation package; The first electronic device installs the first application based on the third installation package of the third version.

23. The method according to claim 21, characterized in that Before the first electronic device obtains the second update package, the method further includes: The first electronic device determines, based on the first version identifier and the second version identifier, that the second version is higher than the first version; The first electronic device sends the second version identifier to the server; The first electronic device obtains the second update package, specifically including: The first electronic device receives the second update package sent by the service, where the second update package is determined by the server based on the second version identifier.

24. The method according to any one of claims 21 to 23, characterized in that: Before the first electronic device obtains the first update package, the method further includes: The first electronic device receives the first installation package sent by the second electronic device; The first electronic device obtains a first update package, specifically including: The first electronic device obtains the first update package based on the first installation package and the second installation package.

25. The method according to claim 21, characterized in that Before the first electronic device obtains the first update package and the second update package, the method further includes: The first electronic device obtains the second version identifier; The first electronic device sends the first version identifier and the second version identifier to the server; The first electronic device obtains the first update package and the second update package, specifically including: The first electronic device receives the first update package and the second update package sent by the service, where the first update package and the second update package are determined by the server based on the first version identifier and the second version identifier.

26. The method according to any one of claims 15 to 25, characterized in that: The first electronic device sending the first update package to the second electronic device through the communication connection specifically includes: When the first condition is met, the first electronic device sends the first update package to the second electronic device through the communication connection; The first condition includes any one of the following: The first electronic device receives a first user operation, where the first user operation is used to update the first application on the first electronic device and the second electronic device; or, After the first electronic device and the second electronic device establish a communication connection, the first electronic device detects that the first version of the first application installed on the second electronic device is lower than the second version of the first application installed on the first electronic device.

27. The method according to any one of claims 15 to 26, characterized in that: The first version identifier includes an application identifier of the first application and a version identifier of the first application.

28. An application update method, characterized in that: The method comprises: The second electronic device sends a first version identifier of the first application to the first electronic device, where the first version identifier is sent through a communication connection between the first electronic device and the second electronic device, the first electronic device has the second version of the first application installed, and the second electronic device has the first version of the first application installed; In the case where the second version is higher than the first version, the second electronic device receives, through the communication connection, a first update package sent by the first electronic device, where the first update package is obtained based on a first installation package of the first version and a second installation package of the second version; The second electronic device synthesizes the second installation package of the second version based on the first installation package of the first version; The second electronic device installs the third version of the first application based on the second installation package of the second version.

29. The method according to claim 28, characterized in that The second version is the latest version of the first application.

30. The method according to claim 29, characterized in that Before the second electronic device receives the first update package sent by the first electronic device through the communication connection, the method further includes: The second electronic device sends the first installation package to the first electronic device, where the first installation package is used by the first electronic device to determine the first update package in combination with the second installation package.

31. The method according to claim 29, characterized in that The first update package is determined by the server based on the first version identifier and the second version identifier, and the first version identifier and the second version identifier are sent by the first electronic device to the server.

32. The method according to claim 28, characterized in that The method further comprises: When the second installation package of the second version is not the installation package of the latest version of the first application, the second electronic device receives the first update package and the second update package sent by the first electronic device through the communication connection, the second update package is obtained based on the second installation package and the third installation package of the third version, and the third installation package of the third version is the installation package of the latest version of the first application; The second electronic device synthesizes the third installation package of the third version based on the first update package, the second update package and the first installation package of the first version; The second electronic device installs the third version of the first application based on the third installation package of the third version.

33. The method according to claim 32, characterized in that The second update package is determined by the server based on the first version identifier and the second version identifier, and the first version identifier and the second version identifier are sent by the first electronic device to the server.

34. The method according to any one of claims 32-33, characterized in that Before the second electronic device receives the first update package sent by the first electronic device through the communication connection, the method further includes: The second electronic device sends the first installation package to the first electronic device, where the first installation package is used by the first electronic device to determine the first update package in combination with the second installation package.

35. The method according to claim 28, characterized in that The second update package and the first update package are determined by the server based on the first version identifier and the second version identifier, and the first version identifier and the second version identifier are sent by the first electronic device to the server.

36. The method according to any one of claims 28 to 35, characterized in that The second electronic device receiving, through the communication connection, a first update package sent by the first electronic device, specifically includes: When the first condition is met, the second electronic device receives the first update package sent by the first electronic device through the communication connection; The first condition includes any one of the following: The second electronic device receives a second user operation, where the second user operation is used to update the first application installed on the second electronic device; or, After the first electronic device and the second electronic device establish a communication connection, the first electronic device detects that the first version of the first application installed on the second electronic device is lower than the second version of the first application installed on the first electronic device.

37. The method according to any one of claims 28 to 36, characterized in that: The first version identifier includes an application identifier of the first application and a version identifier of the first application.

38. An electronic device, being a first electronic device, characterized in that: The first electronic device includes a processor and a memory; the memory is coupled to the processor, the memory is used to store computer program code, the computer program code includes computer instructions, and the processor calls the computer instructions to execute the method described in any one of claims 15-27 above.

39. A computer-readable storage medium, characterized in that: Used to store computer instructions, when the computer instructions are executed on a first electronic device, the first electronic device executes the method described in any one of claims 15 to 27.

40. A computer program product, characterized in that When the computer program product is executed on a first electronic device, the first electronic device is enabled to execute the method according to any one of claims 15 to 27.