Function package loading method and device, server and electronic equipment
By detecting user actions on electronic devices or servers, displaying a function selection interface, and downloading the matching function package, the problem of excessively large application installation packages is solved, enabling a faster download and installation process and saving storage space.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-05-29
- Publication Date
- 2026-03-17
AI Technical Summary
In existing technologies, application installation packages are too large, resulting in wasted user data and increased download and installation time. Existing on-demand download solutions have failed to effectively solve the problem of splitting executable code within an app.
By detecting user actions, a function selection interface is displayed, function description information is obtained, function packages with matching identifiers are found, and the corresponding function packages and dependency packages are downloaded and silently installed on electronic devices or servers.
It shortens the waiting time for users to download and install feature packages, saves storage space on electronic devices, and improves the download efficiency and flexibility of feature packages.
Smart Images

Figure CN113741911B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of smart terminal technology, and in particular to a method, apparatus, server, and electronic device for loading a function package. Background Technology
[0002] As the processing power of electronic devices (such as smartphones or tablets) increases, applications (Apps) are becoming increasingly complex to provide more functions, resulting in larger App installation packages. Simultaneously, to cope with device diversity (different central processing unit (CPU) platforms and / or screen resolutions), Apps package redundant library files (x86, arm32, and / or arm64, etc.) and / or resource files into a single application installation package for better compatibility. Users then have to download the entire installation package to use a specific function of the App. This wastes user bandwidth due to redundant functions, libraries, and / or resource files, and increases the waiting time for downloading and installing the App, while also increasing the storage space occupied by the App installation package.
[0003] To address the issue of redundant resource files in app installation packages, existing technologies offer an on-demand resource download solution, which downloads only the resources required for the app to run on the specific device. Summary of the Invention
[0004] This application provides a method, apparatus, server, and electronic device for loading function packages. This application also provides a computer-readable storage medium to enable an electronic device to download function packages based on description information of the functions required by the currently running application.
[0005] In a first aspect, this application provides a method for loading a function package, comprising: an electronic device detecting first operation information of a user in the interface displayed by a currently running first application; wherein the first operation information may be a user's click, double-click, long-press or drawing of a specific graphic in the interface displayed by the first application, or the first operation information may be a user's click, double-click or long-press operation on a specific icon in the interface displayed by the first application. This embodiment does not limit the operation form of the first operation information.
[0006] Then, in response to the first operation information mentioned above, the electronic device displays a function selection interface.
[0007] Next, the electronic device detects the second operation information of the user's selection of the first function. The second operation information can be the user's click, double-click or long-press operation on the function icon in the function selection interface. This embodiment does not limit the operation form of the second operation information. This embodiment takes the user's click operation on the function icon as the second operation information for explanation.
[0008] Then, in response to the second operation information, the electronic device obtains the description information of the first function; in specific implementation, the electronic device can obtain the description information of the first function selected by the user from the local data of the first application.
[0009] Finally, the electronic device searches for a feature package whose identifier matches the description information among the feature packages already installed on the electronic device. If no match is found, the description information is sent to the server, and the device receives download information from the server. This download information includes information about the feature package and its dependent packages, including the feature package whose identifier matches the description information. The electronic device downloads the feature package and its dependent packages, silently installs and loads the feature package.
[0010] The information of the aforementioned function package may include the matching identifier and download address of the aforementioned function package. Of course, the information of the aforementioned function package may also include other information, such as the version information and / or manufacturer information of the function package, etc. This embodiment does not limit this.
[0011] The information about the dependency packages of the above-mentioned function package may include the matching identifier and download address of the dependency packages of the above-mentioned function package.
[0012] In the above-mentioned function package loading method, after the electronic device detects the first operation information displayed by the user on the interface of the currently running first application, it displays a function selection interface in response to the first operation information; after detecting the second operation information of the user selecting the first function, it obtains the description information of the first function in response to the second operation information, and then searches for a function package whose matching identifier matches the description information in the function packages already installed on the electronic device. If no match is found, the description information is sent to the server, and the device receives download information sent by the server. The download information includes information about the function package whose matching identifier matches the description information and information about the dependent packages of the function package. Finally, the electronic device downloads the function package and the dependent packages of the function package, silently installs and loads the function package, thereby enabling the electronic device to download function packages according to the description information of the functions required by the currently running application. Since the function package occupies a small amount of storage space, the waiting time for the user to download and install the function package can be shortened, saving the storage space of the electronic device.
[0013] In one possible implementation, downloading the aforementioned function package and its dependent packages, and silently installing and loading the function package includes: the electronic device determining the dependent packages to be downloaded based on the download information and the function packages already installed on the electronic device; then, the electronic device downloads the aforementioned function package and the dependent packages to be downloaded, and silently installs and loads the function package. Specifically, the electronic device can obtain the uninstalled dependent packages in the download information based on the matching identifier of the dependent packages in the download information and the function packages already installed on the electronic device; the uninstalled dependent packages are the dependent packages to be downloaded.
[0014] In this embodiment, the electronic device can determine the dependency packages to be downloaded based on the download information and the function packages already installed on the electronic device. Then, it only needs to download the function packages and the dependency packages to be downloaded, and load the function packages, thereby further reducing the installation packages that the electronic device needs to download, further shortening the user's waiting time, and saving the storage space of the electronic device.
[0015] In one possible implementation, the description information includes: the function category code of the function corresponding to the function icon, and the matching identifier includes: the function category code of the function provided by the function package; thus, in the function packages installed on the electronic device, finding the function package whose matching identifier matches the description information includes: in the function packages installed on the electronic device, searching according to the function category code in the description information to obtain the function package whose function category code in the matching identifier matches the function category code in the description information.
[0016] In one possible implementation, after searching for a function package whose matching identifier matches the description information in the function packages already installed on the electronic device, if a function package whose matching identifier matches the description information is found in the function packages already installed on the electronic device, then the matching function package is loaded in the first application. The matching function package is a function package already installed on the second application, and the second application is installed on the electronic device.
[0017] In other words, the function package that the electronic device finds and matches the above description information can be a function package that has been installed in the second application. There is no restriction that the function package found must be a function package in the first application. After finding a matching function package, the matching function package can be loaded directly in the first application without jumping to the second application.
[0018] In one possible implementation, the above description information also includes the manufacturer information and / or version information of the first application; the above matching identifier also includes the manufacturer information and / or version information of the function package; then, before loading the matching function package in the first application, if at least two matching function packages are found among the function packages already installed on the electronic device, the matching degree between the matching function package and the first application is determined according to the manufacturer information and / or version information; thus, loading the matching function package in the first application can be: loading the function package with the highest matching degree in the first application.
[0019] In one possible implementation, the process of finding a function package whose matching identifier matches the description information in the function packages already installed on the electronic device can be as follows: The electronic device's list of installed functions searches for a function package whose matching identifier matches the description information. The list of installed functions stores entries corresponding to applications installed on the electronic device, and these entries include matching identifiers for the function packages installed by those applications.
[0020] In one possible implementation, the download information includes the application to which the function package belongs. After downloading the function package and its dependencies, silently installing and loading the function package, an entry corresponding to the application to which the loaded function package belongs can be obtained from the installed function list of the electronic device, and a matching identifier of the loaded function package can be added to the obtained entry.
[0021] Secondly, embodiments of this application provide a method for loading a function package, comprising: a server receiving description information sent by an electronic device, wherein the description information is obtained by the electronic device from the description information of a first function selected by a user, and is sent after no function package with a matching identifier matching the description information is found among the function packages already installed by the electronic device; searching for information of a function package with a matching identifier matching the description information in a function package matching table; and sending download information to the electronic device, wherein the download information includes information of the function package and information of the function package's dependent packages, so that the electronic device downloads the function package and the function package's dependent packages according to the download information.
[0022] In the above-mentioned function package loading method, after the server receives the description information sent by the electronic device, it searches for the function package information whose matching identifier matches the description information in the function package matching table, and then sends download information to the electronic device. The download information includes the information of the matching function package and the information of the dependent packages of the matching function package. Thus, the electronic device can download the matching function package and the dependent packages of the matching function package according to the download information. This realizes that the electronic device can download function packages according to the description information of the functions required by the currently running application. Since the above-mentioned function packages occupy a small amount of storage space, the waiting time for users to download and install function packages can be shortened, saving the storage space of the electronic device.
[0023] In one possible implementation, before the server searches the function package matching table for information on the function package whose matching identifier matches the above description information, the method further includes: the server receiving the application package uploaded by the developer; splitting the application package to obtain the function packages included in the application package; parsing each function package included in the application package to obtain the matching identifier of the function package's dependent packages and the matching identifier of the function package; and recording the application package to which the function package belongs, as well as the matching identifier of the function package and the matching identifier of the function package's dependent packages in the function package matching table.
[0024] In one possible implementation, the matching identifier includes: the function category code of the function provided by the function package; the function package matching table records the application package to which the function package belongs, the matching identifier of the function package, the information of the function package, and the information of the dependent packages of the function package; the description information includes: the function category code of the function corresponding to the function icon; thus, in the function package matching table, finding the information of the function package whose matching identifier matches the description information includes: searching in the function package matching table according to the function category code in the description information to obtain the function package whose function category code in the matching identifier matches the function category code in the description information.
[0025] In one possible implementation, the above description information further includes: the vendor information and / or version information of the first application; the above matching identifier further includes the vendor information and / or version information of the function package; after searching the function package information that matches the above description information in the function package matching table, the method further includes: if at least two matching function packages are found in the above function package matching table, the server determines the matching degree between the matching function package and the first application based on the vendor information and / or version information; then the above download information includes the information of the function package with the highest matching degree and the information of the dependency packages of the function package with the highest matching degree.
[0026] Thirdly, embodiments of this application provide a function package loading device, which is included in an electronic device and has the function of implementing the electronic device's behavior in the first aspect and possible implementations of the first aspect. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the above-described functions. For example, a receiving module or unit, a processing module or unit, a sending module or unit, etc.
[0027] Fourthly, embodiments of this application provide a function package loading device, which is included in a server. This device has the function of implementing the server behaviors described in the second aspect and its possible implementations. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the above-described functions. For example, a receiving module or unit, a processing module or unit, a sending module or unit, etc.
[0028] Fifthly, embodiments of this application provide an electronic device, including:
[0029] One or more processors; memory; multiple applications; and one or more computer programs, wherein the one or more computer programs are stored in the memory, and the one or more computer programs include instructions that, when executed by the electronic device, cause the electronic device to perform the following steps: detecting first operation information displayed by a user in an interface of a currently running first application; displaying a function selection interface in response to the first operation information; detecting second operation information indicating that the user has selected a first function; obtaining description information of the first function in response to the second operation information; searching for a function package whose matching identifier matches the description information among the function packages installed on the electronic device; if no match is found, sending the description information to a server; receiving download information sent by the server, the download information including information about the function package and information about the function package's dependent packages, the function package including the function package whose matching identifier matches the description information; downloading the function package and the function package's dependent packages, silently installing and loading the function package.
[0030] In one possible implementation, when the above instruction is executed by the electronic device, the electronic device downloads the above function package and the function package's dependency packages. The step of loading the above function package includes: determining the dependency packages to be downloaded based on the above download information and the function packages already installed on the electronic device; downloading the above function package and the above dependency packages to be downloaded; and silently installing and loading the above function package.
[0031] In one possible implementation, the aforementioned description information includes: the function category code of the function corresponding to the aforementioned function icon; the aforementioned matching identifier includes: the function category code of the function provided by the aforementioned function package; when the aforementioned instruction is executed by the aforementioned electronic device, the step of searching for a function package whose matching identifier matches the aforementioned description information in the function packages already installed on the aforementioned electronic device includes: searching in the function packages already installed on the aforementioned electronic device according to the function category code in the aforementioned description information, and obtaining a function package whose function category code in the matching identifier matches the function category code in the aforementioned description information.
[0032] In one possible implementation, when the above instruction is executed by the electronic device, after the electronic device performs the step of searching for a function package whose matching identifier matches the above description information in the function packages already installed in the electronic device, it further performs the following steps: if a function package whose matching identifier matches the above description information is found in the function packages already installed in the electronic device, then the matching function package is loaded in the first application, and the matching function package is a function package already installed in the second application, and the second application is installed in the electronic device.
[0033] In one possible implementation, the above description information further includes the manufacturer information and / or version information of the first application; the above matching identifier further includes the manufacturer information and / or version information of the function package; when the above instruction is executed by the electronic device, before the electronic device performs the step of loading the matching function package in the first application, the following steps are also performed: if at least two matching function packages are found among the function packages already installed on the electronic device, then the matching degree between the matching function package and the first application is determined according to the above manufacturer information and / or version information; then loading the matching function package in the first application includes: loading the function package with the highest matching degree in the first application.
[0034] In one possible implementation, when the above instruction is executed by the electronic device, the step of searching for a function package whose matching identifier matches the above description information in the function packages installed by the electronic device can be: searching for a function package whose matching identifier matches the above description information in the list of installed functions of the electronic device; wherein the list of installed functions stores entries corresponding to the applications installed by the electronic device, and the entries include the matching identifiers of the function packages installed by the applications.
[0035] In one possible implementation, the download information includes the application to which the function package belongs. When the instruction is executed by the electronic device, the electronic device downloads the function package and its dependent packages. After loading the function package, the following steps are performed: in the installed function list of the electronic device, an entry corresponding to the application to which the loaded function package belongs is obtained, and a matching identifier of the loaded function package is added to the obtained entry.
[0036] Sixthly, embodiments of this application provide a server, including: one or more processors; a memory; multiple applications; and one or more computer programs, wherein the one or more computer programs are stored in the memory, and the one or more computer programs include instructions that, when executed by the server, cause the server to perform the following steps: receiving description information sent by an electronic device, the description information being description information of a first function selected by a user, sent after no matching identifier matching the description information is found in the function packages installed by the electronic device; searching for information of a function package whose matching identifier matches the description information in a function package matching table; and sending download information to the electronic device, the download information including information of the function package and information of the function package's dependent packages, so that the electronic device downloads the function package and the function package's dependent packages according to the download information and the function package already installed by the electronic device.
[0037] In one possible implementation, when the above instruction is executed by the server, before the server performs the step of searching for the function package information whose matching identifier matches the above description information in the function package matching table, the following steps are also performed: receiving the application package uploaded by the developer; splitting the application package to obtain the function packages included in the application package; parsing each function package included in the application package to obtain the matching identifier of the function package's dependent packages and the matching identifier of the function package; and recording the application package to which the function package belongs, as well as the matching identifier of the function package and the matching identifier of the function package's dependent packages in the function package matching table.
[0038] In one possible implementation, the matching identifier includes: the function category code of the function provided by the function package; the function package matching table records the application package to which the function package belongs, the matching identifier of the function package, the information of the function package, and the information of the dependent packages of the function package; the description information includes: the function category code of the function corresponding to the function icon; when the above instruction is executed by the above server, the server performs the step of searching for the function package information whose matching identifier matches the description information in the function package matching table, which includes: searching in the function package matching table according to the function category code in the description information to obtain the function package whose function category code in the matching identifier matches the function category code in the description information.
[0039] In one possible implementation, the above description information further includes: the vendor information and / or version information of the first application; the above matching identifier further includes the vendor information and / or version information of the function package; when the above instruction is executed by the server, after the server performs the step of searching for the function package information that matches the above description information in the function package matching table, it further performs the following steps: if at least two matching function packages are found in the above function package matching table, then the matching degree between the matching function package and the first application is determined according to the above vendor information and / or version information; then the above download information includes the information of the function package with the highest matching degree and the information of the dependency package of the function package with the highest matching degree.
[0040] It should be understood that the third and fifth aspects of this application are consistent with the technical solutions of the first aspect of this application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation are similar, so they will not be repeated here.
[0041] It should be understood that the fourth and sixth aspects of this application are consistent with the technical solutions of the second aspect of this application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation are similar, so they will not be described again.
[0042] In a seventh aspect, this application provides a computer-readable storage medium storing a computer program that, when run on a computer, causes the computer to perform the method provided in the first aspect.
[0043] Eighthly, this application provides a computer-readable storage medium storing a computer program that, when run on a computer, causes the computer to perform the method provided in the second aspect.
[0044] Ninthly, this application provides a computer program that, when executed by a computer, performs the method provided in the first aspect.
[0045] In a tenth aspect, this application provides a computer program that, when executed by a computer, performs the method provided in the second aspect.
[0046] In one possible design, the programs in the ninth and tenth aspects may be stored wholly or partially on a storage medium packaged with the processor, or in part or entirely on a memory not packaged with the processor. Attached Figure Description
[0047] Figure 1 This is a diagram illustrating files uploaded by developers in existing related technologies;
[0048] Figure 2 This is a schematic diagram of the structure of an electronic device provided in one embodiment of this application;
[0049] Figure 3 A software structure block diagram of an electronic device 100 provided in one embodiment of this application;
[0050] Figure 4 This is a schematic diagram of the structure of a server provided in one embodiment of this application;
[0051] Figure 5 This is a schematic diagram illustrating the addition of a matching identifier to a function package according to one embodiment of this application;
[0052] Figure 6 This is a schematic diagram illustrating how a server unpacks the entire application package, as provided in one embodiment of this application.
[0053] Figure 7 This is a schematic diagram of an electronic device search function package provided in one embodiment of this application;
[0054] Figure 8 A flowchart illustrating a method for loading a function package according to an embodiment of this application;
[0055] Figure 9 A schematic diagram showing the interface of a first application provided in one embodiment of this application;
[0056] Figure 10 A schematic diagram of a function selection interface provided in one embodiment of this application;
[0057] Figure 11 A flowchart illustrating a method for loading a function package as provided in another embodiment of this application;
[0058] Figure 12 A flowchart illustrating a method for loading a function package as provided in another embodiment of this application;
[0059] Figure 13A flowchart illustrating a method for loading a function package as provided in another embodiment of this application;
[0060] Figure 14 A flowchart of another embodiment of the loading method for the function package of this application;
[0061] Figure 15 A schematic diagram of the structure of an electronic device provided in another embodiment of this application;
[0062] Figure 16 This is a schematic diagram of the structure of a server provided in another embodiment of this application. Detailed Implementation
[0063] The terminology used in the implementation section of this application is for the purpose of explaining specific embodiments of this application only, and is not intended to limit this application.
[0064] As apps become more complex, their installation packages also grow larger. Users have to download the entire installation package to use a particular function of the app, resulting in wasted data usage. Furthermore, the time required for users to download and install the app is longer, and the installation package occupies more storage space.
[0065] To address the issue of redundant resource files in app installation packages, one existing solution provides an on-demand resource download approach. However, this approach only provides on-demand download of resources; for the executable code packages within the app, all of them still need to be downloaded and installed. As a result, the waiting time for users to download and install the app is relatively long, and the app installation package occupies a significant amount of storage space.
[0066] Another solution provided by existing related technologies is the App Bundle solution. App Bundle goes a step further than the above solutions. It not only solves the problem of redundant resources and redundant libraries, but also proposes a sub-package scheme that allows App developers to split the App into multiple sub-functional packages according to functional modules. When users download and install the App, they can install only some frequently used functional packages, specific libraries, and resource packages, thereby reducing the data size of the App when it is downloaded for the first time and reducing the waste of user data. Other functional packages are downloaded and installed according to the user's needs.
[0067] Specifically, using the App Bundle solution involves several steps:
[0068] Step 1: Developers create a project in Android Studio, reference the Google Mobile Services (GMS) dependency package (com.google.android.play:core:xxx), and determine the dynamically installed and downloaded functional module Foo during modular development. Write the logic code for downloading the Foo functional module in the main functional module Base. This logic code can trigger the download in the user interface C. Then, compile the above logic code to generate the bundle.aab file.
[0069] Step 2: The developer uploads the bundle.aab file to the Google Play app store. Figure 1 This is an illustration of files uploaded by developers in existing related technologies, such as... Figure 1 As shown, the file uploaded by the developer is bundle.aab. The application contains two functional modules: Base and Foo. Foo is a module that needs to be dynamically loaded on demand. The Play Store uses tools to split the application into multiple Android application packages (APKs). The execution logic code for Base is in base_master.apk, and the execution logic code for Foo is in foo_master.apk.
[0070] Step 3: The user downloads the app from the Play Store and runs the main function Base. Within Base's user interface C, the code for downloading the package foo_master.apk corresponding to the Foo module is triggered. The logic for downloading and installing Foo is jointly completed by the GMS and Play Store clients.
[0071] As can be seen from the above description, the App Bundle solution has many limitations regarding on-demand downloads of "other feature packages." For example, this on-demand download functionality requires the use of GMS; app developers must explicitly write the logic code for the download function module Foo in the main function module Base; and the on-demand downloadable feature packages can only be those in the currently running app, making the on-demand download functionality inflexible. Furthermore, Foo can only be downloaded via Base, and the functions in Foo can only be executed within Base.
[0072] Based on the above problems, this application provides a method for loading function packages, which enables electronic devices to download function packages according to the description information of the functions required by the currently running application.
[0073] The function package loading method provided in this application embodiment can be applied to electronic devices, wherein the aforementioned electronic devices can be smartphones, tablets, wearable devices, in-vehicle devices, augmented reality (AR) / virtual reality (VR) devices, laptops, ultra-mobile personal computers (UMPCs), netbooks, or personal digital assistants (PDAs), etc.; this application embodiment does not impose any restrictions on the specific type of electronic device.
[0074] For example, Figure 2 This is a schematic diagram of the structure of an electronic device provided in one embodiment of this application, as shown below. Figure 2 As shown, 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, a headphone jack 170D, a sensor module 180, buttons 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, a barometric pressure sensor 180C, a magnetic sensor 180D, an accelerometer sensor 180E, a distance sensor 180F, a proximity 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.
[0075] It is understood that the structures illustrated in the embodiments of this application do not constitute a specific limitation on the electronic device 100. In other embodiments of this application, the electronic device 100 may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
[0076] Processor 110 may include one or more processing units, such as application processors (APs), modem processors, graphics processing units (GPUs), image signal processors (ISPs), controllers, video codecs, digital signal processors (DSPs), baseband processors, and / or neural network processing units (NPUs). These different processing units may be independent devices or integrated into one or more processors.
[0077] The controller can generate operation control signals based on the instruction opcode and timing signals to complete the control of instruction fetching and execution.
[0078] The processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. This memory can store instructions or data that the processor 110 has just used or that are used repeatedly. If the processor 110 needs to use the instruction or data again, it can retrieve it directly from the memory. This avoids repeated accesses, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
[0079] In some embodiments, the processor 110 may include one or more interfaces. 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, etc.
[0080] The I2C interface is a bidirectional synchronous serial bus, including a serial data line (SDA) and a serial clock line (DCL). In some embodiments, the processor 110 may include multiple I2C buses. The processor 110 can couple to the touch sensor 180K, charger, flash, camera 193, etc., through different I2C bus interfaces. For example, the processor 110 can couple to the touch sensor 180K through the I2C interface, enabling the processor 110 and the touch sensor 180K to communicate through the I2C bus interface, thereby realizing the touch function of the electronic device 100.
[0081] The I2S interface can be used for audio communication. In some embodiments, the processor 110 may 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 to enable the function of answering phone calls through a Bluetooth headset.
[0082] 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 the 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 phone calls through a Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
[0083] 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 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 to enable music playback through Bluetooth headphones.
[0084] The MIPI interface can be used to connect the processor 110 to peripheral devices such as the display screen 194 and the camera 193. The MIPI interface includes a camera serial interface (CSI) and a display serial interface (DSI). In some embodiments, the processor 110 and the camera 193 communicate via the CSI interface to enable the electronic device 100 to capture images. The processor 110 and the display screen 194 communicate via the DSI interface to enable the electronic device 100 to display images.
[0085] The GPIO interface can be configured via software. It can be configured as a control signal or a data signal. In some embodiments, the GPIO interface can be used to connect the processor 110 to a camera 193, a display screen 194, a wireless communication module 160, an audio module 170, a 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.
[0086] USB port 130 is a USB standard compliant interface, specifically a Mini USB port, Micro USB port, USB Type-C port, etc. USB port 130 can be used to connect a charger to charge electronic device 100, and can also be used for data transfer between electronic device 100 and peripheral devices. It can also be used to connect headphones for audio playback. This interface can also be used to connect other electronic devices, such as AR devices.
[0087] It is understood that the interface connection relationships between the modules illustrated in the embodiments of the present invention are merely illustrative and do not constitute a structural limitation on the electronic device 100. In other embodiments of this application, the electronic device 100 may also employ different interface connection methods or combinations of multiple interface connection methods as described in the above embodiments.
[0088] The charging management module 140 receives charging input from a charger. The charger can be a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 receives charging input from the wired charger via a USB interface 130. In some wireless charging embodiments, the charging management module 140 receives 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 supply power to the electronic device 100 via the power management module 141.
[0089] The power management module 141 connects 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, providing power to the processor 110, internal memory 121, display screen 194, camera 193, and wireless communication module 160, etc. The power management module 141 can also monitor parameters such as battery capacity, battery cycle count, and battery health status (leakage current, impedance). In some other embodiments, the power management module 141 may also be located within the processor 110. In other embodiments, the power management module 141 and the charging management module 140 may be located in the same device.
[0090] The wireless communication function of electronic device 100 can be realized through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor and baseband processor, etc.
[0091] 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 one or more communication frequency bands. Different antennas can also be multiplexed to improve antenna utilization. For example, antenna 1 can be multiplexed as a diversity antenna for a wireless local area network. In some other embodiments, the antennas can be used in conjunction with tuning switches.
[0092] The mobile communication module 150 can provide solutions for wireless communication, including 2G / 3G / 4G / 5G, applied to the electronic device 100. The mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc. The mobile communication module 150 can receive electromagnetic waves via antenna 1, and perform filtering, amplification, and other processing on the received electromagnetic waves before transmitting them to a modem processor for demodulation. The mobile communication module 150 can also amplify the signal modulated by the modem processor and convert it into electromagnetic waves for radiation via antenna 1. In some embodiments, at least some functional modules of the mobile communication module 150 may be housed in the processor 110. In some embodiments, at least some functional modules of the mobile communication module 150 and at least some modules of the processor 110 may be housed in the same device.
[0093] The modem processor may include a modulator and a demodulator. The modulator modulates the low-frequency baseband signal to be transmitted into a mid-to-high frequency signal. The demodulator demodulates 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 processing by the baseband processor, the low-frequency baseband signal is transmitted to the application processor. The application processor outputs sound signals through an audio device (not limited to speaker 170A, receiver 170B, etc.) or displays images or videos through the display screen 194. In some embodiments, the modem processor may be a separate device. In other embodiments, the modem processor may be independent of the processor 110 and may be housed in the same device as the mobile communication module 150 or other functional modules.
[0094] The wireless communication module 160 can provide solutions for wireless communication applications on the electronic device 100, including wireless local area networks (WLANs) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), and infrared (IR) technologies. The wireless communication module 160 can be one or more devices integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via antenna 2, performs frequency modulation and filtering of the electromagnetic wave signals, and sends the processed signal to processor 110. The wireless communication module 160 can also receive signals to be transmitted from processor 110, perform frequency modulation and amplification, and convert them into electromagnetic waves for radiation via antenna 2.
[0095] In some embodiments, antenna 1 of electronic device 100 is coupled to mobile communication module 150, and antenna 2 is coupled to wireless communication module 160, enabling electronic device 100 to communicate with networks and other devices via wireless communication technology. The wireless communication technology may include Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Time Division Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), BT, GNSS, WLAN, NFC, FM, and / or IR technologies, etc. The GNSS may include the Global Positioning System (GPS), the Global Navigation Satellite System (GLONASS), the BeiDou Navigation Satellite System (BDS), the Quasi-Zenith Satellite System (QZSS), and / or satellite-based augmentation systems (SBAS).
[0096] Electronic device 100 implements display functions through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, connected to the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations and for graphics rendering. Processor 110 may include one or more GPUs, which execute program instructions to generate or modify display information.
[0097] Display screen 194 is used to display images, videos, etc. Display screen 194 includes a display panel. The display panel may 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 miniature LED, a microLED, a quantum dot light-emitting diode (QLED), etc. In some embodiments, electronic device 100 may include one or N displays 194, where N is a positive integer greater than 1.
[0098] Electronic device 100 can perform shooting functions through ISP, camera 193, video codec, GPU, display 194 and application processor.
[0099] The ISP (Image Signal Processor) is used to process data fed back from the camera 193. For example, when taking a picture, 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, and the camera's photosensitive element transmits the electrical signal to the ISP for processing, transforming it into an image visible to the naked eye. The ISP can also perform algorithmic optimization of image noise, brightness, and skin tone. The ISP can also optimize parameters such as exposure and color temperature of the shooting scene. In some embodiments, the ISP can be set in the camera 193.
[0100] Camera 193 is used to capture still images or videos. An object is projected onto a photosensitive element by generating an optical image through the lens. 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, which is then passed to an ISP for conversion into a digital image signal. The ISP outputs the digital image signal to a DSP for processing. The DSP converts the digital image signal into image signals in standard RGB, YUV, or other formats. In some embodiments, the electronic device 100 may include one or N cameras 193, where N is a positive integer greater than 1.
[0101] Digital signal processors (DSPs) are used to process digital signals. Besides digital image signals, they can also process other digital signals. For example, when electronic device 100 selects a frequency, the DSP can perform Fourier transforms on the frequency energy.
[0102] Video codecs are used to compress or decompress digital video. Electronic device 100 may support one or more video codecs. Thus, electronic device 100 can play or record videos in various encoding formats, such as Moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, MPEG4, etc.
[0103] An NPU (Neural Processing Unit) is a computational processor for neural networks (NNs). By borrowing the structure of biological neural networks, such as the transmission patterns between neurons in the human brain, it can rapidly process input information and continuously learn on its own. NPUs enable intelligent cognitive applications in electronic devices, such as image recognition, facial recognition, speech recognition, and text understanding.
[0104] The external storage interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device 100. The external memory card communicates with the processor 110 through the external storage interface 120 to perform data storage functions. For example, music, video, and other files can be saved on the external memory card.
[0105] Internal memory 121 can be used to store computer executable program code, which includes instructions. Internal memory 121 may include a program storage area and a data storage area. The program storage area may store the operating system, at least one application program required for a function (such as sound playback, image playback, etc.), etc. The data storage area may store data created during the use of electronic device 100 (such as audio data, phonebook, etc.). Furthermore, internal memory 121 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, universal flash storage (UFS), etc. Processor 110 executes various functional applications and data processing of electronic device 100 by running instructions stored in internal memory 121 and / or instructions stored in memory located in the processor.
[0106] Electronic device 100 can implement audio functions, such as music playback and recording, through audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, and application processor.
[0107] The audio module 170 is used to convert digital audio information into analog audio signals for output, and also to convert analog audio input into digital audio signals. The audio module 170 can also be used for encoding and decoding audio signals. In some embodiments, the audio module 170 may be located in the processor 110, or some functional modules of the audio module 170 may be located in the processor 110.
[0108] The speaker 170A, also known as a "loudspeaker," is used to convert audio electrical signals into sound signals. The electronic device 100 can listen to music or make hands-free calls through the speaker 170A.
[0109] The receiver 170B, also known as the "earpiece," is used to convert audio electrical signals into sound signals. When the electronic device 100 answers a telephone call or voice message, the receiver 170B can be brought close to the ear to listen to the voice.
[0110] Microphone 170C, also known as a "microphone" or "voice transducer," is used to convert sound signals into electrical signals. When making a phone call or sending a voice message, the user can speak by bringing their mouth close to microphone 170C, inputting the sound signal into microphone 170C. Electronic device 100 may have at least one microphone 170C. In some embodiments, electronic device 100 may have two microphones 170C, which, in addition to collecting sound signals, can also perform noise reduction. In other embodiments, electronic device 100 may also have three, four, or more microphones 170C, which can collect sound signals, reduce noise, identify the sound source, and perform directional recording, etc.
[0111] The 170D headphone jack is used to connect wired headphones. The 170D headphone jack can be a USB 130 interface or a 3.5mm Open Mobile Terminal Platform (OMTP) standard interface, a CTIA (Cellular Telecommunications Industry Association of the USA) standard interface.
[0112] Pressure sensor 180A is used to sense pressure signals and convert them into electrical signals. In some embodiments, pressure sensor 180A can be disposed on display screen 194. There are many types of pressure sensors 180A, such as resistive pressure sensors, inductive pressure sensors, and capacitive pressure sensors. A capacitive pressure sensor may include at least two parallel plates with conductive material. When force is applied to pressure sensor 180A, the capacitance between the electrodes changes. Electronic device 100 determines the pressure intensity based on the change in capacitance. When a touch operation is applied to display screen 194, electronic device 100 detects the intensity of the touch operation based on pressure sensor 180A. Electronic device 100 can also calculate the touch position based on the detection signal from pressure sensor 180A. In some embodiments, touch operations applied to the same touch position but with different touch operation intensities can correspond to different operation commands. For example, when a touch operation with an intensity less than a first pressure threshold is applied to the SMS application icon, a command to view an SMS is executed. When a touch operation with an intensity greater than or equal to the first pressure threshold is applied to the SMS application icon, a command to create a new SMS is executed.
[0113] The gyroscope sensor 180B can be used to determine the motion attitude of the electronic device 100. In some embodiments, the gyroscope sensor 180B can determine the angular velocity of the electronic device 100 about three axes (i.e., the x, y, and z axes). The gyroscope sensor 180B can be used for image stabilization. For example, when the shutter is pressed, the gyroscope sensor 180B detects the angle of the shake of the electronic device 100, calculates the distance that the lens module needs to compensate based on the angle, and allows the lens to counteract the shake of the electronic device 100 by moving in the opposite direction, thus achieving image stabilization. The gyroscope sensor 180B can also be used in navigation and motion-sensing game scenarios.
[0114] The barometric pressure sensor 180C is used to measure air pressure. In some embodiments, the electronic device 100 calculates altitude using the air pressure value measured by the barometric pressure sensor 180C to assist in positioning and navigation.
[0115] 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 cover. 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 using the magnetic sensor 180D. Then, based on the detected opening and closing state of the cover or the flip cover, features such as automatic flip unlocking can be set.
[0116] The 180E accelerometer can detect the magnitude of acceleration of electronic device 100 in various directions (typically three axes). When electronic device 100 is stationary, it can detect the magnitude and direction of gravity. It can also be used to identify the posture of electronic devices and applied to applications such as screen orientation switching and pedometers.
[0117] A distance sensor 180F is used to measure distance. Electronic device 100 can measure distance via infrared or laser. In some embodiments, during a shooting scene, electronic device 100 can utilize the distance sensor 180F to measure distance for rapid focusing.
[0118] The proximity sensor 180G may include, for example, a light-emitting diode (LED) and a light detector, such as a photodiode. The LED may be an infrared LED. The electronic device 100 emits infrared light outward through the LED. The electronic device 100 uses the 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 may use the proximity sensor 180G to detect when a user holds the electronic device 100 close to their ear for a call, so as to automatically turn off the screen to save power. The proximity sensor 180G can also be used in holster mode and pocket mode for automatic unlocking and locking of the screen.
[0119] The ambient light sensor 180L is used to sense the brightness of ambient light. The electronic device 100 can adaptively adjust the brightness of the display screen 194 based on the sensed ambient light brightness. The ambient light sensor 180L can also be used to automatically adjust the white balance when taking pictures. The ambient light sensor 180L can also work with the proximity sensor 180G to detect whether the electronic device 100 is in a pocket to prevent accidental touches.
[0120] The fingerprint sensor 180H is used to collect fingerprints. The electronic device 100 can utilize the characteristics of the collected fingerprints to achieve fingerprint unlocking, accessing application locks, taking photos with fingerprints, answering calls with fingerprints, etc.
[0121] Temperature sensor 180J is used to detect temperature. In some embodiments, electronic device 100 uses the temperature detected by temperature sensor 180J to execute a temperature handling strategy. For example, when the temperature reported by temperature sensor 180J exceeds a threshold, electronic device 100 performs thermal protection by reducing the performance of a processor located near temperature sensor 180J to reduce power consumption. In other embodiments, when the temperature is below another threshold, electronic device 100 heats battery 142 to prevent abnormal shutdown of electronic device 100 due to low temperature. In still other embodiments, when the temperature is below yet another threshold, electronic device 100 boosts the output voltage of battery 142 to prevent abnormal shutdown due to low temperature.
[0122] Touch sensor 180K, also known as a "touch device," can be located on display screen 194. The touch sensor 180K and display screen 194 together form a touchscreen, also known as a "touchscreen." Touch sensor 180K detects touch operations applied to or near it. The touch sensor can transmit the detected touch operation to the application processor to determine the type of touch event. Visual output related to the touch operation can be provided through display screen 194. In other embodiments, touch sensor 180K may also be located on the surface of electronic device 100, in a different position than display screen 194.
[0123] The bone conduction sensor 180M can acquire vibration signals. In some embodiments, the bone conduction sensor 180M can acquire vibration signals from the vibrating bone segments of the human vocal cords. The bone conduction sensor 180M can also contact the human pulse to receive blood pressure signals. In some embodiments, the bone conduction sensor 180M can also be incorporated into headphones to form bone conduction headphones. The audio module 170 can parse the voice signals from the vibrating bone segments of the vocal cords acquired by the bone conduction sensor 180M to realize voice functionality. The application processor can parse heart rate information from the blood pressure signals acquired by the bone conduction sensor 180M to realize heart rate detection functionality.
[0124] Buttons 190 include a power button, volume buttons, etc. Buttons 190 can be mechanical buttons or touch-sensitive buttons. Electronic device 100 can receive button input and generate key signal inputs related to user settings and function control of electronic device 100.
[0125] Motor 191 can generate vibration alerts. Motor 191 can be used for incoming call vibration alerts or for touch vibration feedback. For example, different vibration feedback effects can correspond to touch operations performed on different applications (such as taking photos, playing audio, etc.). Motor 191 can also correspond to different vibration feedback effects for touch operations performed on different areas of the display screen 194. Different application scenarios (such as time reminders, receiving messages, alarm clocks, games, etc.) can also correspond to different vibration feedback effects. The touch vibration feedback effect can also be customized.
[0126] Indicator 192 can be an indicator light, used to indicate charging status, power changes, or to indicate messages, missed calls, notifications, etc.
[0127] The SIM card interface 195 is used to connect a SIM card. The SIM card can be inserted into or removed from the SIM card interface 195 to make contact with and separate from the electronic device 100. The electronic device 100 can support one 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 simultaneously. The multiple cards can be of the same or different types. The SIM card interface 195 is also compatible with different types of SIM cards. The SIM card interface 195 is also compatible with external memory cards. The electronic device 100 interacts with the network through the SIM card to realize functions such as calls and data communication. In some embodiments, the electronic device 100 uses an eSIM, i.e., an embedded SIM card. The eSIM card can be embedded in the electronic device 100 and cannot be separated from the electronic device 100.
[0128] The software system of electronic device 100 can adopt a layered architecture, event-driven architecture, microkernel architecture, microservice architecture, or cloud architecture. This embodiment of the invention uses the layered architecture Android system as an example to exemplify the software structure of electronic device 100.
[0129] Figure 3 This is a software structure block diagram of an electronic device 100 provided in one embodiment of this application.
[0130] A layered architecture divides software into several layers, each with a clear role and function. Layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers, from top to bottom: the application layer, the application framework layer, the Android runtime and system libraries, and the kernel layer.
[0131] The application layer can include a series of application packages.
[0132] like Figure 3 As shown, the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and SMS.
[0133] The application framework layer provides application programming interfaces (APIs) and a programming framework for applications in the application layer. The application framework layer includes some predefined functions.
[0134] like Figure 3 As shown, the application framework layer may include a window manager, content provider, view system, phone manager, resource manager, notification manager, etc.
[0135] The window manager is used to manage windowed applications. It can retrieve screen size, determine the presence of a status bar, lock the screen, and capture screenshots, among other things.
[0136] Content providers store and retrieve data, making that data accessible to applications. This data may include videos, images, audio, made and received phone calls, browsing history and bookmarks, phone books, etc.
[0137] A view system includes visual controls, such as controls for displaying text and controls for displaying images. View systems can be used to build applications. A display interface can consist of one or more views. For example, a display interface including a text notification icon could include views for displaying text and views for displaying images.
[0138] The phone manager is used to provide communication functions for electronic device 100. For example, it manages call status (including connection and disconnection).
[0139] The file explorer provides applications with various resources, such as localized strings, icons, images, layout files, video files, and more.
[0140] The notification manager allows applications to display notifications in the status bar. These notifications can be used to deliver informational messages and can disappear automatically after a short pause, requiring no user interaction. For example, the notification manager can be used to notify users of completed downloads or message alerts. The notification manager can also display notifications as icons or scrolling text in the top status bar, such as notifications from background applications, or as dialog boxes on the screen. Examples include displaying text messages in the status bar, emitting sounds, vibrating electronic devices, and flashing indicator lights.
[0141] The Android Runtime consists of core libraries and a virtual machine. The Android runtime is responsible for the scheduling and management of the Android system.
[0142] The core library consists of two parts: one part is the functionalities that need to be called by the Java language, and the other part is the Android core library.
[0143] The application layer and application framework layer run in a virtual machine. The virtual machine executes the Java files of the application layer and application framework layer as binary files. The virtual machine is used to perform functions such as object lifecycle management, stack management, thread management, security and exception management, and garbage collection.
[0144] System libraries can include multiple functional modules. For example: surface manager, media libraries, 3D graphics processing libraries (e.g., OpenGL ES), 2D graphics engines (e.g., SGL), etc.
[0145] The Surface Manager is used to manage the display subsystem and provides the blending of 2D and 3D layers for multiple applications.
[0146] The media library supports playback and recording of various common audio and video formats, as well as still image files. It supports multiple audio and video encoding formats, such as MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG.
[0147] The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing.
[0148] A 2D graphics engine is a graphics engine for 2D drawing.
[0149] The kernel layer is the layer between hardware and software. The kernel layer contains at least the display driver, camera driver, audio driver, and sensor driver.
[0150] Furthermore, the implementation of the function package loading method provided in this application involves not only the electronic device side, but also the server side and the App development side. The aforementioned server can be a cloud server, such as a cloud application marketplace server; this application does not impose any restrictions on the specific type of server.
[0151] For example, Figure 4 This is a schematic diagram of the structure of a server provided in one embodiment of this application, as shown below. Figure 4 As shown, server 400 includes processor 410 and communication interface 420. Optionally, server 400 may also include memory 430. The processor 410, communication interface 420, and memory 430 can communicate with each other via internal connection paths to transmit control and / or data signals. The memory 430 is used to store computer programs, and the processor 410 is used to retrieve and run the computer programs from the memory 430.
[0152] The processor 410 and memory 430 can be combined into a single processing device, but more commonly they are independent components. The processor 410 executes the program code stored in the memory 430. In specific implementations, the memory 430 can be integrated into the processor 410, or it can be independent of the processor 410.
[0153] In addition, to further enhance the functionality of the server 400, the server 400 may also include one or more of an input unit 460 and a display unit 470.
[0154] Optionally, the server 400 may also include a power supply 450 for providing power to various devices or circuits in the server 400.
[0155] It should be understood that Figure 4 The processor 410 in the server 400 shown can be a system-on-a-chip (SoC). The processor 410 may include a central processing unit (CPU) and may further include other types of processors, such as a graphics processing unit (GPU).
[0156] For ease of understanding, the following embodiments of this application will be described using the following methods: Figure 2 and Figure 3 The electronic device with the structure shown has Figure 4 Taking the server with the structure shown as an example, and in conjunction with the accompanying drawings and application scenarios, the loading method of the function package provided in this application embodiment will be specifically described.
[0157] First, see Figure 5 When developing an app, developers add matching identifiers to the dynamic features (hereinafter referred to as feature packages) that they want to be triggered. Figure 5 This is a schematic diagram illustrating the addition of a matching identifier to a function package according to one embodiment of this application, such as... Figure 5 As shown, app developers add matching identifiers to feature packages when developing applications. Each feature package's matching identifier indicates the type of functionality provided by that package. For example, Figure 5 In the above, the matching identifier of function package 1 is used to indicate the type of function provided by function package 1, and the matching identifier of function package 2 is used to indicate the type of function provided by function package 2.
[0158] In a specific implementation, the matching identifier for each function package may include the function category code of the function provided by the corresponding function package; the above function category code is set according to the predefined function classification code; of course, the above matching identifier may also include one or more of the function description, manufacturer information and version information of the corresponding function package, and this embodiment does not limit the information included in the above matching identifier.
[0159] For example, the functional classification coding can be as follows:
[0160] {
[0161] 0001: Travel, which can be further subdivided into: 01: Booking air tickets; 02: Booking train tickets; 03: Taking a taxi;
[0162] 0002: Payment, which can be further subdivided into: 01: xx; 02: xx;
[0163] 0003:xxx, where xxx can further include subcategories: 01:xx; 02:xx;
[0164] ...
[0165] }
[0166] This way, each specific feature package will have a unique main category and subcategory. Based on this, app developers can set a matching identifier for each feature package, as shown below:
[0167] {
[0168] Functional category code: 000102;
[0169] Function Description: Book train tickets for your trip;
[0170] Manufacturer information: ***;
[0171] Version information: 1.0;
[0172] }
[0173] Secondly, the app developer uploads the full application package to the cloud application marketplace. The cloud application marketplace's server (400) can unpack the full application package, parse the resulting function packages to obtain a matching identifier for each function package, and record the matching identifier for each function package in a function package matching table. Simultaneously, the function package matching table records the dependency packages of each function package, such as... Figure 6 As shown, Figure 6 This is a schematic diagram illustrating how a server unpacks the full application package, as provided in one embodiment of this application.
[0174] The function packet matching table for a server's 400 record can be shown below: 000102:
[0176] Provider: Manufacturer 1, Application Package 1, Quality Rate (Evaluation Index): xx%, Function Description: xx, Download Address: url1;
[0177] Provider: Manufacturer 2, Application Package 2, Quality Rate (Evaluation Index): xx%, Function Description: xx, Download Address: url2; 000201:
[0179] Provider: Manufacturer 3, Application Package 3, Quality Rate (Evaluation Index): xx%, Function Description: xx, Download Address: url3; 000202:
[0181] null; 000203:
[0183] Provider: Manufacturer 4, belongs to application package 3, quality rate (evaluation index): xx%, function description: xx, download address: url4;
[0184] The download addresses mentioned above include the download addresses for each function package and its dependent packages.
[0185] Understandably, in practice, server 400 can perform the above-mentioned unpacking, parsing, and recording operations through processor 410.
[0186] Finally, see Figure 7 , Figure 7 This is a schematic diagram of an electronic device search function package provided in one embodiment of this application. A first App is running in the electronic device 100. If the electronic device 100 detects the first operation information of the user in the interface displayed by the first App, the electronic device 100 can respond to the first operation information by displaying a function selection interface. Then, the electronic device 100 detects the second operation information of the user selecting function F, and responds to the second operation information by obtaining the description information of function F. The function F may be a function developed by the developer of the running first App but not currently downloaded, or it may be a function contained in other Apps installed on the electronic device 100.
[0187] For example, the description information for function F can be as follows:
[0188] {
[0189] Functional category code: 000102;
[0190] Required function description: Booking train tickets;
[0191] }
[0192] or,
[0193] {
[0194] Functional category code: 000202;
[0195] Required functionality: Payment;
[0196] }
[0197] Then, the first App sends the description information of function F through the general interface I. After receiving the description information, the persistent background service of electronic device 100 searches for a function package whose matching identifier matches the description information of function F in the function packages already installed on electronic device 100. If no match is found locally, electronic device 100 sends the description information of function F to the server 400 of the cloud application market. The server 400 uses the same method to match. After a successful match, it sends download information to electronic device 100. The download information includes the download address of the function package corresponding to function F and its dependent packages. Then, the persistent background service in electronic device 100 downloads the function package corresponding to function F and its dependent packages according to the download information and the function packages already installed on electronic device 100, and loads the function package corresponding to function F.
[0198] Specifically, in the function packages installed on the electronic device 100, the function package whose matching identifier matches the description information of function F can be found by: searching the list of installed functions of the electronic device 100 for the function package whose matching identifier matches the description information of function F; wherein, the list of installed functions stores the entries corresponding to the applications installed on the electronic device 100, and the entries include the matching identifiers of the function packages installed by the applications.
[0199] For example, the list of installed functions of electronic device 100 can be shown in Table 1.
[0200] Table 1
[0201]
[0202] Accordingly, the download information sent by server 400 includes the application to which the function package corresponding to function F belongs. Thus, after downloading and loading the function package corresponding to function F and its dependent packages, the electronic device 100 can retrieve the entry corresponding to the application to which the loaded function package belongs from its installed function list, and add a matching identifier for the loaded function package to the retrieved entry. In specific implementation, retrieving the entry corresponding to the application to which the loaded function package belongs from the installed function list of the electronic device 100 can be done as follows: if an entry corresponding to the application to which the loaded function package belongs exists in the installed function list of the electronic device 100, the matching identifier for the loaded function package can be directly added to that entry; if an entry corresponding to the application to which the loaded function package belongs does not exist in the installed function list of the electronic device 100, an entry corresponding to the application to which the loaded function package belongs needs to be created in the installed function list of the electronic device 100, and the matching identifier for the loaded function package needs to be added to that entry.
[0203] Here, assuming that the function category code carried in the description information of function F is 000203, the server 400 finds that the function package with the matching identifier 000203 belongs to application package 3. After application package 3 is installed on electronic device 100, it becomes the third app. Thus, after electronic device 100 downloads the function package corresponding to function F and its dependent packages, and loads the function package corresponding to function F, it needs to obtain the table entry corresponding to the third app from the list of installed functions of electronic device 100, and add the matching identifier 000203 to the obtained table entry, as shown in Table 2.
[0204] Table 2
[0205]
[0206] Understandably, in specific implementation, the electronic device 100 can detect the first operation information and the second operation information through the processor 110 and the touch sensor 180K; it can display the interface through the processor 110 and the display screen 194; and it can send and receive information with the server 400 through the processor 110, the antenna 1 and the mobile communication module 150, and / or through the processor 110, the antenna 2 and the wireless communication module 160.
[0207] In a practical implementation, the server 400 can send and receive information with the electronic device 100 through the processor 410 and the communication interface 420.
[0208] In conjunction with the above embodiments and related drawings, this application provides a method for loading a function package. The implementation of this method involves both an electronic device 100 and a server 400. Figure 8 A flowchart of a method for loading a function package provided in one embodiment of this application is shown below. Figure 8 As shown, the loading method for the above-mentioned function package may include:
[0209] Step 801: The electronic device detects the first operation information displayed by the user in the interface of the currently running first application.
[0210] Specifically, the electronic device 100 can detect the first operation information through the processor 110 and the touch sensor 180K.
[0211] The first operation information mentioned above can be the user's click, double-click, long-press, or drawing of a specific graphic on the interface displayed by the first application, or the first operation information can be the user's click, double-click, or long-press operation on a specific icon on the interface displayed by the first application. This embodiment does not limit the operation form of the first operation information.
[0212] This embodiment uses the first operation information described above as an example of a user clicking on a specific icon in the interface displayed by the first application. See [link to previous document]. Figure 9 , Figure 9 This is a schematic diagram showing the interface of a first application provided in one embodiment of this application. Figure 9 In the middle, the first operation information is the click operation on icon 91.
[0213] Step 802: In response to the first operation information mentioned above, display the function selection interface.
[0214] Specifically, the electronic device 100 can use the processor 110 and the display screen 194 to display the function selection interface.
[0215] For example, an example of a function selection interface could be as follows: Figure 10 As shown, Figure 10 This is a schematic diagram of a function selection interface provided in one embodiment of this application. Figure 10 In the middle, interface 1001 is the function selection interface.
[0216] Step 803: The second operation information of the user selecting the first function is detected.
[0217] Similarly, electronic device 100 can detect the second operation information through processor 110 and touch sensor 180K.
[0218] The second operation information mentioned above can be the user's click, double-click, or long-press operation on the function icon in the function selection interface. This embodiment does not limit the operation form of the second operation information. This embodiment takes the user's click operation on the function icon as the second operation information for explanation.
[0219] Step 804: In response to the second operation information mentioned above, obtain the description information of the first function.
[0220] Specifically, the electronic device 100 can acquire description information through the processor 110.
[0221] In a specific implementation, the processor 110 can obtain the description information of the function corresponding to the function icon from the local data of the first application based on the function icon.
[0222] Step 805: In the function packages already installed in the above-mentioned electronic device, search for the function package whose matching identifier matches the above description information.
[0223] In this embodiment, the process of the electronic device 100 searching for the function package can be as follows: Figure 7 As shown, it will not be elaborated further here.
[0224] Specifically, the electronic device 100 can perform the above-mentioned search operation through the processor 110.
[0225] Step 806: If not found, send the above description information to the server.
[0226] Step 807: Receive download information sent by the server. The download information includes information about the function package and information about the dependent packages of the function package. The function package includes function packages whose matching identifiers match the description information.
[0227] The information of the aforementioned function package may include the matching identifier and download address of the aforementioned function package. Of course, the information of the aforementioned function package may also include other information, such as the version information and / or manufacturer information of the function package, etc. This embodiment does not limit this.
[0228] The information about the dependency packages of the above-mentioned function package may include the matching identifier and download address of the dependency packages of the above-mentioned function package.
[0229] Step 808: Download the above-mentioned function package and its dependency packages, and silently install and load the above-mentioned function package.
[0230] In this embodiment, silent installation includes background installation without prompts or user intervention to disturb the user, resulting in a better user experience. It is understood that silent installation in this embodiment can also be replaced by non-silent installation, including prompting the user about the installation progress or results during installation, or requesting the user to confirm the installation.
[0231] Specifically, the electronic device 100 can transmit and receive information with the server 400 through the processor 110, antenna 1 and mobile communication module 150, and / or through the processor 110, antenna 2 and wireless communication module 160.
[0232] In the above-mentioned function package loading method, after the electronic device 100 detects the first operation information displayed by the user in the interface of the currently running first application, it displays a function selection interface in response to the first operation information; after detecting the second operation information of the user selecting the first function, it obtains the description information of the first function in response to the second operation information, and then searches for a function package whose matching identifier matches the description information in the function packages already installed on the electronic device 100. If no match is found, the description information is sent to the server, and the device receives the download information sent by the server. The download information includes the information of the function package whose matching identifier matches the description information and the information of the dependent packages of the function package. Finally, the electronic device 100 downloads the function package and the dependent packages of the function package, silently installs and loads the function package, thereby enabling the electronic device 100 to download function packages according to the description information of the functions required by the currently running application. Since the function package occupies a small amount of storage space, the waiting time for the user to download and install the function package can be shortened, saving the storage space of the electronic device 100.
[0233] Figure 11 A flowchart of a method for loading a function package provided in another embodiment of this application is shown below. Figure 11 As shown, this application Figure 8 In the illustrated embodiment, step 808 may include:
[0234] Step 1101: Based on the download information and the function packages already installed on the electronic device, determine the dependency packages to be downloaded.
[0235] Specifically, the electronic device 100 can obtain the uninstalled dependency packages in the download information based on the matching identifier of the dependency packages in the download information and the function packages that the electronic device 100 has installed. The aforementioned uninstalled dependency packages are the dependency packages to be downloaded.
[0236] Specifically, the electronic device 100 can use the processor 110 to determine the dependency packages to be downloaded.
[0237] Step 1102: Download the above-mentioned function package and the above-mentioned dependency package to be downloaded, and silently install and load the above-mentioned function package.
[0238] In this embodiment, the electronic device 100 can determine the dependency packages to be downloaded based on the download information and the function packages already installed on the electronic device. Then, it only needs to download the function packages and the dependency packages to be downloaded, silently installs and loads the function packages, thereby further reducing the installation packages that the electronic device 100 needs to download, further shortening the user's waiting time, and saving the storage space of the electronic device. In this embodiment, silent installation includes background installation without prompts or user operations to disturb the user, resulting in a better user experience. It is understood that the silent installation in this embodiment can also be replaced by a non-silent installation method, including prompting the user about the installation progress or installation result during installation, or requesting the user to confirm the installation.
[0239] Figure 12 This is a flowchart of a method for loading a function package provided in another embodiment of this application. In this embodiment, the above-described information may include: the function category code of the function corresponding to the above-described function icon, and the above-described matching identifier may include: the function category code of the function provided by the above-described function package; such as Figure 12 As shown, step 805 may include:
[0240] Step 1201: In the function packages installed on the electronic device, search according to the function category code in the above description information to obtain the function package whose function category code in the matching identifier matches the function category code in the above description information.
[0241] For example, if the description information of the function corresponding to the function icon selected by the user has a function category code of 000102, then the electronic device 100 can search for the function package with the function category code of 000102 in the installed function packages based on 000102, and obtain the function package with the matching identifier.
[0242] Furthermore, after step 1201, the following may also be included:
[0243] Step 1202: If a matching package with the above description information is found in the package already installed on the above electronic device, the matching package is loaded in the first application. The matching package is a package already installed in the second application, and the second application is installed on the above electronic device.
[0244] In other words, the function package that the electronic device 100 finds and matches the above description information can be a function package that has been installed in the second application. There is no restriction that the function package found must be a function package in the first application. After finding a matching function package, the matching function package can be loaded directly in the first application without jumping to the second application.
[0245] Furthermore, the above description information may also include the manufacturer information and / or version information of the first application; the above matching identifier may also include the manufacturer information and / or version information of the above function package; thus, before loading the matching function package in the first application, if at least two matching function packages are found among the function packages already installed on the electronic device, the matching degree between the above matching function package and the above first application is determined according to the above manufacturer information and / or version information; then the function package with the highest matching degree is loaded in the first application.
[0246] Taking the function category code 000102 in the description information as an example, suppose electronic device 100, based on 000102, finds two function packages with the same function category code 000102 in the installed function packages, namely function package 1 and function package 2. Now, suppose the description information includes the manufacturer and version information of the first application: manufacturer 1 and version 1.0. The matching identifier for function package 1 shows manufacturer 2 and version 1.0, while the matching identifier for function package 2 shows manufacturer 1 and version 2.0. Then, electronic device 100 can obtain the matching degree 1 between function package 1 and the first application, and the matching degree 2 between function package 2 and the first application, based on the aforementioned manufacturer and version information. Assuming matching degree 1 is 85% and matching degree 2 is 90%, then electronic device 100 loads function package 2 into the first application.
[0247] Specifically, the electronic device 100 can implement the operations of steps 1201 and 1202 through the processor 110.
[0248] Figure 13 A flowchart of a method for loading a function package provided in another embodiment of this application is shown below. Figure 13 As shown, the loading method for the above-mentioned function package may include:
[0249] Step 1301: The server receives description information sent by the electronic device. The description information is the description information of the first function selected by the user obtained by the electronic device. The description information is sent after no matching function package with the matching identifier is found in the function packages installed by the electronic device.
[0250] Step 1302: In the package matching table, search for information on the package whose matching identifier matches the above description information.
[0251] Specifically, the aforementioned matching identifier may include: the function category code of the function provided by the function package; the aforementioned function package matching table records the application package to which the function package belongs, as well as the matching identifier of the aforementioned function package, the information of the function package, and the information of the dependent packages of the aforementioned function package; the aforementioned description information may include: the function category code of the function corresponding to the aforementioned function icon; thus, in the function package matching table, finding the information of the function package whose matching identifier matches the aforementioned description information can be done by: searching in the function package matching table according to the function category code in the aforementioned description information to obtain the function package whose function category code in the matching identifier matches the function category code in the aforementioned description information.
[0252] Step 1303: Send download information to the electronic device. The download information includes information about the function package and information about the function package's dependent packages, so that the electronic device downloads the function package and the function package's dependent packages according to the download information.
[0253] For example, suppose the server's 400 record function package matching table is as follows: 000102:
[0255] Provider: Manufacturer 1, Application Package 1, Quality Rate (Evaluation Index): xx%, Function Description: xx, Download Address: url1;
[0256] Provider: Manufacturer 2, Application Package 2, Quality Rate (Evaluation Index): xx%, Function Description: xx, Download Address: url2; 000201:
[0258] Provider: Manufacturer 3, Application Package 3, Quality Rate (Evaluation Index): xx%, Function Description: xx, Download Address: url3; 000202:
[0260] null; 000203:
[0262] Provider: Manufacturer 4, belongs to application package 3, quality rate (evaluation index): xx%, function description: xx, download address: url4;
[0263] The download addresses mentioned above include the download addresses for each function package and its dependent packages.
[0264] If the description information sent by electronic device 100 is:
[0265] {
[0266] Functional category code: 000201;
[0267] Required functional description: ***;
[0268] }
[0269] Then, server 400 can search in the function package matching table according to the function category code 000201 in the above description information, and obtain the function package whose function category code matches 000201 in the matching identifier. Then, it sends the download address url3 of manufacturer 3 to electronic device 100. URL3 includes the download address of the function package with function category code 000201 in the matching identifier and the download address of the dependent package of the function package.
[0270] Furthermore, the aforementioned descriptive information may also include: the manufacturer information and / or version information of the first application; the aforementioned matching identifier may also include the manufacturer information and / or version information of the aforementioned function package; thus, after step 1302, if at least two matching function packages are found in the function package matching table, the matching degree between the aforementioned matching function package and the first application is determined based on the aforementioned manufacturer information and / or version information. Thus, the download information sent by server 400 to electronic device 100 includes information about the function package with the highest matching degree and information about the dependent packages of the aforementioned function package with the highest matching degree.
[0271] For example, if the description information sent by electronic device 100 is:
[0272] {
[0273] Functional category code: 000102;
[0274] Required function description: Booking train tickets;
[0275] }
[0276] Then, server 400 can search in the function package matching table according to the function category code 000102 in the above description information to obtain the function package whose function category code matches 000102 in the matching identifier. There are two function packages to be searched, namely function package 1 and function package 2. At this time, assuming that the description information includes the manufacturer information of the first application, the manufacturer information is manufacturer 1, and the manufacturer information in the matching identifier of function package 1 is manufacturer 1, the electronic device 100 can obtain the matching degree of function package 1 with the first application as 100% and the matching degree of function package 2 with the first application as 90% based on the above manufacturer information. Then, server 400 sends the download address url1 of manufacturer 1 to electronic device 100. URL1 includes the download address of function package 1 with function category code 000102 in the matching identifier and the download address of the dependent package of function package 1.
[0277] In the example above, the function package whose matching identifier matches the above description information is a function package with the same function category code. In addition, the function package whose matching identifier matches the above description information may also include function packages whose function category codes are not exactly the same, but belong to the same major function category.
[0278] For example, if the description information sent by electronic device 100 is:
[0279] {
[0280] Functional category code: 000202;
[0281] Required functionality: Payment;
[0282] }
[0283] Then, server 400 can search in the function package matching table according to the function category code 000202 in the above description information. If no function package with function category code 000202 in the matching identifier is found, server 400 can search for function packages belonging to the same function category (0002) as 000202. At this time, server 400 finds two function packages with function category codes 000201 and 000203 in the matching identifier, respectively. Then, server 400 can determine the matching degree between function package with function category code 000201 and the first application, and the matching degree between function package with function category code 000203 and the first application, based on the above manufacturer information and / or version information. Here, it is assumed that the matching degree between function package with function category code 000203 and the first application is high. Therefore, server 400 sends the download address url4 of manufacturer 4 to electronic device 100. URL4 includes the download address of function package with function category code 000203 in the matching identifier and the download address of the dependent package of the function package.
[0284] In a specific implementation, the server 400 can implement the operations of steps 1301 and 1303 through the processor 410 and the communication interface 420, and implement the operation of step 1302 through the processor 410.
[0285] In the above-mentioned function package loading method, after receiving the description information sent by the electronic device 100, the server 400 searches for the function package information whose matching identifier matches the description information in the function package matching table, and then sends download information to the electronic device 100. The download information includes the information of the matching function package and the information of the dependent packages of the matching function package. Thus, the electronic device 100 can download the matching function package and the dependent packages of the matching function package according to the download information and the function packages already installed on the electronic device 100. This realizes that the electronic device 100 downloads the function package according to the description information of the functions required by the currently running application. Since the function package occupies a small amount of storage space, the waiting time for the user to download and install the function package can be shortened, saving the storage space of the electronic device 100.
[0286] Figure 14 A flowchart of another embodiment of the loading method of the function package of this application is shown below. Figure 14 As shown, this application Figure 13 In the illustrated embodiment, before step 1302, the following may also be included:
[0287] Step 1401: Receive the application package uploaded by the developer;
[0288] Step 1402: Split the application package to obtain the functional packages included in the application package.
[0289] Step 1403: Parse each functional package included in the above application package, and obtain the matching identifier of the dependent package of the above functional package and the matching identifier of the above functional package.
[0290] Step 1404: Record the application package to which the above function package belongs, as well as the matching identifier of the above function package and the matching identifier of the dependent package of the above function package in the above function package matching table.
[0291] In this embodiment, the process by which the server 400 splits the application package uploaded by the developer can be as follows: Figure 6 As shown, it will not be elaborated further here.
[0292] It is understood that some or all of the steps or operations in the above embodiments are merely examples, and other operations or variations thereof can be performed in the embodiments of this application. Furthermore, the steps may be performed in different orders as presented in the above embodiments, and it is not necessary to perform all the operations in the above embodiments.
[0293] It is understood that, in order to achieve the above-mentioned functions, electronic devices include hardware and / or software modules that perform the respective functions. Based on the algorithm steps of the examples described in conjunction with the embodiments disclosed in this application, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application in conjunction with the embodiments, but such implementation should not be considered beyond the scope of this application.
[0294] This embodiment can divide the electronic device into functional modules according to the above method embodiment. For example, each function can be divided into its own functional module, or two or more functions can be integrated into one module. The integrated module can be implemented in hardware. It should be noted that the module division in this embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.
[0295] Figure 15 This is a schematic diagram of the structure of an electronic device provided in another embodiment of this application. In the case where functional modules are divided according to their respective functions, Figure 15 A schematic diagram of a possible composition of the electronic device 1500 involved in the above embodiments is shown, such as... Figure 15 As shown, the electronic device 1500 may include: a receiving unit 1501, a processing unit 1502, and a transmitting unit 1503;
[0296] The receiving unit 1501 can be used to support the electronic device 1500 in executing steps 808, 809 and 1102, etc., and / or in other processes of the technical solutions described in the embodiments of this application.
[0297] The processing unit 1502 can be used to support the electronic device 1500 in executing steps 801 to 806, as well as steps 1101, 1201 and 1202, and / or other processes used in the technical solutions described in the embodiments of this application.
[0298] The sending unit 1503 can be used to support the electronic device 1500 in performing step 807, etc., and / or in other processes of the technical solutions described in the embodiments of this application.
[0299] It should be noted that all relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here.
[0300] The electronic device 1500 provided in this embodiment is used to execute the above-described function package loading method, and thus can achieve the same effect as the above method.
[0301] It should be understood that electronic device 1500 can correspond to Figure 1 The electronic device 100 shown. The functions of the receiving unit 1501 and the transmitting unit 1503 can be determined by... Figure 1 The processor 110, antenna 1, and mobile communication module 150 in the illustrated electronic device 100, and / or, are implemented by the processor 110, antenna 2, and wireless communication module 160; the function of the processing unit 1502 can be implemented by... Figure 1 The processor 110 and touch sensor 180K in the illustrated electronic device 100 are implemented.
[0302] When using integrated units, the electronic device 1500 may include a processing module, a storage module, and a communication module.
[0303] The processing module can be used to control and manage the actions of the electronic device 1500. For example, it can support the electronic device 1500 in executing the steps performed by the receiving unit 1501, processing unit 1502, and sending unit 1503. The storage module can support the electronic device 1500 in storing program code and data. The communication module can support communication between the electronic device 1500 and other devices.
[0304] The processing module can be a processor or controller, which can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination of functions that implement computing capabilities, such as a combination of one or more microprocessors, a combination of digital signal processing (DSP) and a microprocessor, etc. The storage module can be a memory. The communication module can specifically be a device that interacts with other electronic devices, such as radio frequency circuitry, a Bluetooth chip, and / or a Wi-Fi chip.
[0305] In one embodiment, when the processing module is a processor and the storage module is a memory, the electronic device 1500 involved in this embodiment can be a device having... Figure 1 The device with the structure shown.
[0306] Similarly, it is understood that, in order to implement the above functions, the server includes hardware and / or software modules corresponding to the execution of each function. Based on the algorithm steps of the various examples described in conjunction with the embodiments disclosed in this application, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application in conjunction with the embodiments, but such implementation should not be considered beyond the scope of this application.
[0307] This embodiment can divide the server into functional modules according to the above method embodiment. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one module. The integrated module can be implemented in hardware. It should be noted that the module division in this embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.
[0308] Figure 16 This is a schematic diagram of the server structure provided in another embodiment of this application, in which functional modules are divided according to their respective functions. Figure 16 A schematic diagram of a possible configuration of the server 1600 involved in the above embodiments is shown, such as... Figure 16 As shown, the server 1600 may include: a receiving unit 1601, a processing unit 1602, and a sending unit 1603;
[0309] The receiving unit 1601 can be used to support the server 1600 in executing steps 1301 and 1401, and / or for other processes of the technical solutions described in the embodiments of this application.
[0310] The processing unit 1602 can be used to support the server 1600 in executing steps 1302, 1402, 1403 and 1404, and / or other processes used in the technical solutions described in the embodiments of this application.
[0311] The sending unit 1603 can be used to support the server 1600 in executing step 1303, etc., and / or in other processes of the technical solutions described in the embodiments of this application.
[0312] It should be noted that all relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here.
[0313] The server 1600 provided in this embodiment is used to execute the above-described method for loading the function package, and thus can achieve the same effect as the above method.
[0314] It should be understood that server 1600 can correspond to Figure 4 The server 400 shown. The functions of the receiving unit 1601 and the sending unit 1603 can be determined by... Figure 4 The processor 410 and communication interface 420 in the server 400 shown are used to implement the functionality of the processing unit 1602. Figure 4 The processor 410 in the server 400 shown is implemented.
[0315] When using integrated units, server 1600 may include a processing module, a storage module, and a communication module.
[0316] The processing module can be used to control and manage the actions of the server 1600. For example, it can support the server 1600 in executing the steps performed by the receiving unit 1601, processing unit 1602, and sending unit 1603. The storage module can support the server 1600 in storing program code and data. The communication module can support communication between the server 1600 and other devices.
[0317] The processing module can be a processor or controller, which can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination of functions that implement computing capabilities, such as a combination of one or more microprocessors, a combination of digital signal processing (DSP) and a microprocessor, etc. The storage module can be a memory. The communication module can specifically be a device that interacts with other electronic devices, such as radio frequency circuitry, a Bluetooth chip, and / or a Wi-Fi chip.
[0318] In one embodiment, when the processing module is a processor and the storage module is a memory, the server 1600 involved in this embodiment can be a device having... Figure 4 The device with the structure shown.
[0319] This application also provides a computer-readable storage medium storing a computer program that, when run on a computer, causes the computer to execute this application. Figures 8-12 The method provided in the illustrated embodiment.
[0320] This application also provides a computer-readable storage medium storing a computer program that, when run on a computer, causes the computer to execute this application. Figures 13-14 The method provided in the illustrated embodiment.
[0321] This application also provides a computer program product, which includes a computer program that, when run on a computer, causes the computer to execute this application. Figures 8-12 The method provided in the illustrated embodiment.
[0322] This application also provides a computer program product, which includes a computer program that, when run on a computer, causes the computer to execute this application. Figures 13-14 The method provided in the illustrated embodiment.
[0323] In this application embodiment, "at least one" refers to one or more, and "more than one" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent the existence of A alone, A and B simultaneously, or B alone. A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" and similar expressions refer to any combination of these items, including any combination of singular or plural items. For example, at least one of a, b, and c can represent: a, b, c, a and b, a and c, b and c, or a and b and c, where a, b, and c can be single or multiple.
[0324] Those skilled in the art will recognize that the units and algorithm steps described in the embodiments disclosed herein can be implemented using electronic hardware, computer software, or a combination of electronic hardware and software. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0325] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0326] In the several embodiments provided in this application, any function, if implemented as a software functional unit and sold or used as an independent product, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, essentially, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0327] The above description is merely a specific embodiment of this application. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the protection scope of this application. The protection scope of this application should be determined by the protection scope of the claims.
Claims
1. A method of loading a function package, characterized by, The method comprises the following steps: An electronic device detects first operation information of a user in a currently running first application interface; In response to the first operation information, a function selection interface is displayed; Second operation information of the user selecting a first function is detected; In response to the second operation information, description information of the first function is obtained; In the function packages installed in the electronic device, a function package with a matching identifier matching the description information is searched for; When no matching function package is found, the description information is sent to a server; Download information sent by the server is received, the download information including information of a function package and information of a dependent package of the function package, the function package including the function package with the matching identifier matching the description information; The function package and the dependent package of the function package are downloaded, and the function package is installed and loaded silently; The second operation information includes operation of the user on a function icon in the function selection interface, the description information includes a function category code of a function corresponding to the function icon, and the matching identifier includes a function category code of a function provided by the function package; The function package with the matching identifier matching the description information is searched for in the function packages installed in the electronic device by searching for the function category code in the matching identifier according to the function category code in the description information; After the function package with the matching identifier matching the description information is searched for in the function packages installed in the electronic device, the following step is further included: If the function package with the matching identifier matching the description information is found in the function packages installed in the electronic device, the matching function package is loaded in the first application, the matching function package being a function package of a second application installed in the electronic device; The description information further includes vendor information and / or version information of the first application, and the matching identifier further includes vendor information and / or version information of the function package; Before the matching function package is loaded in the first application, the following step is further included: If the matching function packages found in the function packages installed in the electronic device include at least two, the matching degree of the matching function packages and the first application is determined according to the vendor information and / or the version information; The matching function package with the highest matching degree is loaded in the first application; The function package with the matching identifier matching the description information is searched for in the installed function list of the electronic device, wherein the installed function list stores table items corresponding to the applications installed in the electronic device, and the table items include matching identifiers of the function packages installed in the applications; The download information includes an application to which the function package belongs, the function package and a dependent package of the function package, and after the function package is downloaded, silently installed and loaded, the download information further includes: In the installed function list of the electronic device, an entry corresponding to an application to which the loaded function package belongs is obtained, and a matching identifier of the loaded function package is added in the obtained entry.
2. The method of claim 1, wherein, The downloading of the function package and the dependent package of the function package, the silent installation and the loading of the function package include: According to the download information and the function package installed in the electronic device, a dependent package to be downloaded is determined; The function package and the dependent package to be downloaded are downloaded, and the function package is silently installed and loaded.
3. A method of loading a function package, characterized by, It includes: The server receives description information sent by an electronic device, the description information being description information of a first function selected by a user, and being sent after a function package with a matching identifier matching the description information is not found in function packages installed in the electronic device; In the function package matching table, information of a function package with a matching identifier matching the description information is found; The server sends download information to the electronic device, the download information including information of the function package and information of a dependent package of the function package, so that the electronic device downloads the function package and the dependent package of the function package according to the download information; The matching identifier includes: a function category code of a function provided by the function package; the function package matching table records an application package to which the function package belongs, the matching identifier of the function package, information of the function package and information of a dependent package of the function package; the description information includes: a function category code of the first function; The finding of the information of the function package with the matching identifier matching the description information in the function package matching table includes: In the function package matching table, the function category code in the matching identifier is found according to the function category code in the description information, and a function package with the function category code in the matching identifier matching the function category code in the description information is obtained; The description information further includes: manufacturer information and / or version information of a first application program, and the matching identifier further includes manufacturer information and / or version information of the function package; After the finding of the information of the function package with the matching identifier matching the description information in the function package matching table, the method further includes: If the found matching function package includes at least two in the function package matching table, the matching degree of the matching function package and the first application program is determined according to the manufacturer information and / or the version information; The download information includes information of a function package with the highest matching degree and information of a dependent package of the function package with the highest matching degree; Before the finding of the information of the function package with the matching identifier matching the description information in the function package matching table, the method further includes: An application package uploaded by a developer is received; The application package is split to obtain function packages included in the application package; analyzing each function package included in the application package to obtain a matching identifier of a dependent package of the function package and a matching identifier of the function package; recording, in the function package matching table, an application package to which the function package belongs, the matching identifier of the function package, and the matching identifier of the dependent package of the function package.
4. An electronic device, comprising: comprise: one or more processors; a memory; a plurality of application programs; and one or more computer programs, wherein the one or more computer programs are stored in the memory, and the one or more computer programs comprise instructions that, when executed by the electronic device, cause the electronic device to perform the following steps: detecting first operation information of a user in an interface displayed by a first application program currently running; in response to the first operation information, displaying a function selection interface; detecting second operation information of the user selecting a first function; in response to the second operation information, obtaining description information of the first function; in function packages installed in the electronic device, searching for a function package having a matching identifier matching the description information; when no function package is found, sending the description information to a server; receiving download information sent by the server, the download information including information of a function package and information of a dependent package of the function package, the function package including the function package having the matching identifier matching the description information; downloading the function package and the dependent package of the function package, and silently installing and loading the function package; wherein the second operation information includes operation of the user on a function icon in the function selection interface, the description information includes a function category code of a function corresponding to the function icon, and the matching identifier includes a function category code of a function provided by the function package; when the instructions are executed by the electronic device, causing the electronic device to perform the step of searching for the function package having the matching identifier matching the description information in the function packages installed in the electronic device includes: in the function packages installed in the electronic device, searching according to the function category code in the description information to obtain a function package having a function category code in the matching identifier matching the function category code in the description information; wherein, when the instructions are executed by the electronic device, causing the electronic device to perform the step of searching for the function package having the matching identifier matching the description information in the function packages installed in the electronic device, the electronic device further performs the following steps: if the function package having the matching identifier matching the description information is found in the function packages installed in the electronic device, loading the matched function package in the first application program, the matched function package being a function package of a second application program installed in the electronic device; the description information further includes vendor information and / or version information of the first application program, and the matching identifier further includes vendor information and / or version information of the function package; When the instructions are executed by the electronic device, the electronic device further performs the following steps before performing the step of loading the matched function package in the first application program: If the matched function package found in the function packages installed in the electronic device includes at least two, the matching degree of the matched function package and the first application program is determined according to the manufacturer information and / or version information; The step of loading the matched function package in the first application program includes: Loading the function package with the highest matching degree in the first application program; When the instructions are executed by the electronic device, the electronic device performs the following steps in the step of finding the function package with the matching identifier matching the description information in the function packages installed in the electronic device: Finding the function package with the matching identifier matching the description information in the installed function list of the electronic device; wherein the installed function list saves the table item corresponding to the application program installed in the electronic device, and the table item includes the matching identifier of the function package installed in the application program; The application to which the function package belongs is included in the download information, and when the instructions are executed by the electronic device, the electronic device further performs the following steps after performing the steps of downloading the function package and the dependent package of the function package, and silently installing and loading the function package: In the installed function list of the electronic device, the table item corresponding to the application to which the loaded function package belongs is obtained, and the matching identifier of the loaded function package is added in the obtained table item.
5. The electronic device of claim 4, wherein, When the instructions are executed by the electronic device, the electronic device performs the following steps in the step of downloading the function package and the dependent package of the function package, and loading the function package: According to the download information and the function packages installed in the electronic device, the dependent package to be downloaded is determined; Downloading the function package and the dependent package to be downloaded, and silently installing and loading the function package.
6. A server, characterized by Comprise: One or more processors; Memory; A plurality of application programs; And one or more computer programs, wherein the one or more computer programs are stored in the memory, the one or more computer programs include instructions, when the instructions are executed by the server, the server performs the following steps: Receive the description information sent by the electronic device, the description information is the description information of the first function selected by the user obtained by the electronic device, and the function package with the matching identifier matching the description information is not found in the function package installed in the electronic device; In the function package matching table, find the information of the function package with the matching identifier matching the description information; Send the download information to the electronic device, the download information includes the information of the function package and the information of the dependent package of the function package, so that the electronic device downloads the function package and the dependent package of the function package according to the download information; The matching identifier comprises a function category code of a function provided by the function package; the function package matching table records an application package to which the function package belongs, the matching identifier of the function package, information of the function package, and information of a dependent package of the function package; and the description information comprises a function category code of the first function. When the instructions are executed by the server, the server performs the step of searching, in the function package matching table, for the information of the function package whose matching identifier matches the description information, comprises: In the function package matching table, the function category code in the matching identifier is searched according to the function category code in the description information, and a function package whose function category code in the matching identifier matches the function category code in the description information is obtained. The description information further comprises manufacturer information and / or version information of the first application program, and the first application program comprises an application program currently running on the electronic device; and the matching identifier further comprises manufacturer information and / or version information of the function package. When the instructions are executed by the server, the server performs the step of searching, in the function package matching table, for the information of the function package whose matching identifier matches the description information, and further performs the following step: If the matched function packages found in the function package matching table comprise at least two, the matching degrees of the matched function packages and the first application program are determined according to the manufacturer information and / or the version information; The download information comprises information of a function package with the highest matching degree and information of a dependent package of the function package with the highest matching degree. When the instructions are executed by the server, the server performs the step of searching, in the function package matching table, for the information of the function package whose matching identifier matches the description information, and further performs the following step: An application package uploaded by a developer is received. The application package is split to obtain function packages included in the application package; Each function package included in the application package is parsed to obtain a matching identifier of a dependent package of the function package and a matching identifier of the function package; The application package to which the function package belongs, and the matching identifier of the function package and the matching identifier of the dependent package of the function package are recorded in the function package matching table.
7. A computer readable storage medium characterized in that, The computer readable storage medium stores a computer program, and when the computer program is run on a computer, the computer executes the method according to any one of claims 1-2.
8. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program, and when the computer program is run on a computer, the computer executes the method according to claim 3.
Citation Information
Patent Citations
Method, device and system used for application program subpackage
CN104991793A
Management method and system of application program
CN106055330A
Application upgrading method, device and equipment and storage medium
CN109857416A