Application update system and method, and electronic device

By establishing communication connections between multiple electronic devices and collaboratively updating applications, the poor user experience caused by excessive application installation package is solved, and a more efficient update process is achieved.

WO2025026285A1PCT designated stage expired Publication Date: 2025-02-06HUAWEI TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/108292
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-31
Filing Date
2024-07-29
Publication Date
2025-02-06

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, which makes the user experience poor.

Method used

By establishing communication connections between multiple electronic devices, multiple devices can be synergistically updated, reducing the amount of user operations and downloading data. The specific method includes a communication connection between the first electronic device and the second electronic device, the first electronic device obtains an update packet and sends it to the second electronic device, and causes the second electronic device to synthesize the latest version based on the update packet and the local installation packet. installation package.

Benefits of technology

It realizes reducing the amount of user operations and device download data, improving user experience, especially when multi-device updates are more efficient.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024108292_06022025_PF_FP_ABST
    Figure CN2024108292_06022025_PF_FP_ABST
Patent Text Reader

Abstract

An application update system and method, and an electronic device. A first application of a first version is installed on a second electronic device, and a first application of a second version is installed on a first electronic device. The second electronic device sends a first version identifier of the first application to the first electronic device; when the second version is higher than the first version, the first electronic device acquires a first update package, the first update package being obtained on the basis of 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 by means of communicational connection; on the basis of the first update package and the first installation package of the first version, the second electronic device synthesizes to obtain the second installation package of the second version; and the first electronic device also installs the first application on the basis of the second installation package of the second version. Multiple devices collaborate to update an application on a device, reducing the amount of data downloaded when the device updates the application.
Need to check novelty before this filing date? Find Prior Art

Description

Application updating system, method and electronic device

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on July 31, 2023, with application number 202310957364.8, and priority to the Chinese patent application entitled “An application update system, method and electronic device”, all contents of which are incorporated by reference into this application. Technical Field

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

[0003] 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.

[0004] Currently, an application installation package may include multiple different function packages, each of which can implement different functions. For example, an application's function package may include, but is not limited to, a basic package, a configuration package, an entry function package, or a feature function package.

[0005] 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.

[0006] Summary of the Invention

[0007] The present application provides an application update system, method, and electronic device, which enable multiple devices to collaboratively update applications on multiple devices, thereby reducing not only user operations but also the amount of data downloaded when devices update applications.

[0008] In a first aspect, the present application provides an application update system, the system including 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 obtains a first update package when the second version is higher than the first version, 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 a 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.

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

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

[0011] 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.

[0012] 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 one of the following ways.

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

[0014] 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 multiple electronic devices of the same user are associated by default.

[0015] 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.

[0016] 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.

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

[0018] Optionally, if the user accounts logged into the first electronic device and the second electronic device are different and no association has been established between the two user accounts, the first electronic device and the second electronic device are not associated. In this case, the first electronic device can actively establish an association with the second electronic device upon receiving a user operation, such as by scanning a code or entering a verification code.

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

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

[0021] The operating systems installed on the first electronic device and the second electronic device are the same 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.

[0022] 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 may obtain a third update package from the server and send the third update package to the second electronic device. The second electronic device may synthesize the third installation package of the third version based on the third update package and the first installation package of the first version to obtain a third installation package of the third version, and install and update to the third version of the third application based on the third installation package of the third version.

[0023] The first electronic device may also receive the first installation package of the first version sent by the second electronic device, and obtain a 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 a 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 a server.

[0024] 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 a server.

[0025] 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 version of the second installation package. 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 Bluetooth connection.

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

[0027] 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.

[0028] In combination with the first aspect, in a possible implementation, the first electronic device is further configured 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.

[0029] In one possible implementation, the first electronic device may obtain a 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. 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, if the first electronic device locally stores the order of various versions of the first application, 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 order of various versions of the locally stored first application.

[0030] 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.

[0031] In combination with the first aspect, in one possible implementation, the first electronic device is further used to send the second version identifier to the 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.

[0032] When the first electronic device is unable to confirm the order of the first version and the second version, the first electronic device can send the first version identifier and the second version identifier to the server, and the server confirms the order of the first version and the second version, and then sends the 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.

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

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

[0035] 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, it can be sent to the first electronic device when the second electronic device is not in use. In this way, it can avoid the situation where the first installation package is sent while the second electronic device is in use and causes a freeze.

[0036] Optionally, the second electronic device may send the first installation package to the first electronic device during a fixed time period. For example, the second electronic device may send the first installation package to the first electronic device between midnight and 5 a.m. The second electronic device is likely not in use during this fixed time period, thus avoiding the possibility of lag caused by sending the first installation package while the second electronic device is in use.

[0037] 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.

[0038] 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 obtains a first update package based on the first version identifier and the second version identifier; the server is also used to send the first update package to the 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.

[0039] In this method, 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.

[0040] 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. The first electronic device can directly obtain the first update package from the server, further reducing the amount of data transmitted between electronic devices.

[0041] In combination with the first aspect, in one possible implementation, 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 is further used to: obtain a first update package and a second update package, where 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; 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.

[0042] 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.

[0043] 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.

[0044] 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.

[0045] 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.

[0046] 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.

[0047] 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.

[0048] 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.

[0049] In one possible implementation, the first electronic device may obtain a 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. 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, if the first electronic device locally stores the order of various versions of the first application, 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 order of various versions of the locally stored first application.

[0050] 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.

[0051] 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 of the latest version of the first application (for example, the third version identifier), 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. 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 then 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.

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

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

[0054] 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, it can be sent to the first electronic device when the second electronic device is not in use. In this way, it can avoid the situation where the first installation package is sent while the second electronic device is in use and causes a freeze.

[0055] Optionally, the second electronic device may send the first installation package to the first electronic device during a fixed time period. For example, the second electronic device may send the first installation package to the first electronic device between midnight and 5 a.m. The second electronic device is likely not in use during this fixed time period, thus avoiding the possibility of lag caused by sending the first installation package while the second electronic device is in use.

[0056] 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.

[0057] 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.

[0058] 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.

[0059] 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. The first electronic device can directly obtain the first update package from the server, further reducing the amount of data transmitted between electronic devices.

[0060] 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; based on the decompressed first installation package and the first update package, synthesize a decompressed second installation package of the second version; based on the decompressed second installation package and the second update package, synthesize a decompressed third installation package of the third version; compress the three versions of the decompressed third installation package to obtain a third installation package of the third version.

[0061] 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, sequentially synthesize the installation packages of adjacent versions, 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 on the second electronic device.

[0062] In combination with the first aspect, in a possible implementation, the first electronic device is specifically used to send the first update package to the 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 the 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 detects from time to time / periodically 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.

[0063] With reference to the first aspect, in a possible implementation, the first version identifier includes an application identifier of the first application and a version identifier of the first application.

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

[0065] In 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, and the first update package is obtained based on the first installation package of the first version and the 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 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.

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

[0067] 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.

[0068] In combination with the second aspect, in one possible implementation, after determining that the second version is higher than the first version, the method also includes: the first electronic device sends the second version identifier to the 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 the 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.

[0069] 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 the 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.

[0070] 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 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.

[0071] 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 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 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.

[0072] In combination with the second aspect, in one possible implementation, 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.

[0073] In combination with the second aspect, in a possible implementation, 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.

[0074] 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 the 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.

[0075] In combination with the second aspect, in a possible implementation, 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, and 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.

[0076] In combination with the second aspect, in one possible implementation, the first electronic device sends the first update package to the second electronic device via a communication connection, specifically including: when the 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.

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

[0078] In a third aspect, the present application provides an application update method, the method comprising: a second electronic device sending a first version identifier of a first application to a first electronic device, the first version identifier being sent via a communication connection between the first electronic device and the second electronic device, the first electronic device having a second version of the first application installed, and the second electronic device having a first version of the first application installed; when the second version is higher than the first version, the second electronic device receiving a first update package sent by the first electronic device via the communication connection, 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 second electronic device synthesizing a second installation package of the second version based on the first installation package of the first version;

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

[0080] In conjunction with the third aspect, in one possible implementation, the second version is the latest version of the first application.

[0081] In combination with the third aspect, in one 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.

[0082] In conjunction with the third aspect, in a possible implementation, 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 to the server by the first electronic device.

[0083] 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.

[0084] In conjunction with the third aspect, in a possible implementation, 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 to the server by the first electronic device.

[0085] In combination with the third aspect, in one 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.

[0086] In combination with the third aspect, in a possible implementation, 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 to the server by the first electronic device.

[0087] 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.

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

[0089] In a fourth aspect, the present application provides an application update method, the method comprising: a server receiving a first version identifier and a second version identifier sent by a first electronic device; the server obtaining 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, 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.

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

[0091] In combination with the fourth aspect, in a possible implementation, when the second installation package of the second version is not the installation package of the latest version of the first application, the method also includes: the server obtains the 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.

[0092] 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.

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

[0094] 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, 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 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.

[0096] In the seventh aspect, the present application provides a server, which 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 an application running method provided in any possible implementation of any of the above aspects.

[0097] 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.

[0098] 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.

[0099] 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.

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

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

[0102] 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.

[0103] 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 go into details here. BRIEF DESCRIPTION OF THE DRAWINGS

[0104] FIG1 shows a schematic diagram of a method for an electronic device 100 to download an update installation package from an application server 200;

[0105] FIG2 shows a schematic diagram of a method for an electronic device 100 to download an update function package from an application server 200;

[0106] FIG3 shows a system architecture diagram;

[0107] 4A-4D show UI diagrams for downloading a first application;

[0108] 5A-5B show a UI diagram for updating a first application;

[0109] 5C-5E show another UI diagram for updating the first application;

[0110] FIG6 shows a schematic diagram of a server updating a first application;

[0111] 7A-7C are schematic diagrams showing an electronic device downloading a first application;

[0112] FIG8 shows a schematic diagram of synchronizing application identifications of installed applications between the electronic device 100 and the electronic device 300;

[0113] 9A-9E are schematic diagrams showing a method of collaboratively updating a first application across multiple devices;

[0114] FIG10 is a schematic diagram of a method for electronic device 100 and electronic device 300 to collaboratively update a first application provided by the present application;

[0115] 11A-11B show another schematic diagram of multiple devices collaboratively updating a first application;

[0116] FIG12 is 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;

[0117] FIG13 shows a schematic structural diagram of an electronic device;

[0118] FIG14 is a block diagram of the software structure of the electronic device 100 according to an embodiment of the present invention. DETAILED DESCRIPTION

[0119] The following is a clear and detailed description of the technical solutions in the embodiments of the present application 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 between related 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.

[0120] In the following, the terms "first" and "second" are used for descriptive purposes only and should not be understood to imply or suggest relative importance or implicitly indicate the number of the technical features indicated. Therefore, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features. In the description of the embodiments of this application, unless otherwise specified, "plurality" means two or more.

[0121] The term "user interface (UI)" in the following embodiments of this application refers to the media 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 operations that is 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.

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

[0123] An app can implement multiple functions, and different functions can be implemented by different feature packages. An app's installation package can include multiple feature packages. App functions may include, but are not limited to, one or more of the following: login, payment, mapping, navigation, networking, advertising, data storage, image recognition, connectivity, screen projection, communication, camera, multimedia, device virtualization, and device security.

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

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

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

[0127] FIG. 1 shows a schematic diagram of a method in which an electronic device 100 downloads an update installation package from an application server 200 .

[0128] S101. The server 200 stores an updated installation package of a first application.

[0129] 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.

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

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

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

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

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

[0135] 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 installation package of the first application based on the application identifier of the first application and send the updated installation package of the first application to the electronic device 100.

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

[0137] 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.

[0138] However, in the method of updating applications on an electronic device shown in Figure 1, the electronic device 100 needs to download the entire application update installation package. Generally, the application installation package is relatively large, and the electronic device 100 needs to wait for a long time to download the application update installation package, which also consumes the data flow of the electronic device 100, resulting in a poor user experience.

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

[0140] FIG. 2 shows a schematic diagram of a method in which the electronic device 100 downloads an update function package from the application server 200 .

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

[0142] After the first application's functionality is updated, the first application's installation package is also updated. The first application's newly added functionality can be implemented by the first application's updated functionality package. After the first application's functionality is updated, the first application's installation package is also updated, resulting in an updated installation package for the first application. The updated installation package for the first application may include the first application's installation package and the first application's updated functionality package. The server 200 stores the first application's updated functionality package.

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

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

[0145] Since the installation package of the first application has already been stored on the electronic device 100 , the electronic device 100 only needs to download the update function package of the first application, thereby reducing the amount of data downloaded by the electronic device 100 .

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

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

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

[0149] 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.

[0150] 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.

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

[0152] The electronic device 100 locally stores the installation package of the first application. After obtaining 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.

[0153] The electronic device 100 then installs the first application based on the updated 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.

[0154] Although the method for updating applications on an electronic device shown in FIG2 can reduce the amount of data downloaded by the electronic device 100, when a user needs to update applications on multiple electronic devices, the user needs to update the applications on each electronic device according to the method shown in FIG2 , which is cumbersome for the user, 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 package downloaded for each application will also be different.

[0155] This application provides an application update method that can enable multiple devices to collaboratively update applications on multiple devices, which can not only reduce user operations but also reduce the amount of data downloaded when devices update applications.

[0156] FIG3 is a system architecture diagram provided by this application.

[0157] As shown in FIG. 3 , the system may include an electronic device 100 , a server 200 , and an electronic device 300 .

[0158] Server 200 may be an application market server, and server 200 may store multiple application installation packages, 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.

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

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

[0161] 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 order 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. The electronic device 100 may then 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.

[0162] If the second version is the latest version, 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, and send the first update package to electronic device 300. Electronic device 300 can synthesize the first update package and the first installation package of the first version to obtain a second installation package of the second 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 electronic device 300.

[0163] If 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.

[0164] 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.

[0165] 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 order 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.

[0166] 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.

[0167] If the second version is the latest version in server 200, 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, server 200 sends the first update package to electronic device 100, and electronic device 100 can send the first update package to electronic device 300. 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 electronic device 300.

[0168] 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.

[0169] 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.

[0170] It should be noted that the system shown in FIG. 2 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 , and this application does not impose any limitation on this.

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

[0172] Download the first app

[0173] 4A-4D show UI diagrams for downloading the first application.

[0174] The electronic device 100 may receive a user operation to download an installation package of a first application from an application store. The electronic device 100 may 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.

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

[0176] As shown in Figure 4A, Figure 4A shows the main interface 310 of the electronic device 100 before the Huawei Video app is installed. The main interface 310 includes multiple application icons, such as an icon for the Weather app, an icon for the Huawei Store app, an icon for the Smart Home app, an icon for the Sports & Health app, an icon for the Memo app, an icon for the Calendar app, an icon for the Life Service app, an icon for the Camera app, an icon for the Contacts app, an icon for the Phone app, and an icon for the Message app. The main interface 310 also displays a battery indicator, a weather indicator, a date indicator, a network signal indicator, a page indicator, and the like.

[0177] As shown in Figure 4A, the electronic device 100 can receive a user input operation (e.g., a single click) on the icon of the Huawei Store application. In response to the user input operation, the electronic device 100 can display the user interface 320 shown in Figure 4B. 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. The recommended applications can be Huawei Music applications, sports and health applications, etc. Among them, the electronic device 100 can receive a user input operation in the search bar 3201 (e.g., entering an application keyword in the search bar 3201), and the electronic device 100 will display the application search interface.

[0178] For example, the electronic device 100 receives the keyword "Huawei Video" entered by the user in the search bar, after which the electronic device 100 may display the download interface or opening interface of Huawei Video. If Application 1 is already installed locally, in response to the keyword "Huawei Video" entered by the user, the electronic device 100 will display the opening interface of Application 1. The interface may include the Huawei Video icon, Huawei Video introduction information, controls for opening Huawei Video, and so on.

[0179] For example, as shown in FIG4C , electronic device 100 receives a user input of the keyword "Huawei Video" in the search bar, after which electronic device 100 may display a Huawei Video download interface. The Huawei Video download interface may include a Huawei Video icon, a Huawei Video profile, and a download control for the Huawei Video installation package.

[0180] 4C , the electronic device 100 may receive a user input operation (e.g., a single click) for the download control of the Huawei Video installation package. In response to the user's input operation, the electronic device 100 may download the installation package of the Huawei Video application and install the Huawei Video application.

[0181] As shown in Figure 4D, after the electronic device 100 has installed the Huawei Video application, the electronic device 100 can display the Huawei Video application icon 3101 in the main interface 310. The electronic device 100 can receive a user input operation (e.g., a single click) on the Huawei Video application icon 3101 in the main interface 310. In response to the user 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.

[0182] Update the first app

[0183] In this 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 have established communication connections with the electronic device 100.

[0184] 5A-5B show a UI diagram for updating a first application.

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

[0186] Referring to the description of the embodiment of FIG4A, the electronic device 100 may also receive a user input operation for the application icon of the Huawei Store, and the electronic device 100 may display the user interface 320 shown in FIG4B. The electronic device 100 may receive a user input operation in the search bar 3201, for example, if the user enters "Huawei Video" in the search bar 3201, the electronic device 100 may display the user interface 510 shown in FIG5A.

[0187] The user interface 510 is similar to the user interface 320 shown in Figure 4C, except that, when the Huawei video application is already 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. Exemplarily, as shown in Figure 5A, the electronic device 100 can receive a user input operation (such as a single click) for the update option in the user interface 510. In response to the user's input operation, the electronic device 100 can display the prompt bar 5101 shown in Figure 5B. 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 have established a communication connection with the electronic device 100.

[0188] 5C-5E show another UI diagram for updating the first application.

[0189] Exemplarily, as shown in FIG5C , the electronic device 100 may receive a user input operation (e.g., a single click) for 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 may display the prompt bar 5102 shown in FIG5D . The prompt bar 5102 may include a local update option and a collaborative update option. Among them, the user can use the local update option to update only the Huawei video application on the electronic device 100. 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 have established 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 electronic device 100 and electronic device 300 collaboratively update the first application, electronic device 100 may display prompt information 5103 shown in FIG5E . Prompt information 5103 is used to prompt the user that the Huawei video application has been updated on both electronic device 100 and electronic device 300. "Lisa's HUA WEIP40" may be the device name of electronic device 100, and "Lucy's Mate 40" may be the device name of 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] As shown in (a) of Figure 6, 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 can 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, when adding 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 the installation package shown in (b) in 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 function of the first application.

[0198] As shown in (b) of Figure 6, 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, when adding 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 the installation package shown in (b) in 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 newly added function of the first application.

[0201] As shown in (c) in Figure 6, 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 has a new 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 may be used to implement a 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, etc.

[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 updating the functions of the first application, for example, when adding 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 the installation package shown in (c) in 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 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 function of the first application.

[0204] As shown in (d) in Figure 6, 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 has a new fifth function package compared to the second installation package. The fifth function package may also include a Feature function package, which can be used to implement the function package of the new function 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.

[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 can be the third version. The version of the third installation package of the first application is also the third version.

[0206] In FIG. 6 (a) to FIG. 6 (d), the versions of the installation package of the first application are the third version, the second version, the fourth version and the first version in that order.

[0207] Optionally, different types of electronic devices may use different installation packages for the same application. For example, the installation packages for the Huawei Video app installed on a phone and a watch are different. The installation package for the Huawei Video app installed on a phone will not work on a watch, and the installation package for the Huawei Video app installed on a watch will not work on a phone.

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

[0209] Table 1

[0210] Exemplarily, as shown in Figure 1, server 200 stores a correspondence between different installation packages and the device types for which they are applicable. For example, the first, second, third, and fourth installation packages of a first application may be applicable to devices including, but not limited to, a mobile phone, a tablet, or a computer. The fifth installation package of the first application may be applicable to devices including, but not limited to, a watch.

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

[0212] 4A-4D , 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.

[0213] 7A , the electronic device 300 may receive a user operation to download a 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 .

[0214] For example, the device type of electronic device 300 may be a tablet. Server 200 may obtain a first installation package of the first application based on the application identifier of the first application and the device type of electronic device 300, and send the first installation package to electronic device 300. Electronic device 300 may install the first application based on the first installation package of the first application.

[0215] 7B , 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 .

[0216] For example, the device type of electronic device 400 may be a computer. 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 electronic device 400, and send the fourth installation package to electronic device 300. Electronic device 300 may install the first application based on the fourth installation package of the first application.

[0217] 7C , 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 .

[0218] For example, the device type of electronic device 100 may be a mobile phone. 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 electronic device 100, and send the second installation package to electronic device 100. Electronic device 100 may install the first application based on the second installation package of the first application.

[0219] The electronic device updates the first installed application

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

[0221] Collaborative application updating between electronic devices includes the following stages: synchronization of application identifiers of installed applications between electronic devices, acquisition of update packages by electronic devices, and updating of applications by electronic devices based on the update packages.

[0222] First, we will introduce how to synchronize application IDs of installed applications between electronic devices.

[0223] FIG8 shows a schematic diagram of synchronizing application identifications of installed applications between electronic device 100 and electronic device 300 .

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

[0225] 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 can collaboratively update the same installed application.

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

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

[0228] 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.

[0229] 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.

[0230] 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.

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

[0232] Optionally, when the user accounts logged into the electronic device 100 and the electronic device 300 are different and no association relationship has been established between the two user accounts, 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.

[0233] 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.

[0234] 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.

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

[0236] The operating systems installed on the electronic device 100 and the electronic device 300 are the same 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 can be the same version number or different version numbers.

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

[0238] The electronic device 300 may have one or more applications installed. 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 .

[0239] Table 2

[0240] Table 2 shows the application identifiers of the applications installed on the electronic device 300. For example, 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.

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

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

[0243] Table 3

[0244] Table 3 shows the application identifiers of the applications installed on the electronic device 300. For example, 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.

[0245] 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 installed on the electronic device 300 and the application identifiers of the applications installed on the electronic device 100.

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

[0247] 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.

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

[0249] 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.

[0250] 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 this application.

[0251] The embodiment of FIG8 is illustrated by taking the electronic device 300 as an example. In other embodiments, if the electronic device 100 establishes associations with multiple devices at the same time, for example, the electronic device 100 also establishes an association with the electronic device 400, then the electronic device 100 and the electronic device 400 can also determine the same application installed on the electronic device 100 and the electronic device 400 according to the method shown in the embodiment of FIG8, so that the electronic device 100 can subsequently collaborate with the electronic device 400 to update the same installed application. For example, the same application installed on the electronic device 100 and the electronic device 400 can also be the first application.

[0252] Optionally, the number and types of applications installed on the electronic device 100 and the electronic device 300 may change, and the embodiment of FIG8 may be executed periodically / irregularly to timely update the same applications installed on the electronic device 100 and the electronic device 300.

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

[0254] App features can be updated. After an app's features are updated, the app's installation package will also be updated accordingly. The electronic device can obtain the updated app's installation package and reinstall the app based on it. Users can then use the app's newly added features based on the updated installation package.

[0255] 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.

[0256] 9A-9E are schematic diagrams showing a method of collaboratively updating a first application by multiple devices.

[0257] For example, as shown in Figure 9A, electronic device 300 has a first version of a first application installed and stores a first installation package of the first version, while electronic device 100 has a second version of the first application installed and stores a first installation package of the second version, where the second version is higher than the first version. If the second version is the latest version of the first application, electronic device 100 needs to send the first update package to electronic device 300, and 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.

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

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

[0260] 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 that 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 installation package of the latest version 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 the third function package and the fourth function package shown in (c) of Figure 6.

[0261] After determining the first update package, electronic device 100 can send the first update package to electronic device 300. 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. Electronic device 300 can reinstall the first application based on the second installation package of the second version. In this way, the first application is updated on electronic device 300.

[0262] FIG9B shows a schematic diagram of the electronic device 300 synthesizing a second installation package of the second version.

[0263] 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.

[0264] 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.

[0265] 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.

[0266] 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.

[0267] For another example, as shown in Figure 9C, electronic device 300 has a first version of a first application installed and a first installation package of the first version stored, while electronic device 100 has a second version of the first application installed and a second installation package of the second version stored, where the second version is higher than the first version. If the second version is not the latest version of the first application, electronic device 100 needs to send the first update package and the second update package to electronic device 300, and 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.

[0268] 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. If 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 can include the fifth function package shown in (d) in Figure 6. The server 200 then sends the second update package to the electronic device 100.

[0269] After the electronic device 100 obtains the second update package, it can synthesize the second installation package of the second version and the second update package to obtain the third installation package of the third version. 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.

[0270] FIG9D shows a schematic diagram of the electronic device 100 synthesizing a third installation package of the third version.

[0271] The electronic device 100 stores the compressed second installation package of the second version. The electronic device 100 can decompress the compressed second installation package of the second version to obtain an uncompressed second installation package of the second version.

[0272] 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.

[0273] 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.

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

[0275] When electronic device 100 determines that the second version is higher than the first version, 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 the third function package and the fourth function package shown in (c) of Figure 6. Electronic device 100 also needs to send the first update package and the second update package to electronic device 300.

[0276] After receiving the first update package and the second update package, the electronic device 300 can synthesize the first update package, the second update package, and the first installation package of the first version to obtain the third installation package of the third 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.

[0277] FIG9E shows a schematic diagram of the electronic device 300 synthesizing a third installation package of the third version.

[0278] 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.

[0279] 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.

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

[0281] 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.

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

[0283] FIG10 is a schematic diagram of a method provided by the present application for electronic device 100 and electronic device 300 to collaboratively update a first application.

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

[0285] 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 means, such as a USB connection, etc., which is not limited in this application.

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

[0287] Optionally, the electronic device 100 may have a higher storage space, a higher computing power, and / or a higher remaining battery level than the electronic device 300. In this case, the electronic device 100 may proactively send an acquisition message to the electronic device 300 to acquire the installation package of the first application installed on the electronic device 300.

[0288] For example, as can be seen from the embodiment of FIG8 , the same application installed on the electronic device 100 and the electronic device 300 may be the first application.

[0289] In one 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.

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

[0291] After receiving the acquisition message sent by the electronic device 100 , the electronic device 300 can obtain 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.

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

[0293] Illustratively, the first installation package of the first version may be the installation package of the first application shown in (a) of FIG6 .

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

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

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

[0297] Illustratively, the second installation package of the second version may be the installation package of the first application shown in (c) of FIG6 .

[0298] Optionally, S1005 can be executed at any step before, between or after S1001-S1004, and this application does not limit this.

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

[0300] 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.

[0301] 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 value of the first version and the second version. The larger the numerical value, the newer the version. Based on this method, the electronic device 100 can determine that the second version is the latest version from the first version and the second version.

[0302] In other embodiments, when the electronic device 100 cannot determine which of the first and second versions 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 and second versions, the server 200 may determine the latest version from the first and second versions. For example, the server 200 may determine that the latest version is the second version, and then send 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.

[0303] In one 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 both the electronic device 100 and the electronic device 300, the electronic device 100 further needs to determine whether the first version or the second version is the latest version in the server 200. That is, S1008 is executed.

[0304] In other possible implementations, when the electronic device 100 determines that the first version and the second version are different, 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.

[0305] In other possible implementations, when the electronic device 100 determines that the first version and the second version are different, 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 further needs to determine whether the second version is the latest version in the server 200. That is, S1008 is executed.

[0306] 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.

[0307] If 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 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.

[0308] Exemplarily, the first update package may include the third function package and the fourth function package shown in (c) of FIG. 6 .

[0309] 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.

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

[0311] 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.

[0312] Optionally, after executing S1007, S1001-S1017 may be skipped and S1018 may be executed directly. In this way, electronic device 300 may update the first application to the same version as the first application on electronic device 100, thereby updating the first application on electronic device 300 without connecting electronic device 100 and electronic device 300 to a network.

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

[0314] 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 .

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

[0316] In one possible implementation, the first condition may be that the electronic device 100 detects a user input operation for the collaborative update option in the prompt bar 5101 shown in FIG5B . The first condition may also be that the electronic device 100 detects a user input operation for the collaborative update option in the prompt bar 5102 shown in FIG5D .

[0317] 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 sent to the electronic device 100 after the electronic device 300 detects a user input operation for the collaborative update option in the prompt bar 5101 shown in FIG5B , or after the electronic device 300 detects a user input operation for the collaborative update option in the prompt bar 5102 shown in FIG5D .

[0318] 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. Alternatively, 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 need for the user to actively trigger, the electronic device 100 can automatically and collaboratively update the same application installed on the electronic device 100 and the electronic device 300.

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

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

[0321] 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.

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

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

[0324] S1010. The server 200 obtains the third installation package of the third version.

[0325] 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 a third installation package of the third version. The third installation package is the latest version of the first application.

[0326] Optionally, the application identifier of the first application may be sent to the server 200 along 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.

[0327] S1011. Server 200 obtains a second installation package of a second version.

[0328] 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 .

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

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

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

[0332] After obtaining 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.

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

[0334] 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.

[0335] After receiving the second update package sent by server 200, 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, electronic device 100 can obtain the third installation package of the third version without downloading the third installation package of the third version. This reduces the amount of data downloaded by electronic device 100.

[0336] For the 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 the description in the embodiment of Figure 9D, and this application will not go into details here.

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

[0338] 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.

[0339] After receiving 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 also achieve the situation where 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.

[0340] For the 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 the description in the embodiment of Figure 9E, and this application will not go into details here.

[0341] Optionally, S1015-S1016 may be executed before S1014, or S1015-S1016 may be executed simultaneously with S1014, which is not limited in this application.

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

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

[0344] 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.

[0345] If 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 being used to indicate to the electronic device 100 that the second version is already the latest version.

[0346] 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.

[0347] 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, so there is no need to execute S1017-S1019.

[0348] For the 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 the description in the embodiment of Figure 9B, and this application will not go into details here.

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

[0350] Optionally, in other embodiments, the electronic device 100 can also establish communication connections with more electronic devices at the same time, and the electronic device 100 can simultaneously collaborate with multiple electronic devices to update the first application. For example, the electronic device 100 is connected to the electronic device 300 and the electronic device 400 at the same time, and the electronic device 100, the electronic device 300 and the electronic device 400 are all installed with the first application. For example, the electronic device 100 is installed with the second version of the second installed first application, the electronic device 300 is installed with the first version of the first installed first application, and the electronic device 400 is installed with the fourth version of the fourth installed first application. If the second version is higher than the first version and higher than the fourth version, the electronic device 100, the electronic device 300 and the electronic device 400 can update the updated first application on the electronic device 100, the electronic device 300 and the electronic device 400 according to the scheme shown in the embodiment of Figure 10, and this application will not be repeated here.

[0351] 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 packages of other devices, and sort them in order of version. The update packages between adjacent versions of the installation packages are calculated separately 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 packages to update the application.

[0352] 11A-11B show another schematic diagram of multiple devices collaboratively updating a first application.

[0353] For example, as shown in Figure 11A, 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, where 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. 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.

[0354] Specifically, as shown in FIG11A , 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 .

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

[0356] 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 .

[0357] After obtaining the identifiers of the first and second versions, server 200 can determine the order of the first and second versions. For example, server 200 can confirm that the second version is a newer version than the first version. Server 200 also needs to determine whether the second version is the latest version of the installation package of the first application stored in server 200.

[0358] When it is determined that the second version is the latest version of the installation package of the first application stored in server 200, server 200 can obtain the first installation package of the first version based on the identifier of the first version, and server 200 can also obtain the second installation package of the second version based on the identifier of the second version. Thereafter, server 200 can determine a 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 the third function package and the fourth function package shown in (c) of Figure 6.

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

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

[0361] 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.

[0362] As 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, reference may be made to the description in the embodiment of FIG9B , which will not be repeated herein.

[0363] For another example, as shown in Figure 11B, 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 that 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. 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.

[0364] Specifically, as shown in FIG11B , the electronic device 300 has the first application installed and stores the first installation package of the first version. The electronic device 300 may send the identifier of the first version to the electronic device 100 .

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

[0366] 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 .

[0367] After obtaining the identifiers of the first and second versions, server 200 can determine the order of the first and second versions. For example, server 200 can confirm that the second version is a newer version than the first version. Server 200 also needs to determine whether the second version is the latest version of the installation package of the first application stored in server 200.

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

[0369] Afterwards, 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. Server 200 may determine a 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 the third function package and the fourth function package shown in (c) of Figure 6.

[0370] The server 200 may further 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 the fifth function package shown in (d) of FIG.

[0371] 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 .

[0372] 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.

[0373] As 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, reference may be made to the description in the embodiment of FIG9D , which will not be repeated herein.

[0374] Electronic device 100 also needs to send the first update package and the second update package to electronic device 300. After receiving the first update package and the second update package, 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, 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 electronic device 300 when updating the first application on electronic device 300.

[0375] As 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 the description in the embodiment of Figure 9E, and this application will not go into details here.

[0376] FIG12 is a schematic diagram of another method provided by the present application for electronic device 100 and electronic device 300 to collaboratively update a first application.

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

[0378] 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 means, such as a USB connection, etc., which is not limited in this application.

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

[0380] Optionally, the electronic device 100 may have a higher storage space, a higher computing power, and / or a higher remaining battery level than the electronic device 300. In this case, the electronic device 100 may proactively 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.

[0381] For example, as can be seen from the embodiment of FIG8 , the same application installed on the electronic device 100 and the electronic device 300 may be the first application.

[0382] In one 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.

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

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

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

[0386] For example, the first installation package of the first version may be the installation package of the first application shown in (a) of FIG. 6 .

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

[0388] S1205: The electronic device 100 obtains the identifier of the second version of the second installation package of the first application.

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

[0390] Illustratively, the second installation package of the second version may be the installation package of the first application shown in (c) of FIG6 .

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

[0392] Optionally, S1205 can be executed at any step before, between, or after S1201-S1204, and this application does not limit this.

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

[0394] Optional S1201-S1205 can 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.

[0395] 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.

[0396] 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 may send the identifier of the first version and the identifier of the second version to the server 200 to obtain an update package for updating the first application installed on the electronic device 100 and the electronic device 300.

[0397] In one possible implementation, the first condition may be that the electronic device 100 detects a user input operation for the collaborative update option in the prompt bar 5101 shown in FIG5B . The first condition may also be that the electronic device 100 detects a user input operation for the collaborative update option in the prompt bar 5102 shown in FIG5D .

[0398] 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 sent to the electronic device 100 after the electronic device 300 detects a user input operation for the collaborative update option in the prompt bar 5101 shown in FIG5B , or after the electronic device 300 detects a user input operation for the collaborative update option in the prompt bar 5102 shown in FIG5D .

[0399] 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 can automatically and collaboratively update the same application installed on the electronic device 100 and the electronic device 300 without the user's active triggering.

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

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

[0402] After receiving the identifiers of the first version and the second version sent by the electronic device 100, the server 200 can determine the order 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.

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

[0404] 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.

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

[0406] If the server 200 determines that the second version is the latest version, S1216 is executed.

[0407] 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.

[0408] 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 .

[0409] 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.

[0410] 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.

[0411] 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.

[0412] After obtaining 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.

[0413] Afterwards, server 200 can calculate the update packages between two adjacent versions of the installation packages. For example, 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 amount of update package data sent by server 200 to electronic device 100 is minimized.

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

[0415] 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.

[0416] After receiving the second update package sent by server 200, 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, electronic device 100 can obtain the third installation package of the third version without downloading the third installation package of the third version. This reduces the amount of data downloaded by electronic device 100.

[0417] For the 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 the description in the embodiment of Figure 9D, and this application will not go into details here.

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

[0419] 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.

[0420] 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 also achieve the situation where 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.

[0421] For the 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 the description in the embodiment of Figure 9E, and this application will not go into details here.

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

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

[0424] 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.

[0425] If server 200 determines that the second version is the latest version of the installation package of the first application stored in server 200, it indicates that the second installation package of the second version installed in electronic device 100 is already the latest version and does not need to be updated. 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.

[0426] 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.

[0427] Exemplarily, the first update package may include the third function package and the fourth function package shown in (c) of FIG. 6 .

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

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

[0430] 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.

[0431] Server 200 sends the first update package to electronic device 100, which then sends the first update package to electronic device 300. Based on the first update package and the first installation package, electronic device 300 can obtain the second installation package of the second version. This allows electronic device 300 to obtain the second installation package of the second version simply by obtaining the first update package from server 200, reducing the amount of data downloaded by electronic device 100.

[0432] For the 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 the description in the embodiment of Figure 9B, and this application will not go into details here.

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

[0434] Optionally, in other embodiments, the electronic device 100 can also establish communication connections with more electronic devices at the same time, and the electronic device 100 can simultaneously collaborate with multiple electronic devices to update the first application. For example, the electronic device 100 is connected to the electronic device 300 and the electronic device 400 at the same time, and the electronic device 100, the electronic device 300 and the electronic device 400 are all installed with the first application. For example, the electronic device 100 is installed with the second version of the second installed first application, the electronic device 300 is installed with the first version of the first installed first application, and the electronic device 400 is installed with the fourth version of the fourth installed first application. If the second version is higher than the first version and higher than the fourth version, the electronic device 100, the electronic device 300 and the electronic device 400 can update the updated first application on the electronic device 100, the electronic device 300 and the electronic device 400 according to the scheme shown in the embodiment of Figure 12, and this application will not be repeated here.

[0435] Referring to FIG13 , FIG13 shows a schematic structural diagram of an electronic device.

[0436] 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 particular restrictions on the specific type of the electronic device.

[0437] 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.

[0438] It should be understood that the structure illustrated in the embodiments 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, or may combine or separate certain components, or arrange the components differently. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.

[0439] 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 processing unit (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). The different processing units may be independent devices or integrated into one or more processors.

[0440] 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.

[0441] Processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in processor 110 is a cache memory. This memory can store instructions or data that have just been used or are being recycled by processor 110. If processor 110 needs to use the same instruction or data again, it can directly access the memory. This avoids duplicate accesses, reduces processor 110 latency, and thus improves system efficiency.

[0442] In some embodiments, the processor 110 may include one or more interfaces. The interfaces 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.

[0443] The I2C interface is a bidirectional synchronous serial bus that includes a serial data line (SDA) and a serial clock line (SCL). In some embodiments, the processor 110 may include multiple I2C bus lines. The processor 110 may be coupled to the touch sensor 180K, the charger, the flash, the camera 193, and the like via different I2C bus interfaces. For example, the processor 110 may be coupled to the touch sensor 180K via the I2C interface, enabling communication between the processor 110 and the touch sensor 180K via the I2C bus interface, thereby implementing the touch function of the electronic device 100.

[0444] 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 enable communication between the processor 110 and the audio module 170. In some embodiments, the audio module 170 can transmit audio signals to the wireless communication module 160 via the I2S interface, enabling the function of answering calls through a Bluetooth headset.

[0445] 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, enabling the function of answering calls via a Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.

[0446] The UART interface is a universal serial data bus used for asynchronous communication. This 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 typically 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 via the UART interface to implement Bluetooth functionality. In some embodiments, the audio module 170 can transmit audio signals to the wireless communication module 160 via the UART interface, enabling the function of playing music through Bluetooth headphones.

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

[0448] The GPIO interface can be configured via software. The GPIO interface can be configured as either a control signal or a data signal. In some embodiments, the GPIO interface can be used to connect the processor 110 to the camera 193, display 194, wireless communication module 160, audio module 170, 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.

[0449] The USB interface 130 is an interface that complies with USB standards and may be a Mini USB interface, a Micro USB interface, a USB Type-C interface, or the like. The USB interface 130 can be used to connect a charger to charge the electronic device 100, or to transfer data between the electronic device 100 and peripheral devices. It can also be used to connect headphones to play audio. This interface can also be used to connect other electronic devices, such as augmented reality devices.

[0450] It is understood that the interface connection relationship between the modules illustrated in the embodiment of the present invention is merely an illustrative 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 from the above embodiments, or a combination of multiple interface connection methods.

[0451] The charging management module 140 is configured to receive charging input from a charger. The charger can be either a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 can receive charging input from the wired charger via the USB interface 130. In some wireless charging embodiments, the charging management module 140 can receive wireless charging input via the wireless charging coil of the electronic device 100. While charging the battery 142, the charging management module 140 can also provide power to the electronic device via the power management module 141.

[0452] 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 provides power to the processor 110, the internal memory 121, the display 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 count, and battery health status (leakage, impedance). 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.

[0453] 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.

[0454] 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 antenna utilization. For example, antenna 1 can be reused as a diversity antenna for a wireless local area network. In other embodiments, the antennas can be used in conjunction with a tuning switch.

[0455] The mobile communication module 150 can provide solutions for wireless communications including 2G / 3G / 4G / 5G 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.

[0456] The modem processor may include a modulator and a demodulator. The modulator is used to modulate the low-frequency baseband signal to be transmitted 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 being processed by the baseband processor, the low-frequency baseband signal is passed to the application processor. The application processor outputs a sound signal through an audio device (not limited to the speaker 170A, the receiver 170B, etc.) or displays an image or video through the 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.

[0457] 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 that integrate at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via the antenna 2, frequency modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110. The wireless communication module 160 can also receive the signal to be sent from the processor 110, frequency modulate it, amplify it, and convert it into electromagnetic waves for radiation through the antenna 2.

[0458] 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 a network and other devices through wireless communication technologies. The wireless communication technologies 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).

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

[0460] Display screen 194 is used to display images, videos, and the like. 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 (AMOLED), a flexible light-emitting diode (FLED), a MiniLED, a MicroLED, a Micro-oLed, or a quantum dot light-emitting diode (QLED). In some embodiments, electronic device 100 may include one or N display screens 194, where N is a positive integer greater than one.

[0461] The electronic device 100 can implement a shooting function through an ISP, a camera 193, a video codec, a GPU, a display screen 194, and an application processor.

[0462] The ISP processes data fed back by camera 193. For example, when taking a photo, the shutter is opened, and light is transmitted through the lens to the camera's photosensitive element. The light signal is converted into an electrical signal, which is then passed to the ISP for processing and converted into a visible image. The ISP can also perform algorithmic optimization on image noise and brightness. It can also optimize parameters such as exposure and color temperature of the captured scene. In some embodiments, the ISP can be located within camera 193.

[0463] 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 light signal into an electrical signal, and then passes the electrical signal to the ISP for conversion 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.

[0464] The digital signal processor is used to process digital signals. In addition to processing digital image signals, it can also process other digital signals. For example, when the electronic device 100 selects a frequency point, the digital signal processor is used to perform Fourier transform on the frequency point energy.

[0465] Video codecs are used to compress or decompress digital video. Electronic device 100 may support one or more video codecs. This allows electronic device 100 to play or record videos in various encoding formats, such as Moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, and MPEG4.

[0466] The NPU is a neural network (NN) computing processor. Drawing on the structure of biological neural networks, such as the transmission patterns between neurons in the human brain, it rapidly processes input information and can continuously self-learn. The NPU can enable intelligent cognitive applications in electronic device 100, such as image recognition, face recognition, speech recognition, and text comprehension.

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

[0468] 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.

[0469] 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 cell potential level; universal flash storage (UFS) and embedded multi media card (eMMC) can be divided into UFS and eMMC according to the storage specification.

[0470] 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.

[0471] 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 .

[0472] 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 via the external memory interface 120 to implement data storage. For example, files such as music and videos can be stored in the external non-volatile memory.

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

[0474] 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 provided in the processor 110, or some functional modules of the audio module 170 can be provided in the processor 110.

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

[0476] The receiver 170B, also called a "handset", is used to convert audio electrical signals into sound signals. When the electronic device 100 receives a call or a voice message, the user can place the receiver 170B close to the ear to hear the voice.

[0477] Microphone 170C, also known as "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 the microphone 170C to input the sound signal into the 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 source of sound, realize directional recording function, etc.

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

[0479] Pressure sensor 180A is used to sense pressure signals and convert them into electrical signals. In some embodiments, pressure sensor 180A can be located on display screen 194. There are many types of pressure sensors 180A, such as resistive, inductive, and capacitive. A capacitive pressure sensor can include at least two parallel plates made of conductive material. When force acts on pressure sensor 180A, the capacitance between the electrodes changes. Electronic device 100 determines the intensity of the pressure based on this change in capacitance. When a touch operation is applied to display screen 194, electronic device 100 detects the touch intensity based on pressure sensor 180A. Electronic device 100 can also calculate the touch location based on the detection signal from pressure sensor 180A. In some embodiments, touch operations applied to the same touch location but with different touch intensities can correspond to different operation instructions. For example, when a touch operation with an intensity less than a first pressure threshold is applied to a short message application icon, a command to view short messages is executed. When a touch operation with an intensity greater than or equal to the first pressure threshold is applied to a short message application icon, a command to create a new short message is executed.

[0480] The gyroscope 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 (such as the x, y, and z axes) can be determined by the gyroscope sensor 180B. The gyroscope sensor 180B can be used for anti-shake shooting. For example, when the shutter is pressed, the gyroscope 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 gyroscope sensor 180B can also be used for navigation and somatosensory game scenes.

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

[0482] 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 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 based on the magnetic sensor 180D. Based on the detected opening and closing status of the case or flip cover, features such as automatic unlocking of the flip cover can be configured.

[0483] Accelerometer 180E can detect the magnitude of acceleration of electronic device 100 in all directions (generally three axes). It can also detect the magnitude and direction of gravity when electronic device 100 is stationary. It can also be used to identify the electronic device's posture, enabling applications such as switching between landscape and portrait modes and pedometers.

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

[0485] 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 is holding 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.

[0486] Ambient light sensor 180L is used to sense ambient light brightness. Electronic device 100 can adaptively adjust the brightness of display screen 194 based on the perceived ambient light. Ambient light sensor 180L can also be used to automatically adjust white balance when taking photos. Ambient light sensor 180L can also work with proximity light sensor 180G to detect whether electronic device 100 is in a pocket to prevent accidental touches.

[0487] 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.

[0488] 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 the 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 prevent the electronic device 100 from shutting down abnormally 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 prevent abnormal shutdown due to low temperature.

[0489] The touch sensor 180K is also called a "touch-sensitive device." The touch sensor 180K can be disposed on the display screen 194. The touch sensor 180K and the display screen 194 form a touch screen, also called a "touch screen." The touch sensor 180K is used to detect touch operations applied thereto or in the vicinity thereof. The touch sensor can transmit the detected touch operations to the application processor to determine the type of touch event. Visual output related to the touch operations can be provided via the display screen 194. In other embodiments, the touch sensor 180K can also be disposed on the surface of the electronic device 100, at a location different from that of the display screen 194.

[0490] The bone conduction sensor 180M can obtain vibration signals. In some embodiments, the bone conduction sensor 180M can obtain vibration signals from the vibrating bones of the human body. The bone conduction sensor 180M can also contact the human pulse to receive blood pressure pulse signals. In some embodiments, the bone conduction sensor 180M can also be set in headphones to form bone conduction headphones. The audio module 170 can parse out voice signals based on the vibration signals of the vibrating bones of the human body obtained by the bone conduction sensor 180M to implement voice functions. The application processor can parse heart rate information based on the blood pressure pulse signals obtained by the bone conduction sensor 180M to implement heart rate detection functions.

[0491] The buttons 190 include a power button, a volume button, and the like. The buttons 190 may be mechanical buttons or touch buttons. The electronic device 100 may receive key inputs and generate key signal inputs related to user settings and function control of the electronic device 100.

[0492] 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.

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

[0494] 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 or removing it 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, etc. 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.

[0495] The software system of the electronic device 100 can adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture. In the embodiment of the present invention, the Android system with a layered architecture is used as an example to illustrate the software structure of the electronic device 100.

[0496] FIG14 is a block diagram of the software structure of the electronic device 100 according to an embodiment of the present invention.

[0497] A layered architecture divides software into several layers, each with distinct roles and responsibilities. Layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers: the application layer, the application framework layer, the Android runtime and system libraries, and the kernel layer.

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

[0499] As shown in FIG14 , the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.

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

[0501] As shown in FIG14 , the application framework layer may include a window manager, a content provider, a view system, a telephony manager, a resource manager, a notification manager, and the like.

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

[0503] 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.

[0504] The view system includes visual controls, such as those for displaying text and images. The view system is used to build applications. A display interface can consist of one or more views. For example, a display interface containing a text notification icon might include a view for displaying text and a view for displaying images.

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

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

[0507] The Notification Manager allows applications to display notifications in the status bar. These messages can be displayed briefly and then disappear automatically without user interaction. For example, the Notification Manager is used to notify users of completed downloads and message reminders. The Notification Manager can also display notifications in the top status bar of the system as icons or scrolling text, such as notifications from background applications, or as dialog windows on the screen. Examples include text messages in the status bar, beeps, vibrations on electronic devices, and flashing indicator lights.

[0508] Android Runtime includes core libraries and a virtual machine. Android runtime is responsible for scheduling and management of the Android system.

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

[0510] The application layer and application framework layer run in a virtual machine. The virtual machine executes Java files in the application layer and application framework layer as binary files. The virtual machine manages object lifecycles, stack management, thread management, security and exception management, and garbage collection.

[0511] The system library can 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.

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

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

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

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

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

[0517] The various implementation modes of this application can be combined arbitrarily to achieve different technical effects.

[0518] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented 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, all or part of the processes or functions described herein are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may 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 therein. The available medium may 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 drive (SSD)).

[0519] Those skilled in the art will appreciate that all or part of the process steps in the above-described method embodiments can be implemented by a computer program instructing the relevant hardware. The program can be stored in a computer-readable storage medium, and when executed, the program can include the process steps in the above-described method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as ROM or random access memory (RAM), magnetic disks, or optical disks.

[0520] The above description is only an embodiment of the technical solution of the present invention and is not intended to limit the scope of protection of the present invention. Any modification, equivalent replacement, improvement, etc. made based on the disclosure of the present invention shall be included in the scope of protection 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; In the case that the second version is higher than the first version, the first electronic device 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 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, and the first installation package is used by the first electronic device The first update package is determined 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.

Citation Information

Patent Citations

  • Information processing method and first electronic device terminal

    CN103810010A

  • Software upgrading method and terminal equipment

    CN105760203A

  • Application upgrading data package processing method and device, electronic equipment, and system

    CN105812435A

  • Methods and systems for installing an application version via close range communications

    CN108028768A

  • Version updating method and device for financial terminal, server and storage medium

    CN110597540A