Application management method, system and related device
Packaging the SDK and applications through the application market server solves the problem that application developers need to manually package, achieving the effect of reducing developer workload and accelerating application launch speed.
Patent Information
- Application Number
- CN202310877061.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-17
- Publication Date
- 2025-01-17
AI Technical Summary
Every time an application is launched into the application market, application developers need to package the application's own installation package with the SDK, which increases the developer's workload.
The SDK and application installation are packaged through the application market server, and an application installation package is generated that can be downloaded by the terminal device, reducing the workload of application developers.
It saves the workload of application developers, reduces the workload of application market review, and speeds up the launch of applications on the application market.
Smart Images

Figure CN119322622A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of terminal and communication technology, and in particular to an application management method, system and related devices. Background Art
[0002] In the process of application development, in order to increase the functions of the application and reduce the workload of developers, application developers generally integrate some software development kits (SDKs) into the application, so that the application can directly use the functions developed by third-party manufacturers, namely SDK manufacturers. For example, a real-time voice SDK can be integrated into a game application to realize the real-time voice call function in the game.
[0003] Among them, if the application uses the function developed by the SDK manufacturer, it is necessary to package the application's own installation package with the SDK corresponding to the function to form an application installation package containing the SDK. Only by installing and using the application installation package can the function in the SDK be used in the application.
[0004] This leads to the following problem: for application developers who need to integrate SDK into their applications, every time they upload their applications to the application market, they need to package the application's own installation package and SDK to generate an application installation package, which increases the workload of application developers. Summary of the invention
[0005] The present application provides an application management method, system and related devices, which realizes packaging of SDK and application installation using the server corresponding to the application market, generates application installation packages that can be downloaded by terminal devices, and reduces the workload of application developers.
[0006] In a first aspect, an embodiment of the present application provides an application management method, characterized in that the method includes: a server receives a first software development kit SDK sent by a first device; the server receives an initial installation package of a first application sent by a second device, the first SDK being a plug-in called during the running of the first application; the terminal device sends a request to download the first application to the server; the server sends an application installation package of the first application to the terminal device, the application installation package of the first application is generated by the server, and the application installation package of the first application includes: the initial installation package of the first application and a first SDK; the terminal device installs the first application based on the application installation package of the first application.
[0007] By implementing the method provided in the first aspect, application developers do not need to upload an application installation package that includes the SDK and the initial installation package of the application, which eliminates the step of packaging the application installation package for application developers and saves the workload of application developers. At the same time, the installation package that application developers upload to the application market only includes the content of the application itself, but does not include the SDK, which saves the workload of application market review and speeds up the speed of listing applications on the application market.
[0008] In combination with the first aspect, in one implementation, a terminal device installs a first application based on an application installation package of the first application, including: the terminal device installs a first SDK in the application installation package of the first application in a first file directory; after the terminal device installs the first application based on the application installation package of the first application, the method also includes: a server receives an updated first SDK sent by the first device; the terminal device sends a request to update the SDK to the server; the server sends the updated first SDK to the terminal device; and the terminal device installs the updated first SDK in the first file directory.
[0009] It can be seen that if the application installation package is packaged by the application developer, every time the SDK manufacturer updates the SDK, the developer of the application using the SDK needs to repackage the installation package of the application developed by him, and obtain an installation package that contains both the application content itself and the updated SDK, and then put it on the application market.
[0010] In the application management method provided in the embodiment of the present application, after the SDK manufacturer updates the SDK, the server can directly obtain the updated SDK from the SDK manufacturer. There is no need for the application developer to repackage the initial installation package of the application with the updated SDK and put them on the application market, which further reduces the workload of the application developer. In addition, the server only needs to review the updated SDK and does not need to review the complete installation package of the application, which reduces the workload of the application market and also speeds up the speed of application updates and listings.
[0011] In combination with the first aspect, in one implementation, a terminal device installs a first application based on an application installation package of the first application, including: the terminal device installs the initial installation package of the first application in the application installation package of the first application in a second file directory; after the terminal device installs the first application based on the application installation package of the first application, the method also includes: a server receives an updated initial installation package of the first application sent by a second device; the terminal device sends a request to update the application to the server; the server sends the updated initial installation package of the first application to the terminal device; and the terminal device installs the updated initial installation package of the first application in the second file directory.
[0012] It can be seen that after the content of the application itself is updated, the application developer only needs to upload the updated initial installation package of the application, and does not need to re-upload the SDK used by the application. The terminal device also only needs to download the initial installation package of the application, which reduces the amount of data transmission, speeds up the speed of the updated application on the server, and speeds up the speed of the terminal device to update the application.
[0013] In combination with the first aspect, in one implementation, after the terminal device installs the first application based on the application installation package of the first application, the method also includes: the terminal device sends a request to the server to download the second application; when the server determines that the data historically sent to the terminal device includes the first SDK, the server sends the initial installation package of the second application to the terminal device, and the first SDK is a plug-in called during the operation of the second application; the terminal device installs the second application based on the initial installation package of the second application.
[0014] In other words, the server can record the situation of terminal devices downloading applications. When the terminal device requests to download a certain application, it can determine whether the terminal device has previously downloaded the SDK used by the application. If so, the server does not need to send the SDK repeatedly, thereby reducing the amount of data sent by the server to the terminal device and speeding up the terminal device to obtain the application installation package, so that the terminal device can install and use the application as soon as possible.
[0015] In combination with the first aspect, in one implementation, after the terminal device installs the first application based on the application installation package of the first application, the method also includes: the terminal device sends a request to the server to download the second application; the server sends the application installation package of the second application to the terminal device, the application installation package of the second application is generated by the server, and the application installation package of the second application includes: an initial installation package of the second application and a first SDK, the first SDK being a plug-in called during the running of the second application; the terminal device installs the second application based on the initial installation package of the second application, and does not install the first SDK in the application installation package of the second application.
[0016] That is to say, for each application that the terminal device requests to download, the server can package the complete installation package of the application, and the terminal device can decide whether to install all the contents of the application, thereby speeding up the installation of the application as much as possible.
[0017] In combination with the first aspect, in one implementation, a terminal device installs a first application based on an application installation package of the first application, including: the terminal device installs a first SDK in the application installation package of the first application in a first file directory; after the terminal device installs a second application, the method also includes: the terminal device controls the second application to call the first SDK installed in the first file directory.
[0018] In other words, different applications installed in the terminal device can call the same SDK to minimize redundant storage space usage.
[0019] In combination with the first aspect, in one implementation, the server stores one or more SDKs; the initial installation package of the first application includes an access identifier of the first SDK, and the access identifier of the first SDK is used by the server to find the first SDK from the one or more SDKs.
[0020] That is to say, the server can use the SDK access identifier to find the SDK associated with the application requested to be downloaded by the terminal device from multiple SDKs listed by the SDK manufacturer.
[0021] In combination with the first aspect, in one implementation, the access identifier of the first SDK is stored in a declaration file in an initial installation package of the first application.
[0022] In combination with the first aspect, in one implementation, the declaration file further includes one or more of the following: version information of the first SDK, and manufacturer information of the first SDK.
[0023] In the second aspect, an embodiment of the present application provides an application management method, the method comprising: a server receives a first SDK sent by a first device; the server receives an initial installation package of a first application sent by a second device, the first SDK being a plug-in called during the running of the first application; the server receives a request to download the first application sent by a terminal device; the server sends an application installation package of the first application to the terminal device, the application installation package of the first application is generated by the server, and the installation package of the first application comprises: an initial installation package of the first application and a first SDK.
[0024] By implementing the method provided in the second aspect, application developers do not need to upload an application installation package that includes the SDK and the initial installation package of the application, which eliminates the step of packaging the application installation package for application developers and saves the workload of application developers. At the same time, the installation package that application developers upload to the application market only contains the content of the application itself, but does not include the SDK, which saves the workload of application market review and speeds up the speed of listing applications on the application market.
[0025] In combination with the second aspect, in one implementation, after the server sends the application installation package of the first application to the terminal device, the method also includes: the server receives the updated first SDK sent by the first device; the server receives the request for updating the SDK sent by the terminal device; the server sends the updated first SDK to the terminal device.
[0026] In the application management method provided in the embodiment of the present application, after the SDK manufacturer updates the SDK, the server can directly obtain the updated SDK from the SDK manufacturer. There is no need for the application developer to repackage the initial installation package of the application with the updated SDK and put them on the application market, further reducing the workload of the application developer. In addition, the server only needs to review the updated SDK and does not need to review the complete installation package of the application, which reduces the workload of the application market and also speeds up the update and listing of applications.
[0027] In combination with the second aspect, in one implementation, after the server sends the application installation package of the first application to the terminal device, the method also includes: the server receives the updated initial installation package of the first application sent by the second device; the server receives the request to update the application sent by the terminal device; the server sends the updated initial installation package of the first application to the terminal device.
[0028] It can be seen that after the content of the application itself is updated, the application developer only needs to upload the updated initial installation package of the application, and does not need to re-upload the SDK used by the application, which reduces the amount of data transmission and speeds up the speed of putting the updated application on the server.
[0029] In combination with the second aspect, in one implementation, after the server sends the application installation package of the first application to the terminal device, the method also includes: the server receives a request sent by the terminal device to download the second application; when the server determines that the data historically sent to the terminal device includes the first SDK, the server sends the initial installation package of the second application to the terminal device, and the first SDK is a plug-in called during the operation of the second application.
[0030] In other words, the server can record the situation of terminal devices downloading applications. When the terminal device requests to download a certain application, it determines whether the terminal device has previously downloaded the SDK used by the application. If so, the server does not need to send the SDK repeatedly, thereby reducing the amount of data sent by the server to the terminal device.
[0031] In combination with the second aspect, in one implementation, after the server sends the application installation package of the first application to the terminal device, the method also includes: the server receives a request for downloading the second application sent by the terminal device; the server sends the application installation package of the second application to the terminal device, the application installation package of the second application is generated by the server, and the application installation package of the second application includes: an initial installation package of the second application and a first SDK, the first SDK being a plug-in called during the running of the second application.
[0032] That is to say, for each application that the terminal device requests to download, the server can package the complete installation package of the application, regardless of whether the terminal device has installed the SDK required by the application, thereby reducing the server's computing power.
[0033] In combination with the second aspect, in one implementation, the server stores one or more SDKs; the initial installation package of the first application includes an access identifier of the first SDK, and the access identifier of the first SDK is used by the server to find the first SDK from the one or more SDKs.
[0034] That is to say, the server can use the SDK access identifier to find the SDK associated with the application requested to be downloaded by the terminal device from multiple SDKs listed by the SDK manufacturer.
[0035] In conjunction with the second aspect, in one implementation, the access identifier of the first SDK is stored in a declaration file in an initial installation package of the first application.
[0036] In a third aspect, an embodiment of the present application provides an application management method, the method comprising: a terminal device sends a request to a server to download a first application; the terminal device receives an application installation package of the first application sent by the server, the application installation package of the first application is generated by the server, and the application installation package of the first application comprises: an initial installation package of the first application and a first SDK; the terminal device installs the first application based on the application installation package of the first application.
[0037] By implementing the method provided in the third aspect, the terminal device can directly obtain the application installation package generated by the server, omitting the step of packaging the application installation package by the application developer, saving the workload of the application developer, and the installation package uploaded to the application market by the application developer only contains the content of the application itself, but does not contain the SDK, saving the workload of the application market review, so that the user can view the application uploaded to the application market through the terminal device as soon as possible.
[0038] In combination with the third aspect, in one implementation, a terminal device installs a first application based on an application installation package of the first application, including: the terminal device installs a first SDK in the application installation package of the first application in a first file directory; after the terminal device installs the first application based on the application installation package of the first application, the method also includes: the terminal device sends a request to update the SDK to a server; the terminal device receives the updated first SDK sent by the server; and the terminal device installs the updated first SDK in the first file directory.
[0039] After the SDK manufacturer updates the SDK, if the terminal device needs to update the SDK in the application, it does not need to obtain the complete installation package of the application, but only needs to obtain the updated SDK, which speeds up the terminal device to update the SDK.
[0040] In combination with the third aspect, in one implementation, a terminal device installs a first application based on an application installation package of the first application, including: the terminal device installs the initial installation package of the first application in the application installation package of the first application in a second file directory; after the terminal device installs the first application based on the application installation package of the first application, the method also includes: the terminal device sends a request to update the application to a server; the terminal device receives the updated initial installation package of the first application sent by the server; and the terminal device installs the updated initial installation package of the first application in the second file directory.
[0041] After the application developer updates the content of the application itself, if the terminal device needs to update the content of the application itself, it does not need to obtain the complete installation package of the application, but only needs to obtain the updated initial installation package, which speeds up the terminal device to update the application.
[0042] In combination with the third aspect, in one implementation, after the terminal device installs the first application based on the application installation package of the first application, the method also includes: the terminal device sends a request to the server to download the second application; the terminal device receives the initial installation package of the second application sent by the server, the initial installation package of the second application is sent by the server when it is determined that the data sent to the terminal device includes the first SDK, and the first SDK is a plug-in called during the running of the second application; the terminal device installs the second application based on the initial installation package of the second application.
[0043] In other words, the server can record the situation of terminal devices downloading applications. When the terminal device requests to download a certain application, it determines whether the terminal device has previously downloaded the SDK used by the application. If so, the server does not need to send the SDK repeatedly, thereby speeding up the terminal device's acquisition of the application installation package so that the terminal device can install and use the application as soon as possible.
[0044] In combination with the third aspect, in one implementation, after the terminal device installs the first application based on the application installation package of the first application, the method also includes: the terminal device sends a request to the server to download the second application; the terminal device receives the application installation package of the second application sent by the server, the application installation package of the second application is generated by the server, and the application installation package of the second application includes: an initial installation package of the second application and a first SDK, the first SDK being a plug-in called during the running of the second application; the terminal device installs the second application based on the initial installation package of the second application, and does not install the first SDK in the application installation package of the second application.
[0045] That is to say, for each application that the terminal device requests to download, the server can package the complete installation package of the application, and the terminal device can decide whether to install all the contents of the application, thereby speeding up the installation of the application as much as possible.
[0046] In combination with the third aspect, in one implementation, a terminal device installs a first application based on an application installation package of the first application, including: the terminal device installs a first SDK in the application installation package of the first application in a first file directory; after the terminal device installs a second application, the method also includes: the terminal device controls the second application to call the first SDK installed in the first file directory.
[0047] In other words, different applications installed in the terminal device can call the same SDK to minimize redundant storage space usage.
[0048] In a fourth aspect, an embodiment of the present application provides an electronic device, comprising a memory, one or more processors, and one or more programs; when the one or more processors execute the one or more programs, the electronic device implements the method described in the second aspect or any one of the implementation methods in the second aspect.
[0049] In the fifth aspect, an embodiment of the present application provides a terminal device, including a memory, one or more processors, and one or more programs; when the one or more processors execute the one or more programs, the terminal device implements the method described in the third aspect or any one of the implementation methods in the third aspect.
[0050] In a sixth aspect, an embodiment of the present application provides a communication system, the communication system comprising the electronic device as described in the fourth aspect and the terminal device as described in the fifth aspect.
[0051] In the seventh aspect, an embodiment of the present application provides a computer-readable storage medium, comprising instructions, which, when executed on an electronic device, cause the electronic device to execute a method as described in the second aspect or any one of the implementations of the second aspect, or the third aspect or any one of the implementations of the third aspect.
[0052] In an eighth aspect, an embodiment of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute a method as described in the second aspect or any one of the implementations of the second aspect, or the third aspect or any one of the implementations of the third aspect.
[0053] By implementing the method provided in the embodiment of the present application, the server can directly obtain the SDK launched by the SDK manufacturer and the initial installation package of the application launched by the application developer. The server packages the SDK and the initial installation package of the application to generate the application installation package required by the terminal device, thereby reducing the workload of the application developer in packaging the installation package. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] Figure 1 A schematic diagram of a communication system 1000 provided in an embodiment of the present application;
[0055] Figure 2 A flowchart of the interaction between the server 200 and the terminal device 100 in the process from application uploading to application downloading provided in an embodiment of the present application;
[0056] Figure 3 A flowchart of the interaction between the server 200 and the terminal device 100 during SDK update provided in an embodiment of the present application;
[0057] Figure 4 A flowchart of the interaction between the server 200 and the terminal device 100 when updating the initial installation package of the application provided in the embodiment of the present application;
[0058] Figure 5 A schematic diagram of the principle of installing an application on a terminal device 100 provided in an embodiment of the present application;
[0059] Figure 6 A schematic diagram of a process of installing a second application on a terminal device 100 provided in an embodiment of the present application;
[0060] Fig. 7A A schematic diagram of the principle of calling SDK in which multiple applications using the same SDK are installed in the terminal device 100 provided in an embodiment of the present application;
[0061] Figure 7B A schematic diagram of the application and SDK involved in an SDK installation method;
[0062] Figure 8 A schematic diagram of the hardware structure of the terminal device 100 provided in an embodiment of the present application;
[0063] Fig. 9 A software structure block diagram of the terminal device 100 provided in an embodiment of the present application;
[0064] Fig.10 A schematic diagram of the hardware structure of the server 200 provided in an embodiment of the present application. DETAILED DESCRIPTION
[0065] The technical solutions in the embodiments of the present application will be described clearly and in detail below in conjunction with the accompanying drawings. In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in the text is only a description of the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, "multiple" means two or more than two.
[0066] In the following, the terms "first" and "second" are used for descriptive purposes only and are not to be understood as suggesting or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features, and in the description of the embodiments of the present application, unless otherwise specified, "plurality" means two or more.
[0067] The embodiment of the present application provides an application management method, which involves a server and a terminal device corresponding to an application market. In the method, the server can obtain an SDK sent by a first device and an initial application installation package sent by a second device. When the terminal device needs to download an application, the server can package the SDK that needs to be called during the running of the application and the initial application installation package into an application installation package, and send it to the terminal device so that the terminal device can download and install the application.
[0068] The first device may refer to the device corresponding to the SDK manufacturer, and the second device may refer to the device corresponding to the application developer. The SDK manufacturer puts the SDK on the application market, which can be regarded as the first device sending the SDK to the server, and the application developer puts the application on the application market, which can be regarded as the second device sending the initial installation package of the application to the server.
[0069] It can be seen that the application management method provided in the embodiment of the present application reduces the process of application developers packaging application installation packages and reduces the workload of application developers. In addition, since the server also needs to review the application installation package when the application is put on the shelf, in the application management method provided in the embodiment of the present application, when the server reviews the installation package put on the shelf by the application developer, the content of its review does not include SDK, which reduces the workload of the server in reviewing the installation package uploaded by the application developer and speeds up the speed of putting the application on the shelf in the application market.
[0070] Figure 1 A schematic diagram of a communication system 1000 provided in an embodiment of the present application.
[0071] like Figure 1 As shown, the communication system 1000 involves: SDK manufacturers, application developers, servers 200 corresponding to the application market, and terminal devices 100.
[0072] SDK manufacturers are the providers of SDKs, which can develop and update SDKs. SDKs are a collection of documents, examples, and tools that assist in developing a certain type of software.
[0073] Application developers can develop and provide installation packages for applications. When developing applications, application developers can integrate SDK into the application so that users can also use the functions in the SDK when using the application.
[0074] The application market is a platform that can display and provide applications for terminal devices (such as terminal device 100) to download.
[0075] Among them, on the terminal side, the user can browse the applications developed by various application developers through the application market application installed in the terminal device, and download the installation package of the application from the server of the application market (hereinafter referred to as server 200) to the local for installation. Alternatively, the user can also browse the applications developed by various application developers through the website of the application market displayed on the terminal device, and download the installation package of the application from the server 200 to the local for installation. The embodiment of the present application does not limit the display form of the application market on the terminal side.
[0076] On the cloud side, the server 200 can obtain the initial installation package of the application uploaded by each application developer. Further, in the embodiment of the present application, the server 200 can also obtain the SDK uploaded by each SDK manufacturer, and package the SDK and the initial installation package of the application to obtain an application installation package that can be downloaded by the user.
[0077] In the embodiment of the present application, the SDK manufacturer puts the SDK on the application market, which can be regarded as sending the SDK to the server 200; the application developer puts the application on the application market, which can be regarded as sending the initial installation package of the application to the server 200.
[0078] Furthermore, in the embodiment of the present application, when developing an application, the application developer can integrate the SDK into the application so that the application can use the functions in the SDK. However, when the application developer puts the application on the application market, the application installation package sent by the application developer is not a complete installation package, but an initial installation package, which does not contain the content in the SDK. The initial installation package only contains the content of the application itself developed by the application developer. The server 200 can package the SDK and the initial installation package to obtain a complete installation package that can be downloaded by the user.
[0079] like Figure 1 As shown, the SDK manufacturer puts the SDK on the application market, and the application developer puts the initial installation package of the application on the application market. In other words, the server 200 can obtain the SDK sent by the SDK manufacturer and the initial installation package of the application sent by the application developer.
[0080] The server 200 can interact with the terminal device 100. When the server 200 obtains an application download request sent by the terminal device 100, if the application requested to be downloaded by the terminal device 100 includes functions in the SDK, the server 200 sends an application installation package to the terminal device 100, wherein the application installation package is the application installation package obtained by packaging the initial installation package of the application sent by the server 200 with the SDK used by the application sent by the SDK manufacturer.
[0081] In addition, the SDK manufacturer can also put the updated SDK on the application market. In other words, the server 200 can also obtain the updated SDK sent by the SDK manufacturer. Further, the server 200 can repackage the updated SDK and the application to obtain an updated application installation package, and send the updated application installation package to the terminal device 100.
[0082] It is understandable that the application market can also be called an application store, an application mall, a software store, etc., and the embodiments of the present application do not limit this name.
[0083] In addition, it should be noted that the server mentioned in each embodiment of the present application, such as server 200, can be a server or a server cluster composed of multiple servers. For example, server 200 can be a server cluster in which multiple servers are deployed through a distributed architecture, and the cluster can include one or more of a cloud computing server, a content delivery network (Content Delivery Network, CDN) server, a network time protocol (Network Time Protocol, NTP), a domain name resolution system (Domain Name System, DNS) server, etc. Among them, each server can coordinate with each other to jointly complete functions such as calculation, data storage, and communication. For example, server 200 may include a download server and an interactive server, the download server is used to store application installation packages that can be downloaded by terminal devices, and the interactive server is used to complete direct interaction with terminal devices, such as obtaining a request to download an application sent by a terminal device, and sending a download URL of the application installation package to the terminal device, so that the terminal device can download the required application installation package from the download server. For the convenience of description, a single server, a distributed server, a server cluster, etc. are collectively referred to as a server in the embodiments of the present application.
[0084] In addition, the communication system 1000 may also include more or fewer devices. For example, the communication system 1000 may also include other terminal devices, and these terminal devices can download applications through the server 200. The embodiment of the present application does not limit the number of devices included in the communication system 1000. Figure 1In the communication system 1000 shown, the SDK manufacturer can also be regarded as the first device, and the application developer can also be regarded as the second device.
[0085] Below through Figure 2 The application management method provided in the embodiment of the present application is introduced in the process from application listing to application downloading.
[0086] Figure 2 A flowchart of the interaction between the server 200 and the terminal device 100 in the process from application uploading to application downloading provided in an embodiment of the present application.
[0087] S101. The server 200 receives the SDK released by the SDK manufacturer.
[0088] Server 200 is a server of the application market, and is used to provide the application market with computing, storage and other functions required for application display and download.
[0089] When the SDK manufacturer puts the SDK on the application market, the server 200 can obtain the SDK put on the SDK manufacturer. In this way, the server 200 can obtain one or more SDKs put on the SDK from different SDK manufacturers. In addition, the server 200 receives the SDK put on the SDK manufacturer, which can be regarded as the server 200 receiving the SDK sent by the first device.
[0090] It is understandable that after receiving the SDK, the server 200 can review the SDK to ensure that the SDK complies with the regulations and standards of the application market, does not contain any illegal or bad information, and ensures the user's safety and experience. For example, the server 200 can review the permission items applied by the SDK to avoid the SDK applying for too many permissions, affecting the user's privacy and security, etc. After the SDK passes the review, the SDK is successfully launched.
[0091] It is understandable that the server 200 may include one or more servers. For a detailed description of the server 200, please refer to the aforementioned Figure 1 The relevant content in will not be repeated here.
[0092] In the embodiment of the present application, the SDK received by the server 200 may include the first SDK.
[0093] S102. The server 200 receives the initial installation package of the application launched by the application developer.
[0094] Similar to the description of step S101, when the application developer puts the application on the application market, the server 200 can obtain the initial installation package of the application sent by the application developer. In this way, the server 200 can obtain the initial installation packages of one or more applications sent by different application developers. In addition, the server 200 receives the initial installation package of the application put on the market by the application developer, which can also be regarded as the server 200 receiving the initial installation package of the application sent by the second device.
[0095] In addition, after the server 200 receives the initial installation package of the application, the server 200 may also review the initial installation package to ensure that the application developed by the application developer complies with the regulations and standards of the application market and does not contain any illegal or bad information, thereby ensuring the user's safety and experience. For example, the server 200 may review the permission items applied for by the application to avoid the application applying for too many permissions, which may affect the user's privacy and security. After the initial installation package of the application is reviewed and passed, the application is successfully put on the shelf.
[0096] In addition, it should be noted that the initial installation package of the application may not be the complete installation package of the application developed by the application developer. Specifically, if the application developer integrates certain SDK functions into the application when developing the application, so that the application can call the SDK, then the complete installation package of the application should include the SDK called by the application, while the initial installation package does not include the SDK called by the application. On the contrary, if the application developer does not integrate any SDK functions when developing the application, then the initial installation package is the complete installation package of the application developed by the application developer.
[0097] It is understandable that the order of step S101 and step S102 is not used to limit the execution order of step S101 and step S102.
[0098] In the embodiment of the present application, the initial installation package of the application received by the server 200 may include an initial installation package of the first application.
[0099] S103. The server 200 searches for an SDK associated with the application.
[0100] The SDK associated with the application is the SDK that can be called by the application.
[0101] The initial installation package of the application may include an access identifier of the SDK associated with the application. The server 200 may use the access identifier to find the SDK associated with the application from one or more SDKs received from various SDK manufacturers. Exemplarily, the access identifier may be located in a declaration file (such as dependencies.xml) in the initial installation package.
[0102] For example, the declaration file may contain the following content:
[0103] <dependencies>
[0104] <dependency>
[0105] <sdk-provider> huawei< / sdk-provider>
[0106] <artifactid>SDK-1 <artifactid>
[0107] <version> 1.1 <version>
[0108] Among them, sdk-provider represents the SDK manufacturer. For example, in the above declaration file, the SDK manufacturer is "huawei". artifactid represents the access identifier of the SDK. For example, in the above declaration file, artifactid is "SDK-1". version represents the version number of the SDK. For example, in the above declaration file, version is "1.1".
[0109] It can be seen that the declaration file included in the initial installation package may include, in addition to the SDK access identifier, the SDK manufacturer information sdk-provider, the SDK version information SDKVersion, the application name APPName, the application version information APPVersion, etc. The present application embodiment does not limit the content contained in the declaration file.
[0110] It is understandable that the server 200 can continuously update and maintain the association relationship between the application and the SDK based on the SDK listed by the SDK manufacturer and the application listed by the application developer. The association relationship between the application and the SDK can be determined by the content contained in Table 1:
[0111] Table 1
[0112]
[0113]
[0114] As can be seen from Table 1, if the server 200 receives an SDK with an updated version from the SDK manufacturer, the server 200 can update the version of the SDK in the application associated with the SDK, including: sending the updated SDK to the terminal device where the application is installed, and modifying the version information of the SDK, etc. The specific description of the server 200 sending the updated SDK to the terminal device can be found in the subsequent content, which will not be expanded here.
[0115] In addition, the SDK access ID can be determined in any of the following ways:
[0116] 1) The access ID of the SDK is determined by the server 200
[0117] In this case, after determining the access identifier of the SDK, the server 200 can send the access identifier of the SDK to the manufacturer of the SDK, and the SDK manufacturer will then send the access identifier of the SDK to the application developer who uses the SDK to develop the application, so that the application developer can put the SDK access identifier into the initial installation package of the application and send it to the server 200 when putting the application on the shelf.
[0118] For example, in one embodiment, after receiving the SDK put on the shelves by the SDK manufacturer, the server 200 can determine the access identifier of the SDK. After that, the server 200 returns the access identifier of the SDK to the SDK manufacturer after the SDK is put on the shelves. In this way, when the application developer needs to obtain the SDK from the SDK manufacturer for application development, the SDK manufacturer can send the access identifier of the SDK to the application developer when sending the SDK to the application developer.
[0119] The server 200 determines the access identifiers of the SDKs listed by various SDK manufacturers, so that the server 200 can determine a unique access identifier for each SDK to identify the SDK. In this way, when the server 200 searches for an SDK associated with an application through the access identifier, it can find the only SDK indicated by the access identifier.
[0120] 2) The SDK access identifier is determined by the SDK manufacturer
[0121] In this case, no matter the SDK manufacturer sends the SDK to the server 200 or the application developer, the SDK access identifier can be sent together with the SDK.
[0122] Since in method 1, the server 200 needs to determine the access identifier of the SDK after the SDK is launched on the SDK, thus, the APP developer can only obtain the access identifier after the SDK is launched, and then put the access identifier into the initial installation package of the application and send it to the server 200. Using method 2 can avoid the restriction problem in method 1 that the application developer can only launch the application after the SDK is launched, and at the same time, it can also reduce the communication steps between the server 200 and the SDK manufacturer, and there is no need for the server 200 to return the access identifier to the SDK manufacturer after determining the access identifier of the SDK.
[0123] In addition, it should be noted that if the access identifier of the SDK is determined by the SDK manufacturer, each SDK manufacturer can agree on the rules for determining the access identifier of the SDK, so that each SDK manufacturer can determine a unique access identifier for different SDKs. Alternatively, it is also possible to only stipulate the rules for determining the access identifier of the SDK by an SDK manufacturer, so that a unique access identifier can be determined for different SDKs developed by an SDK manufacturer. In this case, when the SDK manufacturer sends the access identifier of the SDK, it can also send the information of the SDK manufacturer at the same time. In this way, the server 200 or the application developer can uniquely determine the SDK by combining the access identifier of the SDK and the information of the SDK manufacturer.
[0124] It is understandable that the access identifier of the SDK can also be determined by the application developer, and the embodiment of the present application does not limit the source and determination rules of the access identifier of the SDK.
[0125] In addition, step S103 may be executed after step S105 and before step S106. That is, after receiving the request to install the application, the server 200 may trigger a search for an SDK associated with the application (eg, the first application). The embodiment of the present application does not limit the execution order of step S103.
[0126] S104. The terminal device 100 detects an operation of downloading the first application.
[0127] The first application refers to any application that an application developer has put on the application market, and the first application can call an SDK (such as the first SDK mentioned later).
[0128] Before the terminal device 100 detects the operation of downloading the first application, the terminal device 100 may display a user interface provided by the application market application, which is used to display one or more applications available for download by the device. The operation of downloading the first application may refer to an operation acting on the download option corresponding to the first application in the user interface.
[0129] It is understandable that the terminal device 100 may refer to a mobile phone, a tablet, a computer, or other device installed with an application market application. For a specific description of the terminal device 100, please refer to the aforementioned Figure 1 The relevant content in will not be repeated here.
[0130] S105. The terminal device 100 sends a request to the server 200 to download the first application.
[0131] In response to the operation of downloading the first application, the terminal device 100 sends a request for downloading the first application to the server 200. Accordingly, the server 200 receives the request for downloading the first application sent by the terminal device 100.
[0132] S106. The server 200 generates an application installation package of the first application based on the initial installation package of the first application and the first SDK associated with the first application.
[0133] After receiving the request to download the first application, the server 200 can search for the initial installation package of the first application from the applications launched by various application developers, and search for the first SDK associated with the first application from the SDKs launched by various SDK manufacturers.
[0134] Specifically, the server 200 may package the initial installation package of the first application and the first SDK associated with the first application to generate an application installation package of the first application.
[0135] Packaging may refer to compression. Compressing the initial installation package of the first application and the first SDK associated with the first application can save storage space and facilitate the server 200 to manage installation packages of different applications.
[0136] Accordingly, when using an application installation package, for example, when the terminal device 100 uses the application installation package to install an application, the application installation package may be first decompressed, and then each file in the application installation package may be installed into a designated file directory.
[0137] It is understandable that the present application does not limit the execution order of step S106. For example, step S106 can be executed after step S103 and before step S104. That is to say, after the application developer puts the first application on the shelf, the server 200 can directly start searching for the SDK associated with the first application. If the SDK associated with the first application is found, the application installation package of the first application is directly generated. In this way, when the request for downloading the first application from the terminal device 100 is received, the application installation package generated in advance can be directly sent to the terminal device 100. For another example, step S106 can be executed after step S105 and before step S107. That is to say, when the server 200 receives the request for downloading the first application from the terminal device, it can generate the application installation package of the first application based on the initial installation package of the first application and the SDK associated with the first application, and send the application installation package to the terminal device 100.
[0138] In addition, if before the terminal device 100 sends a request to download the first application to the server 200, other terminal devices have already sent a request to download the first application to the server 200, and the server 200 has generated an application installation package for the first application, then step S106 is an optional step, and the server 200 can directly send the previously generated application installation package of the first application to the terminal device 100.
[0139] In addition, it should be noted that when the server 200 generates the application installation package of the first application, the declaration file in the application installation package will be regenerated based on the association relationship between the first application and the first SDK maintained by the application market, and the declaration file may include the name of the first application APPName, the version number of the first application APPVersion, the access identifier SDKArtifactid of the first SDK, and the version number SDKVersion of the first SDK. Through this declaration file, if the SDK manufacturer launches a new version of the first SDK, that is, the updated first SDK, the server 200 can directly change the version number of the first SDK associated with the first application, without the need for the application developer to repackage the updated first SDK and the initial installation package of the first application, obtain the updated application installation package, and launch it on the application market. If the terminal device 100 wants to update the SDK, it can be determined that the first SDK has been updated by comparing the version number of the first SDK associated with the first application recorded in the server 200 with the version number of the first SDK installed locally on the terminal device 100, and the latest version of the first SDK can be downloaded to the terminal device 100.
[0140] For details about SDK update, please refer to the subsequent steps S201-S203, which will not be described here.
[0141] S107. The server 200 sends the application installation package of the first application to the terminal device 100.
[0142] Accordingly, the terminal device 100 receives the application installation package of the first application sent by the server 200 .
[0143] It is understandable that if the server 200 includes multiple devices, for example, the server 200 includes a download server and an interactive server, wherein the download server is used to store application installation packages, and the interactive server is used to complete direct interaction with the terminal device. Then the server 200 sends the application installation package of the first application to the terminal device 100, which may include: the interactive server sends the download address of the application installation package of the first application to the terminal device 100, and the terminal device 100 then parses the download address and downloads the application installation package of the first application from the download server.
[0144] S108. The terminal device 100 installs the first application based on the application installation package of the first application.
[0145] Among them, the terminal device 100 can store the files in the application installation package of the first application in a designated file directory to complete the installation of the first application.
[0146] From steps S101-S108, it can be seen that by adding an entry for each SDK manufacturer to directly list the SDK on the application market, the server corresponding to the application market can directly obtain the initial installation package and SDK of the application. In this way, the server can directly package the application installation package and send the packaged complete application installation package to the terminal device, avoiding the process of application developers packaging the application installation package and then listing it on the application market, reducing the workload of application developers. At the same time, if the SDK manufacturer updates the SDK, it also reduces the workload of the server to review the installation package listed by the application developer, speeding up the speed of listing the application on the application market.
[0147] Below through Figure 3 The following describes the process involved in SDK update in the application management method provided in the embodiment of the present application.
[0148] Figure 3 A flowchart of the interaction between the server 200 and the terminal device 100 involved in SDK update provided in an embodiment of the present application.
[0149] S201. The server 200 receives the SDK updated by the SDK manufacturer.
[0150] After the SDK manufacturer releases the SDK, the SDK manufacturer can also continue to update the SDK, send different versions of SDK to the server 200, and update the SDK stored in the server 200. In addition, the server 200 can obtain SDKs updated from different SDK manufacturers. In addition, the server 200 receives the SDK updated by the SDK manufacturer, which can be regarded as the server 200 receiving the updated SDK sent by the first device.
[0151] It is understandable that after receiving the updated SDK, the server 200 may also review the updated SDK to determine whether the updated SDK still complies with the regulations and standards of the application market. For a specific description of the review of the updated SDK by the server 200, please refer to the content of the review of the SDK by the server 200 in S101 above, which will not be repeated here.
[0152] In addition, the updated SDK may carry version information of the updated SDK.
[0153] The server 200 may update the version information of the SDK included in the association relationship between the application and the SDK. In this way, the server 200 may determine whether the SDK in the application is updated based on the association relationship between each application and the SDK, taking a single application as a unit.
[0154] This is because multiple applications listed in the server 200 may use the same SDK. After the SDK version is updated, the application developer can decide whether to use the updated SDK in the application developed by him. In this way, the server 200 can indicate whether the application uses the updated SDK by updating and maintaining the association relationship between different applications and the SDK, that is, changing or not changing the SDK version information in the association relationship for different applications using the same SDK.
[0155] Exemplarily, the server 200 may update the version information of the SDK in any of the following ways:
[0156] 1) Server 200 automatically updates the version information of the SDK
[0157] Specifically, the server 200 may search for applications that are listed by application developers and are associated with the SDK, and update the version information of the SDK included in the association between the application and the SDK.
[0158] For example, if server 200 receives SDK-1 with version information updated to 1.2 from the SDK manufacturer, and finds that application A and application B are both applications associated with SDK-1, server 200 can update the version information of SDK-1 in the association relationship between application A and SDK-1 to 1.2, and update the version information of SDK-1 in the association relationship between application B and SDK-2 to 1.2.
[0159] Furthermore, after the server 200 updates the version information of the SDK, the server 200 may also inform the application developer that the version information of the SDK has been updated.
[0160] For example, if the server updates the version information of SDK-1 in the association relationship between application A and SDK-1 to 1.2, the application developer of application A is notified that the version information of the SDK associated with application A has been updated. If the server updates the version information of SDK-1 in the association relationship between application B and SDK-1 to 1.2, the application developer of application B is notified that the version information of the SDK associated with application B has been updated.
[0161] That is, after receiving the SDK updated by the SDK manufacturer, the server 200 may assume that applications associated with the SDK can directly use the updated SDK, and directly update the version information of the SDK in the association relationship between the application and the SDK.
[0162] 2) After receiving the updated SDK, the server 200 may first inform the application developer of the application associated with the SDK, and the application developer decides whether to update the SDK version information in the association relationship between the application and the SDK.
[0163] Specifically, after receiving the SDK updated by the SDK manufacturer, the server 200 can first search for applications associated with the SDK in the applications listed by various application developers. After finding the applications associated with the SDK, a notification of SDK version update is sent to the application developers of these applications, for example, by sending a text message or email to notify the application developer that there is a version update of the SDK associated with the application developed by the application developer. After receiving the SDK update notification, the application developer can modify the SDK version information in the association information between the application and the SDK in the configuration interface provided by the application market.
[0164] That is, after receiving the SDK updated by the SDK manufacturer, the server 200 can inform the application developer about the update status of the SDK, and the application developer decides whether to apply the updated SDK to the application.
[0165] It can be seen from the above-mentioned methods 1 and 2 that after the server 200 receives the updated SDK, in method 1, the server 200 decides whether to update the version information of the SDK in the application associated with the SDK, and in method 2, the application developer decides whether to update the version information of the SDK in the application associated with the SDK. Regarding these two methods, the application developer can choose which method to use. If the application developer grants the server 200 the authority to make decisions, the server 200 can decide whether to update after receiving the updated SDK, that is, use method 1; if the application developer does not grant the server 200 the authority to make decisions, the server 200 can notify the application developer after receiving the updated SDK, and the application developer decides whether to update, that is, use method 2.
[0166] S202. The terminal device 100 sends a request for updating the SDK to the server 200.
[0167] The terminal device 100 may trigger a request to update the SDK to the server 200 in any of the following ways:
[0168] 1) The terminal device 100 detects a user operation initiated by the user to check for SDK updates, triggering a request to the server 200 to update the SDK
[0169] In this case, the user can decide whether to request the server 200 to obtain the latest version of the SDK.
[0170] 2) The terminal device 100 sends a request to update the SDK to the server 200 at regular intervals
[0171] In this case, the terminal device 100 can periodically initiate a check on the SDK update status to the server 200 .
[0172] 3) After receiving the SDK version update message from the server 200, the terminal device 100 triggers a request to update the SDK to the server 200.
[0173] In this case, after receiving the updated SDK, the server 200 can actively send a message to the terminal device installed with the SDK that the SDK has a version update. In this way, after the terminal device 100 learns that the SDK has a version update, it requests the server 200 to obtain the updated SDK.
[0174] It is understandable that the terminal device 100 may send a request for updating the SDK to the server 200 only for one or more SDKs, or may send a request for updating the SDK to the server 200 for all SDKs installed in the terminal device 100.
[0175] S203 . The server 200 sends the updated SDK to the terminal device 100 .
[0176] Accordingly, the terminal device 100 receives the updated SDK sent by the server 200 .
[0177] In some embodiments, before the server 200 sends the updated SDK to the terminal device 100, the server 200 may send an update list to the terminal device 100, and the update list may be used to indicate multiple SDKs that can be updated in the terminal device 100. The terminal device 100 may initiate a request to the server 200 to download some or all of the SDKs indicated in the update list according to the update list, or the terminal device 100 may control the order in which the server 200 sends the updateable SDKs to the terminal device 100 according to the update list, thereby triggering the server 200 to send the updated SDK to the terminal device 100.
[0178] It can be understood that, similar to the description in step S107, if the server 200 includes a download server and an exchange server, the exchange server can first send the download address of the updated SDK to the terminal device 100, and the terminal device 100 can then parse the download address and download the updated SDK from the download server.
[0179] In addition, after the terminal device 100 obtains the updated SDK, the terminal device 100 can install the updated SDK into a designated file directory (e.g., a first file directory), which is used to store the SDK used by each application. Specifically, the terminal device 100 can directly replace the old version of the SDK stored in the file directory with the updated SDK. In this way, each application in the terminal device 100 that uses the SDK can directly call the updated SDK. Alternatively, if some applications in the terminal device 100 still use the old version of the SDK, the terminal device 100 can retain both the old version of the SDK and the updated SDK in the file directory.
[0180] Exemplarily, taking the first SDK mentioned in steps S101-S108 as an example, if the SDK updated in step S201 includes the updated first SDK, when the server 200 sends the updated SDK to the terminal device 100, the updated SDK may include the updated first SDK.
[0181] It can be seen from steps S201-S203 that after the SDK manufacturer updates the SDK, the application developer does not need to repackage the application installation package. The server corresponding to the application market only needs to resend the updated SDK to the terminal device, which further reduces the workload of the application developer. In addition, for the application market, the application market only needs to review the SDK updated by the SDK manufacturer, and there is no need to review the complete application installation packages packaged by each application developer, which reduces the review workload of the application market. At the same time, the server only needs to send the updated SDK, which reduces the amount of data sent by the server and speeds up the application market to update applications. At the same time, there is no need for the terminal device to obtain the full application installation package, which reduces the update time of the terminal device.
[0182] In addition, it should be noted that the above steps S201-S203 are applicable to the case where the SDK updated by the SDK manufacturer is still adapted to the application that originally used the old version of the SDK.
[0183] For example, if the SDK manufacturer's update to the SDK is only to improve certain functions, or even if the updated SDK includes the addition of functions, it does not affect the original functions, or even if the updated SDK has deleted functions, but the deleted functions do not affect the application that originally used the old version of the SDK to call it, etc., then the application that originally used the old version of the SDK can still call the updated SDK. In this case, after the server 200 receives the updated SDK, the server 200 can only send the updated SDK to the terminal device 100, and the terminal device can still use the application normally and call the updated SDK through the application.
[0184] If the SDK updated by the SDK manufacturer is no longer compatible with applications that originally used the old version of the SDK, after the server 200 receives the updated SDK, application developers of applications associated with the SDK will need to re-upload new initial installation packages of applications that are compatible with the updated SDK.
[0185] In this case, after step S201, the server 200 may also receive an initial installation package of an application updated by the application developer, where the application is an application associated with the SDK mentioned in step S201, and the updated initial installation package is an installation package adapted to the updated SDK. Whether the application developer needs to update the application may be notified by the SDK manufacturer, or by the server 200, or by the application developer himself.
[0186] Furthermore, after the terminal device 100 sends a request to update the SDK to the server 200, the server 200 sends to the terminal device 100 not only the updated SDK, but an updated application installation package generated by packaging the updated SDK and the updated application initial installation package. In this way, the terminal device 100 can update the locally installed application according to the updated application installation package, and the updated content includes the content of the application itself and the SDK.
[0187] In addition, the update of the application itself, that is, the update of the initial installation package of the application by the application developer is similar to the SDK update process described in the above steps S201-S203.
[0188] Below through Figure 4 The following describes the process involved in updating the initial installation package of an application using the application management method provided in an embodiment of the present application.
[0189] Figure 4 A flowchart of the interaction between the server 200 and the terminal device 100 involved in updating the initial installation package of the application provided in the embodiment of the present application.
[0190] S301. The server 200 receives the application initial installation package updated by the application developer.
[0191] After the application developer puts the application on the shelf, the application developer can also continuously update the initial installation package of the application, send different versions of the initial installation package of the application to the server 200, and update the initial installation package of the application stored in the server 200. In addition, the server 200 can obtain the initial installation packages of the application updated by different application developers. In addition, the server 200 receives the updated initial installation package of the application by the application developer, which can be regarded as the server 200 receiving the updated initial installation package of the application sent by the second device.
[0192] It is understandable that after the server 200 receives the updated initial application installation package, the server 200 may also review the updated initial application installation package to determine whether the updated initial application installation package still complies with the regulations and standards of the application market. For a specific description of the server 200 reviewing the updated initial application installation package, please refer to the content of the server 200 reviewing the initial installation package in the aforementioned step S102, which will not be repeated here.
[0193] In addition, the updated application initial installation package may carry version information of the updated application.
[0194] The server 200 can update the version information of the application included in the association relationship between the application and the SDK. In this way, when the server 200 receives a request from the terminal device 100 to check for application updates, it can determine whether the terminal device 100 has installed the latest version of the application by comparing the version information of the application installed in the terminal device 100 with the version information of the application updated and maintained in the server 200.
[0195] S302. The terminal device 100 sends a request for updating the application to the server 200.
[0196] The terminal device 100 may trigger a request to update the SDK to the server 200 in any of the following ways:
[0197] 1) The terminal device 100 detects a user operation initiated by the user to check for application updates, triggering a request to send an application update request to the server 200 .
[0198] In this case, the user may decide whether to send a request to the server 200 to obtain the latest version of the initial installation package of the application.
[0199] 2) The terminal device 100 sends a request for updating the application to the server 200 at regular intervals.
[0200] In this case, the terminal device 100 may periodically initiate a check on the application update status to the server 200 .
[0201] 3) After receiving the message from the server 200 indicating that there is a version update for the application, the terminal device 100 triggers a request to send an application update request to the server 200.
[0202] In this case, after the server 200 receives the updated application initial installation package, the server 200 can actively send a message that the application has a version update to the terminal device installed with the application. In this way, after the terminal device 100 learns that the application has a version update, it requests the server 200 to obtain the updated application initial installation package.
[0203] It is understandable that the terminal device 100 can send a request for updating applications to the server 200 for one or more applications, and can also send a request for updating applications to the server 200 for all applications installed in the terminal device 100.
[0204] S303 . The server 200 sends the updated application initial installation package to the terminal device 100 .
[0205] Accordingly, the terminal device 100 receives the updated application initial installation package sent by the server 200 .
[0206] In some embodiments, before the server 200 sends the updated initial installation package of the application to the terminal device 100, the server 200 may send an update list to the terminal device 100, and the update list may be used to indicate multiple applications that can be updated in the terminal device 100. The terminal device 100 may initiate a request to the server 200 to download the initial installation packages of some or all of the applications indicated in the update list according to the update list, or the terminal device 100 may control the server 200 to send the updateable applications to the terminal device 100 in a sequential order according to the update list, thereby triggering the server 200 to send the updated SDK to the terminal device 100.
[0207] It can be understood that, similar to the description in step S107, if the server 200 includes a download server and an exchange server, the exchange server can first send the download address of the updated application initial installation package to the terminal device 100, and the terminal device 100 can then parse the download address and download the updated application initial installation package from the download server.
[0208] Exemplarily, taking the first application mentioned in steps S101-S108 as an example, if the applications updated in step S201 include the first application, when the server 200 sends the updated application initial installation package to the terminal device 100, the updated application initial installation package may include the updated initial installation package of the first application.
[0209] After the terminal device 100 obtains the updated initial installation package of the application, it only needs to update and install the initial installation package of the application, without changing the part of the SDK associated with the application, which reduces the time consumption of application update in the terminal device 100. Specifically, the terminal device 100 can install the updated initial installation package of the application in the file directory where the initial installation package of the application installed before the update is located. Taking the first application as an example, if the initial installation package of the first application is installed in the second file directory, when the terminal device 100 updates the application, the updated initial installation package of the first application can be installed in the second file directory.
[0210] It can be seen from steps S301-S303 that after the application developer updates the initial installation package of the application, if the application can use the SDK, the application developer only needs to send the updated initial installation package of the application to the server corresponding to the application market. At the same time, the server can only send the updated initial installation package to the terminal device without repackaging or the complete installation package of the application, thereby reducing the amount of data sent by the server. The terminal device only needs to update the application itself without modifying the SDK part, thereby speeding up the application update.
[0211] It can be understood that steps S201-S203 and steps S301-S303 respectively describe the interaction process between the server 200 and the terminal device 100 when there are updates to parts of the SDK and the application itself. If step S202 or step S302 mentions that when the terminal device 100 sends an update request to the server 200, if the application itself and its associated SDK are updated, the server 200 can send the updated SDK and the updated application initial installation package to the terminal device 100 together.
[0212] When the terminal device 100 mentioned in step S108 installs the first application based on the application installation package of the first application, since the application installation package of the first application includes two parts of content: the application content of the first application and the first SDK, in some embodiments, the terminal device 100 installing the first application may refer to: installing these two parts of content in different file directories, for example, the first SDK is installed in the first file directory, and the initial installation package of the first application is installed in the second file directory. Among them, the file directory where the first SDK is located can be accessed and called by each application. In this way, multiple applications in the terminal device 100 that use the same SDK can use the same SDK together, avoiding the storage of multiple copies of the same SDK in the terminal device 100 and reducing redundant storage space.
[0213] In a specific implementation, the terminal device 100 may include an SDK Manager module. When installing an application, the terminal device 100 may complete the deployment of the SDK through the SDK Manager, that is, install the SDK into a specified file directory, which is used to store the SDK called by each application. Exemplarily, the file directory may be: / opt / sdkmanager / SDK-1 / {vision}. In addition, when the application is running, the terminal device 100 may also call the SDK associated with the application through the SDK Manager.
[0214] In addition, it should be noted that in an embodiment of the present application, when the terminal device 100 installs the application installation package, the declaration file in the application installation package is also read, and the association between the application and the SDK is recorded through SDK Manage, which is used for the terminal device 100 to update the version of the SDK associated with the application.
[0215] For example, Figure 5 A schematic diagram of the principle of installing an application on the terminal device 100 provided in an embodiment of the present application.
[0216] like Figure 5 As shown, the terminal device 100 may include an SDKManager. When installing an application, the application may be saved into two parts: the application itself and the SDK. The terminal device 100 may install the SDK to a specified file directory through the SDKManager. During the running of the application, the terminal device 100 may call the SDK through the SDKManager to enable the application to use the SDK.
[0217] Further, if multiple applications installed in the terminal device 100 use the same SDK, for example, if the terminal device 100 completes the installation of the first application through the steps shown in steps S101-S108, the SDK associated with the first application is the first SDK.
[0218] Afterwards, if the terminal device 100 installs a second application, and the SDK associated with the second application is also the first SDK, the installation of the second application by the terminal device 100 may be in the following two situations:
[0219] 1) The terminal device 100 obtains an application installation package of a second application through the server 200, and installs the second application according to the application installation package of the second application.
[0220] The process of the terminal device 100 acquiring the application installation package of the second application through the server 200 may refer to the related processes of the aforementioned steps S104-S107.
[0221] Exemplarily, the terminal device 100 may send a request to the server 200 to download a second application; the server 200 may send an application installation package of the second application to the terminal device 100, wherein the installation package of the second application is generated by the server, and the installation package of the second application may include: an initial installation package of the second application and a first SDK, wherein the first SDK is a plug-in called during the running of the second application.
[0222] The difference is that when the terminal device 100 installs the second application, since the terminal device 100 has already installed the first SDK, the terminal device 100 can only install the initial installation package part of the second application contained in the application installation package of the second application.
[0223] For example, Figure 6 A schematic diagram of the process of installing the second application on the terminal device 100 is shown.
[0224] like Figure 6 As shown, the process of installing the second application by the terminal device 100 may include:
[0225] S401. The terminal device 100 determines whether the designated file directory contains the first SDK.
[0226] The designated file directory can be used to store SDKs installed in the terminal device 100. If the designated file directory contains the first SDK, it means that the terminal device 100 has installed the first SDK when installing other applications, and the SDK associated with the other applications is the first SDK.
[0227] If the designated file directory contains the first SDK, the terminal device 100 executes step S402 , otherwise, executes step S403 .
[0228] S402. The terminal device 100 installs the initial installation package of the second application, but does not install the first SDK.
[0229] The terminal device 100 may save the initial application installation package of the second application to a certain file directory instead of saving the first SDK.
[0230] In addition, when the terminal device 100 runs the second application, the terminal device 100 can obtain the SDK associated with the second application through the SDKManager, that is, the path information of the first SDK, and set the path information of the first SDK to the dependent path of the second application, so that the second application can automatically load the first SDK in the path during operation to implement the call to the first SDK.
[0231] S403. The terminal device 100 installs the initial installation package of the second application and the first SDK, and the first SDK is installed in the designated file directory.
[0232] The terminal device 100 can install the initial installation package of the second application and the first SDK in different file directories respectively, wherein the first SDK is installed in a designated file directory.
[0233] For example, Fig. 7A A schematic diagram of the principle of calling an SDK in which multiple applications using the same SDK are installed in a terminal device 100 provided in an embodiment of the present application. Figure 7B A schematic diagram of the application and SDK involved in an SDK installation method.
[0234] like Fig. 7A As shown, the terminal device 100 may include an SDKManager. If multiple applications are installed in the terminal device 100, such as a first application and a second application, and the associated SDKs of the first application and the second application are both the first SDK, there is no need to repeatedly save two identical copies of the first SDK in the terminal device 100, and both the first application and the second application can call the first SDK through the SDKManager.
[0235] like Figure 7B As shown, in this SDK installation method, if the associated SDKs of the first application and the second application are both the first SDK, the first SDK will be integrated into the first application, and the first SDK will also be integrated into the second application.
[0236] contrast Fig. 7A and Figure 7B It can be seen that in an embodiment of the present application, if multiple applications installed in the terminal device 100 all call the same SDK, there is no need to repeatedly save multiple identical SDKs in the terminal device 100. Multiple applications can reuse the same SDK, reducing redundant storage space occupancy in the terminal device 100.
[0237] It is understandable that when the terminal device 100 installs any application, such as the first application and the second application, the terminal device 100 can determine how to install the application through the above steps S401-S403, in other words, whether to install the SDK associated with the application.
[0238] 2) The terminal device 100 only obtains the initial installation package of the second application through the server 200, and does not obtain the first SDK.
[0239] In this case, when the server 200 obtains the request to download the second application sent by the terminal device 100, it can first determine whether the data historically sent to the terminal device 100 contains the SDK associated with the second application. If the server 200 determines that the data historically sent to the terminal device 100 contains the SDK associated with the second application, that is, the first SDK, the server 200 can only send the initial installation package of the second application to the terminal device 100 without sending the first SDK.
[0240] It can be understood that if the server 200 determines that the data previously sent to the terminal device 100 does not contain the SDK associated with the second application, the server 200 can generate an application installation package for the second application based on the initial installation package of the second application and the first SDK that is associated with the second application in a similar manner to steps S106-S108, and send the application installation package of the second application to the terminal device 100 so that the terminal device 100 can install the second application.
[0241] In addition, for the use of the first SDK by the second application, please refer to the aforementioned Fig. 7A The relevant description will not be repeated here.
[0242] It can be seen that if the terminal device 100 only obtains part of the installation package content of an application when installing the application, the speed at which the terminal device 100 obtains the installation package can be accelerated, and the time consumed by the terminal device to install the application can be reduced.
[0243] Figure 8 A schematic diagram of the hardware structure of the terminal device 100 is shown.
[0244] The terminal device 100 can be a mobile phone, a tablet computer, a desktop computer, a laptop computer, a handheld computer, a notebook computer, an ultra-mobile personal computer (UMPC), a netbook, a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) device, a virtual reality (VR) device, an artificial intelligence (AI) device, a wearable device, a vehicle-mounted device, a smart home device and / or a smart city device. The embodiments of the present application do not impose any special restrictions on the specific type of the electronic device.
[0245] The terminal device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.
[0246] It is to be understood that the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the terminal device 100. In other embodiments of the present application, the terminal device 100 may include more or fewer components than shown in the figure, or combine some components, or split some components, or arrange the components differently. The components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.
[0247] The processor 110 may include one or more processing units, for example, the processor 110 may include an application processor (AP), a modem processor, a graphics processor (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.
[0248] The controller can generate operation control signals according to the instruction operation code and timing signal to complete the control of instruction fetching and execution.
[0249] The processor 110 may also be provided with a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. The memory may store instructions or data that the processor 110 has just used or cyclically used. If the processor 110 needs to use the instruction or data again, it may be directly called from the memory. This avoids repeated access, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
[0250] In some implementations, the processor 110 may be used to implement the installation of an application, and to implement updates to the application itself and the SDK. Furthermore, the processor 110 may also be used to implement the application's call to its associated SDK during the running of the application.
[0251] In some embodiments, the processor 110 may include one or more interfaces. The interface may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.
[0252] The I2C interface is a bidirectional synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL). In some embodiments, the processor 110 may include multiple groups of I2C buses. The processor 110 may be coupled to the touch sensor 180K, the charger, the flash, the camera 193, etc. through different I2C bus interfaces. For example: the processor 110 may be coupled to the touch sensor 180K through the I2C interface, so that the processor 110 communicates with the touch sensor 180K through the I2C bus interface, thereby realizing the touch function of the terminal device 100.
[0253] The I2S interface can be used for audio communication. In some embodiments, the processor 110 can include multiple I2S buses. The processor 110 can be coupled to the audio module 170 via the I2S bus to achieve communication between the processor 110 and the audio module 170. In some embodiments, the audio module 170 can transmit an audio signal to the wireless communication module 160 via the I2S interface to achieve the function of answering a call through a Bluetooth headset.
[0254] The PCM interface can also be used for audio communication, sampling, quantizing and encoding analog signals. In some embodiments, the audio module 170 and the wireless communication module 160 can be coupled via a PCM bus interface. In some embodiments, the audio module 170 can also transmit audio signals to the wireless communication module 160 via the PCM interface to realize the function of answering calls via a Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
[0255] The UART interface is a universal serial data bus for asynchronous communication. The bus can be a bidirectional communication bus. It converts the data to be transmitted between serial communication and parallel communication. In some embodiments, the UART interface is generally used to connect the processor 110 and the wireless communication module 160. For example, the processor 110 communicates with the Bluetooth module in the wireless communication module 160 through the UART interface to implement the Bluetooth function. In some embodiments, the audio module 170 can transmit an audio signal to the wireless communication module 160 through the UART interface to implement the function of playing music through a Bluetooth headset.
[0256] The MIPI interface can be used to connect the processor 110 with peripheral devices such as the display screen 194 and the camera 193. The MIPI interface includes a camera serial interface (CSI), a display serial interface (DSI), etc. In some embodiments, the processor 110 and the camera 193 communicate via the CSI interface to implement the shooting function of the terminal device 100. The processor 110 and the display screen 194 communicate via the DSI interface to implement the display function of the terminal device 100.
[0257] The GPIO interface can be configured by software. The GPIO interface can be configured as a control signal or as a data signal. In some embodiments, the GPIO interface can be used to connect the processor 110 with the camera 193, the display 194, the wireless communication module 160, the audio module 170, the sensor module 180, etc. The GPIO interface can also be configured as an I2C interface, an I2S interface, a UART interface, a MIPI interface, etc.
[0258] The USB interface 130 is an interface that complies with the USB standard specification, and specifically can be a Mini USB interface, a Micro USB interface, a USB Type C interface, etc. The USB interface 130 can be used to connect a charger to charge the terminal device 100, and can also be used to transmit data between the terminal device 100 and peripheral devices. It can also be used to connect headphones to play audio through the headphones. The interface can also be used to connect other electronic devices, such as AR devices, etc.
[0259] It is understandable that the interface connection relationship between the modules illustrated in the embodiment of the present invention is only a schematic illustration and does not constitute a structural limitation on the terminal device 100. In other embodiments of the present application, the terminal device 100 may also adopt different interface connection methods in the above embodiments, or a combination of multiple interface connection methods.
[0260] The charging management module 140 is used to receive charging input from a charger. The charger may be a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 may receive charging input from a wired charger through the USB interface 130. In some wireless charging embodiments, the charging management module 140 may receive wireless charging input through a wireless charging coil of the terminal device 100. While the charging management module 140 is charging the battery 142, it may also power the electronic device through the power management module 141.
[0261] The power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140, and supplies power to the processor 110, the internal memory 121, the display screen 194, the camera 193, and the wireless communication module 160. The power management module 141 can also be used to monitor parameters such as battery capacity, battery cycle number, battery health status (leakage, impedance), etc. In some other embodiments, the power management module 141 can also be set in the processor 110. In other embodiments, the power management module 141 and the charging management module 140 can also be set in the same device.
[0262] The wireless communication function of the terminal device 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.
[0263] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in terminal device 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve the utilization of antennas. For example, antenna 1 can be reused as a diversity antenna for a wireless local area network. In some other embodiments, the antenna can be used in combination with a tuning switch.
[0264] The mobile communication module 150 can provide solutions for wireless communications including 2G / 3G / 4G / 5G applied to the terminal device 100. The mobile communication module 150 may include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), etc. The mobile communication module 150 can receive electromagnetic waves from the antenna 1, and filter, amplify, and process the received electromagnetic waves, and transmit them to the modulation and demodulation processor for demodulation. The mobile communication module 150 can also amplify the signal modulated by the modulation and demodulation processor, and convert it into electromagnetic waves for radiation through the antenna 1. In some embodiments, at least some of the functional modules of the mobile communication module 150 can be set in the processor 110. In some embodiments, at least some of the functional modules of the mobile communication module 150 can be set in the same device as at least some of the modules of the processor 110.
[0265] The modem processor may include a modulator and a demodulator. Among them, the modulator is used to modulate the low-frequency baseband signal to be sent into a medium-high frequency signal. The demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing. After the low-frequency baseband signal is processed by the baseband processor, it is passed to the application processor. The application processor outputs a sound signal through an audio device (not limited to a speaker 170A, a receiver 170B, etc.), or displays an image or video through a display screen 194. In some embodiments, the modem processor may be an independent device. In other embodiments, the modem processor may be independent of the processor 110 and be set in the same device as the mobile communication module 150 or other functional modules.
[0266] The wireless communication module 160 can provide wireless communication solutions including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR), etc., which are applied to the terminal device 100. The wireless communication module 160 can be one or more devices integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via the antenna 2, demodulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110. The wireless communication module 160 can also receive the signal to be sent from the processor 110, modulate the frequency, amplify it, and convert it into electromagnetic waves for radiation through the antenna 2.
[0267] In some embodiments, the antenna 1 of the terminal device 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the terminal device 100 can communicate with the network and other devices through wireless communication technology. The wireless communication technology may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), wideband code division multiple access (WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE), BT, GNSS, WLAN, NFC, FM, and / or IR technology. The GNSS may include a global positioning system (GPS), a global navigation satellite system (GLONASS), a Beidou navigation satellite system (BDS), a quasi-zenith satellite system (QZSS) and / or a satellite based augmentation system (SBAS).
[0268] In some embodiments, the terminal device 100 can send a request to install an application to a server corresponding to the application market, such as server 200, through the mobile communication module 150 or the wireless communication module 160, receive the initial installation package of the application, or the application installation package sent by the server 200, and send a request to update the SDK or update the application to the server 200, receive the updated SDK or the updated application initial installation package sent by the server 200, and so on.
[0269] The terminal device 100 implements the display function through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, which connects the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 110 may include one or more GPUs, which execute program instructions to generate or change display information.
[0270] The display screen 194 is used to display images, videos, etc. The display screen 194 includes a display panel. The display panel can be a liquid crystal display (LCD). The display panel can also be made of an organic light-emitting diode (OLED), an active-matrix organic light emitting diode or an active-matrix organic light emitting diode (AMOLED), a flexible light-emitting diode (FLED), miniled, microled, micro-oled, quantum dot light emitting diodes (QLED), etc. In some embodiments, the electronic device may include 1 or N display screens 194, where N is a positive integer greater than 1.
[0271] In some embodiments, the display screen 194 may be used to display a user interface of an application market application, such as displaying one or more applications available for a user to download or update.
[0272] The terminal device 100 can realize the shooting function through ISP, camera 193, video codec, GPU, display screen 194 and application processor.
[0273] The ISP is used to process the data fed back by the camera 193. For example, when taking a photo, the shutter is opened, and the light is transmitted to the camera photosensitive element through the lens. The light signal is converted into an electrical signal, and the camera photosensitive element transmits the electrical signal to the ISP for processing and converts it into an image visible to the naked eye. The ISP can also perform algorithm optimization on the noise and brightness of the image. The ISP can also optimize the exposure, color temperature and other parameters of the shooting scene. In some embodiments, the ISP can be set in the camera 193.
[0274] The camera 193 is used to capture still images or videos. The object generates an optical image through the lens and projects it onto the photosensitive element. The photosensitive element can be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the optical signal into an electrical signal, and then passes the electrical signal to the ISP to be converted into a digital image signal. The ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in a standard RGB, YUV or other format. In some embodiments, the terminal device 100 may include 1 or N cameras 193, where N is a positive integer greater than 1.
[0275] The digital signal processor is used to process digital signals, and can process not only digital image signals but also other digital signals. For example, when the terminal device 100 is selecting a frequency point, the digital signal processor is used to perform Fourier transform on the frequency point energy.
[0276] Video codecs are used to compress or decompress digital videos. The terminal device 100 may support one or more video codecs. Thus, the terminal device 100 may play or record videos in various coding formats, such as Moving Picture Experts Group (MPEG) 1, MPEG2, MPEG3, MPEG4, etc.
[0277] NPU is a neural network (NN) computing processor. By drawing on the structure of biological neural networks, such as the transmission mode between neurons in the human brain, it can quickly process input information and can also continuously self-learn. Through NPU, applications such as intelligent cognition of the terminal device 100 can be realized, such as image recognition, face recognition, voice recognition, text understanding, etc.
[0278] The internal memory 121 may include one or more random access memories (RAM) and one or more non-volatile memories (NVM).
[0279] Random access memory may include static random-access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM, for example, the fifth generation DDR SDRAM is generally referred to as DDR5 SDRAM), etc.; non-volatile memory may include disk storage devices and flash memory.
[0280] Flash memory can be divided into NOR FLASH, NAND FLASH, 3D NAND FLASH, etc. according to the operating principle; single-level cell (SLC), multi-level cell (MLC), triple-level cell (TLC), quad-level cell (QLC), etc. according to the storage unit potential level; universal flash storage (UFS), embedded multi media card (eMMC), etc. according to the storage specification.
[0281] The random access memory can be directly read and written by the processor 110, and can be used to store executable programs (such as machine instructions) of the operating system or other running programs, and can also be used to store user and application data.
[0282] The non-volatile memory may also store executable programs and user and application data, etc., and may be loaded into the random access memory in advance for direct reading and writing by the processor 110 .
[0283] In some implementations, the internal memory 121 may be used to store the application itself and an SDK associated with the application.
[0284] The external memory interface 120 can be used to connect to an external non-volatile memory to expand the storage capacity of the terminal device 100. The external non-volatile memory communicates with the processor 110 through the external memory interface 120 to implement a data storage function. For example, files such as music and videos are stored in the external non-volatile memory.
[0285] The terminal device 100 can implement audio functions such as music playing and recording through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the headphone jack 170D, and the application processor.
[0286] The audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signals. The audio module 170 can also be used to encode and decode audio signals. In some embodiments, the audio module 170 can be arranged in the processor 110, or some functional modules of the audio module 170 can be arranged in the processor 110.
[0287] The speaker 170A, also called a "speaker", is used to convert an audio electrical signal into a sound signal. The terminal device 100 can listen to music or listen to a hands-free call through the speaker 170A.
[0288] The receiver 170B, also called a "handset", is used to convert audio electrical signals into sound signals. When the terminal device 100 receives a call or voice message, the voice can be received by placing the receiver 170B close to the human ear.
[0289] Microphone 170C, also called "microphone" or "microphone", is used to convert sound signals into electrical signals. When making a call or sending a voice message, the user can make a sound by putting his mouth close to the microphone 170C to input the sound signal into the microphone 170C. The terminal device 100 can be provided with at least one microphone 170C. In other embodiments, the terminal device 100 can be provided with two microphones 170C, which can not only collect sound signals but also realize noise reduction function. In other embodiments, the terminal device 100 can also be provided with three, four or more microphones 170C to realize the collection of sound signals, noise reduction, identification of sound sources, realization of directional recording function, etc.
[0290] The earphone interface 170D is used to connect a wired earphone and can be a USB interface 130 or a 3.5 mm open mobile terminal platform (OMTP) standard interface or a cellular telecommunications industry association of the USA (CTIA) standard interface.
[0291] The pressure sensor 180A is used to sense the pressure signal and can convert the pressure signal into an electrical signal. In some embodiments, the pressure sensor 180A can be set on the display screen 194. There are many types of pressure sensors 180A, such as resistive pressure sensors, inductive pressure sensors, capacitive pressure sensors, etc. The capacitive pressure sensor can be a parallel plate including at least two conductive materials. When a force acts on the pressure sensor 180A, the capacitance between the electrodes changes. The terminal device 100 determines the intensity of the pressure according to the change in capacitance. When a touch operation acts on the display screen 194, the terminal device 100 detects the touch operation intensity according to the pressure sensor 180A. The terminal device 100 can also calculate the touch position according to the detection signal of the pressure sensor 180A. In some embodiments, touch operations acting on the same touch position but with different touch operation intensities can correspond to different operation instructions. For example: when a touch operation with a touch operation intensity less than the first pressure threshold acts on the short message application icon, an instruction to view the short message is executed. When a touch operation with a touch operation intensity greater than or equal to the first pressure threshold acts on the short message application icon, an instruction to create a new short message is executed.
[0292] The gyroscope sensor 180B can be used to determine the motion posture of the terminal device 100. In some embodiments, the angular velocity of the terminal device 100 around three axes (i.e., x, y, and z axes) can be determined by the gyroscope sensor 180B. The gyroscope sensor 180B can be used for anti-shake shooting. For example, when the shutter is pressed, the gyroscope sensor 180B detects the angle of the terminal device 100 shaking, calculates the distance that the lens module needs to compensate based on the angle, and allows the lens to offset the shaking of the terminal device 100 through reverse movement to achieve anti-shake. The gyroscope sensor 180B can also be used for navigation and somatosensory game scenes.
[0293] The air pressure sensor 180C is used to measure air pressure. In some embodiments, the terminal device 100 calculates the altitude through the air pressure value measured by the air pressure sensor 180C to assist positioning and navigation.
[0294] The magnetic sensor 180D includes a Hall sensor. The terminal device 100 can use the magnetic sensor 180D to detect the opening and closing of the flip leather case. In some embodiments, when the terminal device 100 is a flip phone, the terminal device 100 can detect the opening and closing of the flip cover according to the magnetic sensor 180D. Then, according to the detected opening and closing state of the leather case or the opening and closing state of the flip cover, the flip cover automatic unlocking and other features are set.
[0295] The acceleration sensor 180E can detect the magnitude of the acceleration of the terminal device 100 in various directions (generally three axes). When the terminal device 100 is stationary, the magnitude and direction of gravity can be detected. It can also be used to identify the posture of the electronic device and is applied to applications such as horizontal and vertical screen switching and pedometers.
[0296] The distance sensor 180F is used to measure the distance. The terminal device 100 can measure the distance by infrared or laser. In some embodiments, when shooting a scene, the terminal device 100 can use the distance sensor 180F to measure the distance to achieve fast focusing.
[0297] The proximity light sensor 180G may include, for example, a light emitting diode (LED) and a light detector, such as a photodiode. The light emitting diode may be an infrared light emitting diode. The terminal device 100 emits infrared light outward through the light emitting diode. The terminal device 100 uses a photodiode to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it can be determined that there is an object near the terminal device 100. When insufficient reflected light is detected, the terminal device 100 can determine that there is no object near the terminal device 100. The terminal device 100 can use the proximity light sensor 180G to detect that the user holds the terminal device 100 close to the ear to talk, so as to automatically turn off the screen to save power. The proximity light sensor 180G can also be used in leather case mode, and pocket mode automatically unlocks and locks the screen.
[0298] The ambient light sensor 180L is used to sense the ambient light brightness. The terminal device 100 can adaptively adjust the brightness of the display screen 194 according to the perceived ambient light brightness. The ambient light sensor 180L can also be used to automatically adjust the white balance when taking pictures. The ambient light sensor 180L can also cooperate with the proximity light sensor 180G to detect whether the terminal device 100 is in a pocket to prevent accidental touch.
[0299] The fingerprint sensor 180H is used to collect fingerprints. The terminal device 100 can use the collected fingerprint characteristics to achieve fingerprint unlocking, access application locks, fingerprint photography, fingerprint call answering, etc.
[0300] The temperature sensor 180J is used to detect temperature. In some embodiments, the terminal device 100 uses the temperature detected by the temperature sensor 180J to execute a temperature processing strategy. For example, when the temperature reported by the temperature sensor 180J exceeds a threshold, the terminal device 100 reduces the performance of the processor located near the temperature sensor 180J to reduce power consumption and implement thermal protection. In other embodiments, when the temperature is lower than another threshold, the terminal device 100 heats the battery 142 to avoid abnormal shutdown of the terminal device 100 due to low temperature. In other embodiments, when the temperature is lower than another threshold, the terminal device 100 performs a boost on the output voltage of the battery 142 to avoid abnormal shutdown caused by low temperature.
[0301] The touch sensor 180K is also called a "touch control device". The touch sensor 180K can be set on the display screen 194, and the touch sensor 180K and the display screen 194 form a touch screen, also called a "touch control screen". The touch sensor 180K is used to detect touch operations acting on or near it. The touch sensor can pass the detected touch operation to the application processor to determine the type of touch event. Visual output related to the touch operation can be provided through the display screen 194. In other embodiments, the touch sensor 180K can also be set on the surface of the terminal device 100, which is different from the position of the display screen 194.
[0302] The bone conduction sensor 180M can obtain a vibration signal. In some embodiments, the bone conduction sensor 180M can obtain a vibration signal of a vibrating bone block of the vocal part of the human body. The bone conduction sensor 180M can also contact the human pulse to receive a blood pressure beat signal. In some embodiments, the bone conduction sensor 180M can also be set in an earphone and combined into a bone conduction earphone. The audio module 170 can parse out a voice signal based on the vibration signal of the vibrating bone block of the vocal part obtained by the bone conduction sensor 180M to realize a voice function. The application processor can parse the heart rate information based on the blood pressure beat signal obtained by the bone conduction sensor 180M to realize a heart rate detection function.
[0303] The key 190 includes a power key, a volume key, etc. The key 190 may be a mechanical key or a touch key. The terminal device 100 may receive key input and generate key signal input related to user settings and function control of the terminal device 100.
[0304] Motor 191 can generate vibration prompts. Motor 191 can be used for incoming call vibration prompts, and can also be used for touch vibration feedback. For example, touch operations acting on different applications (such as taking pictures, audio playback, etc.) can correspond to different vibration feedback effects. For touch operations acting on different areas of the display screen 194, motor 191 can also correspond to different vibration feedback effects. Different application scenarios (for example: time reminders, receiving messages, alarm clocks, games, etc.) can also correspond to different vibration feedback effects. The touch vibration feedback effect can also support customization.
[0305] Indicator 192 may be an indicator light, which may be used to indicate charging status, power changes, messages, missed calls, notifications, etc.
[0306] The SIM card interface 195 is used to connect a SIM card. The SIM card can be connected to and separated from the terminal device 100 by inserting the SIM card interface 195 or pulling it out from the SIM card interface 195. The terminal device 100 can support 1 or N SIM card interfaces, where N is a positive integer greater than 1. The SIM card interface 195 can support Nano SIM cards, Micro SIM cards, SIM cards, and the like. Multiple cards can be inserted into the same SIM card interface 195 at the same time. The types of the multiple cards can be the same or different. The SIM card interface 195 can also be compatible with different types of SIM cards. The SIM card interface 195 can also be compatible with external memory cards. The terminal device 100 interacts with the network through the SIM card to implement functions such as calls and data communications. In some embodiments, the terminal device 100 uses an eSIM, i.e., an embedded SIM card. The eSIM card can be embedded in the terminal device 100 and cannot be separated from the terminal device 100.
[0307] The terminal device 100 may be a portable terminal device equipped with iOS, Android, Microsoft or other operating systems, such as a mobile phone, a tablet computer, a wearable device, etc., and may also be a non-portable terminal device such as a laptop computer with a touch-sensitive surface or a touch panel, a desktop computer with a touch-sensitive surface or a touch panel. The software system of the terminal device 100 may adopt a layered architecture, an event-driven architecture, a micro-core architecture, a micro-service architecture, or a cloud architecture. The embodiment of the present invention takes the Android system of the layered architecture as an example to exemplify the software structure of the terminal device 100.
[0308] Fig. 9 It is a software structure block diagram of the terminal device 100 according to an embodiment of the present application.
[0309] The layered architecture divides the software into several layers, each with clear roles and division of labor. The layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers, from top to bottom: the application layer, the application framework layer, the Android runtime and system library, and the kernel layer.
[0310] The application layer can include a series of application packages.
[0311] like Fig. 9 As shown, the application package may include a first application, a second application, an application market application, and the like.
[0312] The first application and the second application can both call the SDK and use the functions in the SDK. For example, the first application and the second application can refer to applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message, etc. The embodiment of the present application does not limit the first application and the second application.
[0313] The App Market application can be used to display applications developed by application developers and provide users with an entry point to download and update applications.
[0314] The application framework layer provides an application programming interface (API) and a programming framework for the applications in the application layer. The application framework layer includes some predefined functions.
[0315] like Fig. 9 As shown, the application framework layer may include SDKManager, window manager, content provider, view system, phone manager, resource manager, notification manager, etc.
[0316] SDKManager can be used to complete the installation of the SDK associated with the application when the terminal device 100 installs the application, and record the association between the application and the SDK. When the application is running, the SDKManager can be loaded into the SDK associated with the application to implement the application's call to the SDK. In addition, SDKManager can also be used to update the latest version of the SDK from the server corresponding to the application market when the SDK is updated.
[0317] The window manager is used to manage window programs. The window manager can obtain the display screen size, determine whether there is a status bar, lock the screen, capture the screen, etc.
[0318] Content providers are used to store and retrieve data and make it accessible to applications. The data may include videos, images, audio, calls made and received, browsing history and bookmarks, phone books, etc.
[0319] The view system includes visual controls, such as controls for displaying text, controls for displaying images, etc. The view system can be used to build applications. A display interface can be composed of one or more views. For example, a display interface including a text notification icon can include a view for displaying text and a view for displaying images.
[0320] The phone manager is used to provide communication functions of the terminal device 100, such as management of call status (including connection, disconnection, etc.).
[0321] The resource manager provides various resources for applications, such as localized strings, icons, images, layout files, video files, and so on.
[0322] The notification manager enables applications to display notification information in the status bar. It can be used to convey notification-type messages and can disappear automatically after a short stay without user interaction. For example, the notification manager is used to notify download completion, message reminders, etc. The notification manager can also be a notification that appears in the system top status bar in the form of a chart or scroll bar text, such as notifications of applications running in the background, or a notification that appears on the screen in the form of a dialog window. For example, a text message is displayed in the status bar, a prompt sound is emitted, an electronic device vibrates, an indicator light flashes, etc.
[0323] Android Runtime includes core libraries and virtual machines. Android runtime is responsible for scheduling and management of the Android system.
[0324] The core library consists of two parts: one part is the function that needs to be called by the Java language, and the other part is the Android core library.
[0325] The application layer and the application framework layer run in a virtual machine. The virtual machine executes the Java files of the application layer and the application framework layer as binary files. The virtual machine is used to perform functions such as object life cycle management, stack management, thread management, security and exception management, and garbage collection.
[0326] The system library may include multiple functional modules, such as surface manager, media library, 3D graphics processing library (such as OpenGL ES), 2D graphics engine (such as SGL), etc.
[0327] The surface manager is used to manage the display subsystem and provide the fusion of 2D and 3D layers for multiple applications.
[0328] The media library supports playback and recording of a variety of commonly used audio and video formats, as well as static image files, etc. The media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.
[0329] The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing.
[0330] A 2D graphics engine is a drawing engine for 2D drawings.
[0331] The kernel layer is the layer between hardware and software. The kernel layer contains at least display driver, camera driver, audio driver, and sensor driver.
[0332] The following is an illustrative description of the software and hardware workflow of the terminal device 100 in conjunction with the capture and photo shooting scene.
[0333] When the touch sensor 180K receives a touch operation, the corresponding hardware interrupt is sent to the kernel layer. The kernel layer processes the touch operation into a raw input event (including touch coordinates, timestamp of the touch operation, and other information). The raw input event is stored in the kernel layer. The application framework layer obtains the raw input event from the kernel layer and identifies the control corresponding to the input event. For example, if the touch operation is a touch single-click operation and the control corresponding to the single-click operation is the control of the camera application icon, the camera application calls the interface of the application framework layer to start the camera application, and then starts the camera driver by calling the kernel layer to capture static images or videos through the camera 193.
[0334] Fig.10 A schematic diagram of the hardware structure of the server 200 provided in an embodiment of the present application.
[0335] like Fig.10 As shown, the server 200 may include: one or more processors 201, a memory 202, a communication interface 203, a transmitter 205, a receiver 206, a coupler 207 and an antenna 208. These components may be connected via a bus 204 or other means. Fig.10 Take bus connection as an example.
[0336] The communication interface 203 can be used for the server 200 and other communication devices, such as the electronic device 400. Specifically, the communication interface 203 can be a 3G communication interface, a long-term evolution (LTE) (4G) communication interface, a 5G communication interface, a WLAN communication interface, a WAN communication interface, etc. Not limited to a wireless communication interface, the server 200 can also be configured with a wired communication interface 203 to support wired communication, for example, the backhaul link between the server 200 and other servers can be a wired communication connection.
[0337] In some embodiments of the present application, the transmitter 205 and the receiver 206 can be regarded as a wireless modem. The transmitter 205 can be used to transmit and process the signal output by the processor 201. The receiver 206 can be used to receive the signal. In the server 200, the number of the transmitter 205 and the receiver 206 can be one or more. The antenna 208 can be used to convert the electromagnetic energy in the transmission line into electromagnetic waves in the free space, or to convert the electromagnetic waves in the free space into electromagnetic energy in the transmission line. The coupler 207 can be used to divide the mobile communication signal into multiple paths and distribute it to multiple receivers 206. It can be understood that the antenna 208 of the server 200 can be implemented as a large-scale antenna array.
[0338] The memory 202 is coupled to the processor 201 and is used to store various software programs and / or multiple sets of instructions. Specifically, the memory 202 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more disk storage devices, flash memory devices or other non-volatile solid-state storage devices.
[0339] The memory 202 can store an operating system (hereinafter referred to as system), such as an embedded operating system such as uCOS, VxWorks, or RTLinux.
[0340] In some embodiments, the processor 201 can be used to search for an SDK associated with an application, generate an application installation package for the application based on the initial installation package of the application and the SDK associated with the application, etc. The receiver 206 can be used to receive requests to install the application, requests to update the application, and requests to update the SDK. The transmitter 205 can be used to send application installation packages, SDKs, or initial installation packages of applications, etc. The memory 202 can be used to store SDKs listed by SDK manufacturers, initial installation packages of applications listed by application developers, and application installation packages packaged by the server 200, etc.
[0341] Need to explain, Fig.10 The server 200 shown is only one implementation of the embodiment of the present application. In actual applications, the server 200 may also include more or fewer components, which is not limited here.
[0342] It should be understood that each step in the above method embodiment can be completed by an integrated logic circuit of hardware in a processor or by instructions in the form of software. The method steps disclosed in the embodiments of the present application can be directly embodied as being executed by a hardware processor, or by a combination of hardware and software modules in a processor.
[0343] The present application also provides an electronic device, which may include: a memory and a processor. The memory may be used to store a computer program; the processor may be used to call the computer program in the memory, so that the electronic device executes the method executed by the terminal device 100 or the server 200 in any of the above embodiments.
[0344] The present application also provides a chip system, which includes at least one processor for implementing the functions involved in the method executed by the terminal device 100 or the server 200 in any of the above embodiments.
[0345] In one possible design, the chip system also includes a memory, which is used to store program instructions and data, and the memory is located inside or outside the processor.
[0346] The chip system may be composed of the chip, or may include the chip and other discrete devices.
[0347] Optionally, the processor in the chip system may be one or more. The processor may be implemented by hardware or by software. When implemented by hardware, the processor may be a logic circuit, an integrated circuit, etc. When implemented by software, the processor may be a general-purpose processor implemented by reading software code stored in a memory.
[0348] Optionally, the memory in the chip system may also be one or more. The memory may be integrated with the processor or may be separately arranged with the processor, which is not limited in the embodiments of the present application. Exemplarily, the memory may be a non-transient processor, such as a read-only memory ROM, which may be integrated with the processor on the same chip or may be arranged on different chips respectively. The embodiments of the present application do not specifically limit the type of memory and the arrangement of the memory and the processor.
[0349] Exemplarily, the chip system can be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on chip (SoC), a central processor unit (CPU), a network processor (NP), a digital signal processor (DSP), a microcontroller unit (MCU), a programmable logic device (PLD) or other integrated chips.
[0350] The present application also provides a computer program product, which includes: a computer program (also referred to as code, or instruction), which, when executed, enables a computer to execute a method executed by any one of the terminal device 100 or the server 200 in any of the above-mentioned embodiments.
[0351] The present application also provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program (also referred to as code or instruction). When the computer program is executed, the computer executes the method executed by any one of the terminal device 100 or the server 200 in any of the above embodiments.
[0352] It should be understood that the processor in the embodiment of the present application can be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method embodiment can be completed by the hardware integrated logic circuit or software instructions in the processor. The above processor can be a general processor, a digital signal processor (digitalsignal processor, DSP), an application specific integrated circuit (AP 800plication specific integrated circuit, ASIC), a field programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor to perform, or the hardware and software modules in the decoding processor are combined to perform. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.
[0353] In addition, an embodiment of the present application further provides a device. The device may be a component or a module, and the device may include one or more processors and a memory connected to each other. The memory is used to store a computer program. When the computer program is executed by one or more processors, the device executes the method in each of the above method embodiments.
[0354] Among them, the device, computer-readable storage medium, computer program product or chip provided in the embodiments of the present application are used to execute the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects in the corresponding methods provided above, and will not be repeated here.
[0355] The various implementation modes of the present application can be combined arbitrarily to achieve different technical effects.
[0356] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state disk (SSD)), etc.
[0357] Those skilled in the art can understand that to implement all or part of the processes in the above-mentioned embodiments, the processes can be completed by computer programs to instruct related hardware, and the programs can be stored in computer-readable storage media. When the programs are executed, they can include the processes of the above-mentioned method embodiments. The aforementioned storage media include: ROM or random access memory RAM, magnetic disk or optical disk and other media that can store program codes.
[0358] In short, the above description is only an embodiment of the technical solution of the present invention, and is not intended to limit the protection scope of the present invention. Any modification, equivalent replacement, improvement, etc. made according to the disclosure of the present invention shall be included in the protection scope of the present invention.< / version> < / version> < / artifactid> < / artifactid> < / dependency> < / dependencies>
Claims
1. An application management method, characterized in that: The method comprises: The server receives a first software development kit SDK sent by the first device; The server receives an initial installation package of a first application sent by a second device, where the first SDK is a plug-in called during the running of the first application; The terminal device sends a request to the server to download the first application; The server sends an application installation package of the first application to the terminal device, where the application installation package of the first application is generated by the server, and the application installation package of the first application includes: an initial installation package of the first application and the first SDK; The terminal device installs the first application based on the application installation package of the first application.
2. The method according to claim 1, characterized in that: The terminal device installing the first application based on the application installation package of the first application includes: The terminal device installs the first SDK in the application installation package of the first application in a first file directory; After the terminal device installs the first application based on the application installation package of the first application, the method further includes: The server receives the updated first SDK sent by the first device; The terminal device sends a request for updating the SDK to the server; The server sends the updated first SDK to the terminal device; The terminal device installs the updated first SDK in the first file directory.
3. The method according to claim 1 or 2, characterized in that: The terminal device installing the first application based on the application installation package of the first application includes: The terminal device installs the initial installation package of the first application in the application installation package of the first application in the second file directory; After the terminal device installs the first application based on the application installation package of the first application, the method further includes: The server receives an updated initial installation package of the first application sent by the second device; The terminal device sends a request for updating the application to the server; The server sends an updated initial installation package of the first application to the terminal device; The terminal device installs the updated initial installation package of the first application in the second file directory.
4. The method according to any one of claims 1 to 3, characterized in that: After the terminal device installs the first application based on the application installation package of the first application, the method further includes: The terminal device sends a request to the server to download a second application; When the server determines that the data sent to the terminal device in the past includes the first SDK, the server sends an initial installation package of the second application to the terminal device, where the first SDK is a plug-in called during the running of the second application; The terminal device installs the second application based on the initial installation package of the second application.
5. The method according to any one of claims 1 to 3, characterized in that: After the terminal device installs the first application based on the application installation package of the first application, the method further includes: The terminal device sends a request to the server to download a second application; The server sends an application installation package of the second application to the terminal device, where the application installation package of the second application is generated by the server, and the application installation package of the second application includes: an initial installation package of the second application and the first SDK, where the first SDK is a plug-in called during the running of the second application; The terminal device installs the second application based on the initial installation package of the second application, and does not install the first SDK in the application installation package of the second application.
6. The method according to claim 4 or 5, characterized in that: The terminal device installing the first application based on the application installation package of the first application includes: The terminal device installs the first SDK in the application installation package of the first application in a first file directory; After the terminal device installs the second application, the method further includes: The terminal device controls the second application to call the first SDK installed in the first file directory.
7. The method according to any one of claims 1 to 6, characterized in that: The server stores one or more SDKs; the initial installation package of the first application includes an access identifier of the first SDK, and the access identifier of the first SDK is used by the server to find the first SDK from the one or more SDKs.
8. The method according to claim 7, characterized in that The access identifier of the first SDK is stored in a declaration file in the initial installation package of the first application.
9. An application management method, characterized in that: The method comprises: The server receives the first SDK sent by the first device; The server receives an initial installation package of a first application sent by a second device, where the first SDK is a plug-in called during the running of the first application; The server receives a request for downloading the first application sent by the terminal device; The server sends an application installation package of the first application to the terminal device, where the application installation package of the first application is generated by the server, and the installation package of the first application includes: an initial installation package of the first application and the first SDK.
10. The method according to claim 9, characterized in that After the server sends the application installation package of the first application to the terminal device, the method further includes: The server receives the updated first SDK sent by the first device; The server receives a request for updating the SDK sent by the terminal device; The server sends the updated first SDK to the terminal device.
11. The method according to claim 9 or 10, characterized in that: After the server sends the application installation package of the first application to the terminal device, the method further includes: The server receives an updated initial installation package of the first application sent by the second device; The server receives a request for updating the application sent by the terminal device; The server sends an updated initial installation package of the first application to the terminal device.
12. The method according to any one of claims 9 to 11, characterized in that: After the server sends the application installation package of the first application to the terminal device, the method further includes: The server receives a request for downloading a second application sent by the terminal device; When the server determines that the data historically sent to the terminal device includes the first SDK, the server sends an initial installation package of the second application to the terminal device, where the first SDK is a plug-in called during the running of the second application.
13. The method according to any one of claims 9 to 11, characterized in that: After the server sends the application installation package of the first application to the terminal device, the method further includes: The server receives a request for downloading a second application sent by the terminal device; The server sends an application installation package of the second application to the terminal device. The application installation package of the second application is generated by the server. The application installation package of the second application includes: an initial installation package of the second application and the first SDK. The first SDK is a plug-in called during the operation of the second application.
14. The method according to any one of claims 9 to 13, characterized in that: The server stores one or more SDKs; the initial installation package of the first application includes an access identifier of the first SDK, and the access identifier of the first SDK is used by the server to find the first SDK from the one or more SDKs.
15. The method according to claim 14, characterized in that The access identifier of the first SDK is stored in a declaration file in the initial installation package of the first application.
16. An application management method, characterized in that: The method comprises: The terminal device sends a request to download the first application to the server; The terminal device receives an application installation package of the first application sent by the server, where the application installation package of the first application is generated by the server, and the application installation package of the first application includes: an initial installation package of the first application and the first SDK; The terminal device installs the first application based on the application installation package of the first application.
17. The method according to claim 16, characterized in that The terminal device installing the first application based on the application installation package of the first application includes: The terminal device installs the first SDK in the application installation package of the first application in a first file directory; After the terminal device installs the first application based on the application installation package of the first application, the method further includes: The terminal device sends a request for updating the SDK to the server; The terminal device receives the updated first SDK sent by the server; The terminal device installs the updated first SDK in the first file directory.
18. The method according to claim 16 or 17, characterized in that The terminal device installing the first application based on the application installation package of the first application includes: The terminal device installs the initial installation package of the first application in the application installation package of the first application in the second file directory; After the terminal device installs the first application based on the application installation package of the first application, the method further includes: The terminal device sends a request for updating the application to the server; The terminal device receives an updated initial installation package of the first application sent by the server; The terminal device installs the updated initial installation package of the first application in the second file directory.
19. The method according to any one of claims 16 to 18, characterized in that: After the terminal device installs the first application based on the application installation package of the first application, the method further includes: The terminal device sends a request to the server to download a second application; The terminal device receives an initial installation package of the second application sent by the server, where the initial installation package of the second application is sent by the server when it is determined that the data sent to the terminal device includes the first SDK, and the first SDK is a plug-in called during the running of the second application; The terminal device installs the second application based on the initial installation package of the second application.
20. The method according to any one of claims 16 to 18, characterized in that: After the terminal device installs the first application based on the application installation package of the first application, the method further includes: The terminal device sends a request to the server to download a second application; The terminal device receives an application installation package of the second application sent by the server, where the application installation package of the second application is generated by the server, and the application installation package of the second application includes: an initial installation package of the second application and the first SDK, where the first SDK is a plug-in called during the running of the second application; The terminal device installs the second application based on the initial installation package of the second application, and does not install the first SDK in the application installation package of the second application.
21. The method according to claim 19 or 20, characterized in that The terminal device installing the first application based on the application installation package of the first application includes: The terminal device installs the first SDK in the application installation package of the first application in a first file directory; After the terminal device installs the second application, the method further includes: The terminal device controls the second application to call the first SDK installed in the first file directory.
22. An electronic device, characterized in that: The electronic device comprises a memory, one or more processors, and one or more programs; when the one or more processors execute the one or more programs, the electronic device implements the method as described in any one of claims 9 to 15.
23. A terminal device, characterized in that: It comprises a memory, one or more processors, and one or more programs; when the one or more processors execute the one or more programs, the terminal device implements the method as described in any one of claims 16 to 21.
24. A communication system, characterized in that: The communication system comprises the electronic device as claimed in claim 22 and the terminal device as claimed in claim 23.
25. A computer-readable storage medium comprising instructions, characterized in that: When the instructions are executed on an electronic device, the electronic device executes the method according to any one of claims 9 to 15, or 16 to 21.