Application program starting method, readable storage medium and electronic equipment

By mounting only the core dependency shared library when the application starts and dynamically mounting non-core dependency shared library at runtime, the slow startup speed caused by the need to mount a large number of shared libraries when the application starts, and the application is improved startup speed and user experience.

CN119442220AActive Publication Date: 2025-02-14HUAWEI TECH CO LTD

Patent Information

Application Number
CN202310969659.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-02
Publication Date
2025-02-14
Estimated Expiration
2043-08-02

AI Technical Summary

Technical Problem

When the application starts, it is necessary to mount all dependent shared libraries into the sandbox, resulting in a slow startup process, especially when the application depends on more shared libraries.

Method used

When the application starts, only the core dependency shared library required for the application to start is mounted, and dynamically mount the non-core dependency shared library while the application is running to reduce the mount process at startup.

Benefits of technology

By reducing the number of shared libraries that need to be mounted at startup, the application startup speed is significantly improved and the user experience is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119442220A_ABST
    Figure CN119442220A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of terminals, and discloses an application program starting method, a readable storage medium and electronic equipment. The application program starting method is applied to the electronic equipment, when the electronic equipment detects a starting instruction of a first application, a core dependence shared library needed for starting the first application is mounted in an application process sandbox of the first application, the core dependence shared library comprises resources needing to be loaded when the first application is started, and the resources need to be loaded when the first application is started. Therefore, the first application is quickly started. When the first application needs to load the non-core-dependent shared library in the running process, the corresponding non-core-dependent shared library can be mounted into the application process sandbox of the first application through the sandbox mounting service, so that the first application can be loaded during running, and normal running of the first application can be guaranteed. Through the application, the first application on the electronic equipment can be quickly started, so that the use experience of a user is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of terminal technology, and in particular to an application startup method, a readable storage medium, and an electronic device. Background Art

[0002] With the rapid development of mobile Internet, applications have integrated more and more software development kits (SDKs), thereby reusing common codes, improving development efficiency, and reducing development costs. However, this also significantly increases the memory occupied by the application installation package. In addition, different applications on electronic devices will also integrate the same SDK, and the redundant SDK will occupy a large amount of storage space.

[0003] To this end, an inter-application shared library is set up in the electronic device to store the SDK files in the application, and the application can access the resources of the inter-application shared library. Therefore, the application using the inter-application shared library does not need to package the SDK into the installation package. When the application is running, the operating system of the electronic device can provide a sandbox mounting mechanism (for example, providing an isolated virtualized environment for the application and ensuring that all operations of the application are within this isolated environment), and mount the code and resources of the inter-application shared library into the process sandbox of the running application for loading when the application is running.

[0004] Generally speaking, when an application is started, the operating system of the electronic device needs to mount all the inter-application shared libraries that the application depends on into the sandbox before starting the application, which results in a slow startup process of the application. Moreover, the more inter-application shared libraries an application depends on, the slower the startup speed. Summary of the invention

[0005] Embodiments of the present application provide an application startup method, a readable storage medium, and an electronic device.

[0006] In a first aspect, an embodiment of the present application provides an application startup method, which is applied to an electronic device, and includes: detecting a startup instruction of a first application; mounting a first inter-application shared library required for starting the first application, and starting the first application based on the first inter-application shared library; during the running of the first application, mounting a second inter-application shared library required for running the first application, and running the first application based on the second application shared library.

[0007] It can be understood that in an embodiment of the present application, when the first application on the electronic device is started, the operating system of the electronic device will create an application process sandbox for the first application, and mount the first inter-application shared library required when the first application is started into the application process sandbox, so that the first application loads the corresponding resources when it is started. The first inter-application shared library may also be referred to as a core dependency shared library hereinafter. When the first application is running, if it is necessary to load a second inter-application shared library, the operating system of the electronic device will mount the corresponding second inter-application shared library into the application process sandbox, so that the first application loads the corresponding resources when it is running. The second inter-application shared library may also be referred to as a non-core dependency shared library hereinafter. In this way, the first application does not need to mount all inter-application shared libraries that the first application depends on when it is started, thereby improving the startup speed of the first application and improving the user experience.

[0008] In a possible implementation of the first aspect above, the above-mentioned mounting of the first inter-application shared library required for starting the first application and starting the first application based on the first inter-application shared library includes: creating an application process of the first application, based on the application process of the first application, and accessing the application process sandbox of the first application; the application process of the first application mounts the first inter-application shared library required when starting the first application into the application process sandbox; the application process of the first application obtains resources in the first inter-application shared library from the application process sandbox to start the first application.

[0009] It can be understood that when the first application is started, the application incubator in the operating system of the electronic device can create an application process of the first application and an application process sandbox of the first application. The application process mounts the corresponding first inter-application shared library into the application process sandbox. The first inter-application shared library includes resources that need to be loaded when the first application is started. Therefore, the first application does not need to mount all inter-application shared libraries when it is started, thereby improving the startup speed of the first application.

[0010] In a possible implementation of the first aspect above, the identifier of the inter-application shared library required when the above-mentioned first application is started has a first tag, and the application process of the first application mounts the first inter-application shared library required when the first application is started into the application process sandbox, including: the application process of the first application determines the first inter-application shared library with the first tag from multiple inter-application shared libraries of the first application; the application process of the first application mounts the first inter-application shared library into the application process sandbox based on the first tag.

[0011] It can be understood that in some embodiments of the present application, the first application stores the identifiers of all inter-application shared libraries that the first application depends on, and the identifier of the inter-application shared library required by the first application at runtime has a first mark. When the first application is started, the operating system of the electronic device can mount the inter-application shared library with the first mark on the identifier, and the inter-application shared library with the first mark on the identifier is the first application shared library.

[0012] In a possible implementation of the first aspect above, the above-mentioned electronic device stores a first list, the first list includes an identifier of an inter-application shared library required when the first application is started; and the application process of the first application mounts the first inter-application shared library required when the first application is started into the application process sandbox, including: the application process of the first application determines the first identifier of the first inter-application shared library from the first list, and mounts the first inter-application shared library into the application process sandbox.

[0013] It can be understood that in some embodiments of the present application, the first application stores the identifiers of all inter-application shared libraries that the first application depends on, and the first application stores the inter-application shared libraries that the first application depends on when it is started in the first list, and the inter-application shared libraries corresponding to the identifiers of the inter-application shared libraries in the first list are the first inter-application shared libraries. When the first application is started, the operating system of the electronic device can determine the first inter-application shared library that needs to be mounted from the first list.

[0014] In a possible implementation of the first aspect above, during the running of the first application, the second inter-application shared library required for the running of the first application is mounted, and the first application is run based on the second application shared library, including: mounting the second inter-application shared library required for the running of the first application into the application process sandbox; the application process of the first application obtains the second inter-application shared library from the application process sandbox.

[0015] It can be understood that in some embodiments of the present application, when the first application needs to load the resources of the second application shared library during operation, the operating system of the electronic device can mount the second application shared library into the application process sandbox, thereby dynamically expanding the application process sandbox to ensure that the first application can run normally.

[0016] In a possible implementation of the first aspect above, the above-mentioned mounting the second inter-application shared library required by the first application during runtime into the application process sandbox includes: determining that the second inter-application shared library belongs to the inter-application shared library on which the first application depends; mounting the second inter-application shared library into the application process sandbox; wherein the inter-application shared library on which the first application depends represents the inter-application shared library from which the first application can obtain resources.

[0017] It can be understood that in some embodiments of the present application, when the first application needs to mount an inter-application shared library during operation, the electronic device will also determine whether the inter-application shared library required by the first application is legal. For example, it is determined whether the inter-application shared library required by the first application is the inter-application shared library that the first application depends on. If so, the operating system of the electronic device mounts the application shared library into the application process sandbox. If not, it is not mounted. In this way, the first application can be prevented from illegally accessing other inter-application shared libraries, thereby ensuring the data security of the electronic device.

[0018] In a possible implementation of the first aspect, the first inter-application shared library and the second inter-application shared library are independently stored in the electronic device, and the first inter-application shared library and the second inter-application shared library can be independently updated.

[0019] It is understood that in some embodiments of the present application, the inter-application shared library is independently stored in the electronic device, so the problem of the inter-application shared library can be independently updated after being repaired, and does not need to be updated with the version of the first application. Therefore, the inter-application shared library is updated in a timely manner, which can improve the user experience.

[0020] In a possible implementation of the first aspect above, the method also includes: detecting that the first inter-application shared library and / or the second inter-application shared library is updated to a third inter-application shared library; when the application process of the first application needs to obtain the third inter-application shared library, mounting the third inter-application shared library into the application process sandbox; and the application process of the first application obtains the third inter-application shared library from the application process sandbox.

[0021] It is understood that in some embodiments of the present application, since the inter-application shared library is independently stored in the electronic device, the inter-application shared library can be updated independently. When the inter-application shared library is updated, even if the first application is running, the updated inter-application shared library can be mounted into the application process sandbox so that the first application can be loaded when running. Therefore, the electronic device can obtain the updated inter-application shared library without restarting, which brings a better user experience.

[0022] In a second aspect, an embodiment of the present application provides an electronic device, comprising: a memory for storing instructions; and at least one processor for executing instructions so that the electronic device implements the application startup method provided in the first aspect and any possible implementation of the first aspect.

[0023] In a third aspect, an embodiment of the present application provides a computer-readable storage medium having instructions stored thereon. When the instructions are executed on a computer, the computer executes the application startup method provided by the first aspect and any possible implementation of the first aspect.

[0024] In a fourth aspect, an embodiment of the present application provides a program product, which, when running on an electronic device, enables the electronic device to implement the application startup method provided in the first aspect and any possible implementation of the first aspect.

[0025] It should be understood that the beneficial effects of the second to fourth aspects mentioned above can be referred to the description of the first aspect mentioned above and will not be elaborated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] Figure 1 According to an embodiment of the present application, a method for mounting a shared library between applications is shown;

[0027] Figure 2 According to some embodiments of the present application, a schematic diagram of a mounting scenario of a shared library between applications is shown;

[0028] Figure 3 According to some embodiments of the present application, a schematic block diagram of a system architecture of an electronic device is shown;

[0029] Figure 4 According to some embodiments of the present application, a flowchart of an implementation method of starting an application is shown;

[0030] Figure 5a According to some embodiments of the present application, a schematic diagram of the structure of an application installation package is shown;

[0031] Figure 5b According to some embodiments of the present application, a schematic diagram of the structure of another application installation package is shown;

[0032] Figure 6a According to some embodiments of the present application, an interactive flow chart of a method for dynamically extending an application process sandbox by a sandbox mounting service is shown;

[0033] Figure 6b According to some embodiments of the present application, an interactive flow chart of another method for dynamically extending an application process sandbox by a sandbox mounting service is shown;

[0034] Figure 7 According to some embodiments of the present application, an interactive flow chart of an application process detecting the state of an application process sandbox is shown;

[0035] Figure 8 According to some embodiments of the present application, a schematic structural diagram of an electronic device is shown. DETAILED DESCRIPTION

[0036] The illustrative embodiments of the present application include, but are not limited to, an application launching method, a readable storage medium, and an electronic device.

[0037] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described in detail below in conjunction with the accompanying drawings and specific implementation methods.

[0038] As mentioned above, when an application is started, the operating system of the electronic device needs to mount all the inter-application shared libraries that the application depends on into the sandbox before starting the application, which results in a slow startup process of the application. Moreover, the more inter-application shared libraries an application depends on, the slower the startup speed.

[0039] For example, Figure 1 According to an embodiment of the present application, a method for mounting a shared library between applications is shown.

[0040] like Figure 1 As shown, the physical file system of the electronic device (such as the non-volatile memory in the electronic device) 01 stores the inter-application shared library 1, the inter-application shared library 2 and the inter-application shared library 3. When the A application installed in the electronic device is started, the operating system of the electronic device first establishes the A application process sandbox 02 through the sandbox mounting mechanism, and mounts the code and resources of the A application, as well as the inter-application shared library 1 and the inter-application shared library 2 on which the operation of the A application depends, into the A application process sandbox 02, and then starts the A application. For another example, the B application depends on the inter-application shared library 2 and the inter-application shared library 3. When the B application is started, the operating system of the electronic device establishes the B application process sandbox 03 through the sandbox mounting mechanism, and mounts the code and resources of the B application into the B application process sandbox 03. The operating system of the electronic device will mount the inter-application shared library 2 and the inter-application shared library 3 in the physical file system 01 into the B application process sandbox 03, and then start the B application.

[0041] In order to solve the problem that when the application installed in the above electronic device is started, the system of the electronic device needs to mount all the inter-application shared libraries that the application depends on into the process sandbox before starting the application, resulting in a slow application startup speed. The present application provides a method for starting an application. When the electronic device starts the application, it can first determine the inter-application shared library (hereinafter referred to as the core dependency shared library) required for the application startup identified in the application. Then, the electronic device can mount the core dependency shared library of the application into the application process sandbox of the application and start the application. Finally, after the application is started, the inter-application shared library (hereinafter referred to as the non-core dependency shared library) required for the application to run is mounted into the process sandbox of the application. In this way, the electronic device can start the application after mounting the core dependency shared library of the application into the process sandbox of the application, without having to start the application after all the inter-application shared libraries of the application are mounted, thereby improving the startup speed of the application.

[0042] In some embodiments, the application stores the identifier of the inter-application shared library that the application depends on. Moreover, in the above-mentioned inter-application shared library identifier, the core dependency shared library has a first mark. The operating system of the electronic device can determine that the inter-application shared library is a core dependency shared library based on the first mark. For example, if a certain inter-application shared library is a core dependency shared library of the application, the first mark of the identifier of the inter-application shared library stored by the application can be set to 1, and the mark added to the identifier of the non-core dependency shared library is 0.

[0043] In other embodiments, the application may determine the core dependency shared library by storing the identifiers of the inter-application shared libraries related to the application in different lists. For example, the identifier of the core dependency shared library is stored in the core dependency list, and the identifier of the non-core dependency shared library is stored in the non-core dependency list. When the operating system of the electronic device mounts the inter-application shared library, the core dependency shared library may be mounted first based on the identifier in the core dependency list.

[0044] It should be understood that the core dependency shared library refers to the inter-application shared library in the inter-application shared library list that the application depends on, which must be loaded when the application starts. The non-core dependency shared library refers to the inter-application shared library in the inter-application shared library list that the application depends on, except for the core dependency shared library. Among them, the inter-application shared library consists of code, resources and configuration files, which are independently installed in the system of the electronic device and can be shared among multiple applications, but cannot run independently.

[0045] Through this solution, the inter-application shared libraries that the applications depend on are configured in the installation packages of the applications installed on the electronic device, and the inter-application shared libraries that the configured applications depend on include core-dependent shared libraries and non-core-dependent shared libraries. The core-dependent shared libraries include resources that the application must load when it starts, and the non-core-dependent shared libraries include other resources that the application needs to load when it runs. Therefore, when the application starts, the operating system of the electronic device can start the application after mounting the core-dependent shared libraries into the process sandbox of the application, so that the application can start quickly. After the application starts, when other resources need to be loaded, the operating system of the electronic device can mount the non-core-dependent shared libraries into the process sandbox of the application so that the application can run normally.

[0046] Figure 2 According to an embodiment of the present application, a schematic diagram of a mounting scenario of a shared library between applications is shown.

[0047] For example, Figure 2 As shown, in an embodiment of the present application, the inter-application shared libraries that the D application installed on the electronic device depends on include a core-dependent shared library 1, a core-dependent shared library 2, and a non-core-dependent shared library 1. Among them, the core-dependent shared library 1 and the core-dependent shared library 2 are resources that must be loaded when the D application is started, and the non-core-dependent shared library 1 is a resource that needs to be loaded when the D application is running. When the D application is started, the operating system of the electronic device will create a process sandbox 20 of the D application, and then mount the code and resources 21 of the D application, the core-dependent shared library 1, and the core-dependent shared library 2 into the process sandbox 20. At this time, the D application can load the resources in the process sandbox 20 to start. If the D application needs to load other resources during operation, the operating system of the electronic device can mount the corresponding non-core-dependent shared library 1 into the process sandbox 20' of the D application according to the requirements of the D application when it is running.

[0048] Through the above method, when the D application is started, the operating system of the electronic device does not need to mount all the inter-application shared libraries that the D application depends on into the process sandbox 20 of the D application. Therefore, when the D application is started, the operating system of the electronic device needs to mount fewer inter-application shared libraries, and the D application starts quickly, thereby improving the user experience.

[0049] The following introduces a system architecture diagram of an electronic device by taking an electronic device as an example.

[0050] Figure 3 According to an embodiment of the present application, a schematic block diagram of a system architecture of an electronic device is shown.

[0051] The operating system of the electronic device may adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture. The embodiment of the present invention takes the layered Openharmony system as an example to illustrate the system architecture of the electronic device 1.

[0052] 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 Openharmony system is divided from top to bottom into an application layer 310, an application framework layer 320, and a file system 330.

[0053] like Figure 3 As shown, the application layer 310 may include a series of application packages and application processes 313 of the application.

[0054] The application package may include other applications such as application market 311 and desktop 312. In other embodiments, other applications include camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, information and other applications.

[0055] The application market 311 is an entry point for users to obtain and install application installation packages.

[0056] The desktop 312 displays icons of applications installed on the electronic device to the user and provides an entry for launching the applications.

[0057] The application process 313 is a process in which any of the above application packages is executed once. In the embodiment of the present application, the application process 313 also has a higher authority to create an application process sandbox 333 and mount an inter-application shared library into the application process sandbox 333. However, after mounting the inter-application shared library, the application process 313 automatically lowers its authority and loads resources such as the code for running the application.

[0058] The application framework layer 320 provides an application programming interface (API) and a programming framework for the applications of the application layer 310. The application framework layer 320 includes some predefined functions.

[0059] In some embodiments of the present application, the application framework layer 320 may include a bundle management service (BMS) 321 , an ability management service (AMS) 322 , an application incubator (app spawn) 323 , and a sandbox mounting service 324 .

[0060] The package management service 321 is used to parse and install the application installation package, record the application information in the database of the electronic device, and persist the code, resources and configuration files of the application installation package in the electronic device for loading when the application is started.

[0061] It should be understood that in this embodiment, the user can install the application from the application market 311, and the package management service 321 independently saves the application installation package 331 and the shared library between applications in the application to the file system 330 of the electronic device, where the shared library between applications consists of code, resources and configuration files, is installed independently, and can be shared among multiple applications, but cannot run independently.

[0062] The meta-capability management service 322 is used to manage the life cycle of the application at runtime. The application process 313 can support multiple abilities (meta-capabilities), and abilities have the ability to be called across application processes and within the same process. The meta-capability management service 322 uniformly schedules and manages each ability in the application, and manages the life cycle changes of abilities.

[0063] In some embodiments, the meta-capability management service 322 includes a connection management module (ability connect manager), a data management module (data ability manager), an app management service scheduling module (app scheduler), an ability scheduling module (ability scheduler) and a lifecycle scheduling module (lifecycle deal).

[0064] The connection management module (ability connect manager) is a module for the meta-capability management service 322 to manage the connection of the service type ability.

[0065] The data ability manager is a module that manages the data type ability of the meta-ability management service 322.

[0066] The app management service scheduling module (app scheduler) provides the meta-capability management service 322 with the ability to schedule and manage user program management services.

[0067] The ability scheduling module (ability scheduler) provides the ability to schedule and manage ability.

[0068] The lifecycle scheduling module (lifecycledeal) is a module that manages and schedules the lifecycle events of the ability by the meta-capability management service 322.

[0069] It should be understood that the meta-capability management service 322 can query the package management service 321 for information such as the inter-application shared library set 332 on which the application depends, wherein the inter-application shared library set 332 includes core dependency shared libraries and non-core dependency shared libraries. The meta-capability management service 322 sends the above information to the application incubator 323, requesting the application incubator 323 to hatch the application process 313.

[0070] The application incubator 323 is used to prepare the resources required for the application to start and create the application process 313. At this time, the application process 313 has the same high authority as the application incubator 323 and can create the application process sandbox 333 and mount the inter-application shared library into the application process sandbox 333. After mounting the inter-application shared library, the corresponding authority of the application process 313 will be reduced and can only load the code or resources and other data required for the application to start or run.

[0071] The application process sandbox 333 is the range in which the application process 313 can access and load files. The application process sandboxes 333 of different applications are isolated from each other, and after the application is started, the application incubator 323 cannot change the application process sandbox 333.

[0072] It should be understood that after obtaining information such as the inter-application shared libraries that the application depends on, the application incubator 323 can start the application process 313 of the corresponding application, then establish the application process sandbox 333 of the application, and mount the core dependent shared libraries of the application and the resources and codes of the application installation package into the application process sandbox 333. During the operation of the application process 313, only files in the application process sandbox 333 can be loaded.

[0073] The sandbox mounting service 324 is a functional unit with higher permissions, which provides the application process 313 with the ability to dynamically change the scope of the process sandbox.

[0074] It should be understood that since only the core dependency shared library is mounted in the application process sandbox 333, the application needs to load the files of the non-core dependency shared library during the running process after startup, and at this time the application process 313 will request the sandbox mounting service 324 to expand the process sandbox 333. The sandbox mounting service 324 has a higher authority and can continue to mount the non-core dependency shared library into the application process sandbox 333, thereby dynamically expanding the application process sandbox 333, so as to achieve fast startup of the application.

[0075] The file system 330 may be, for example, a memory of an electronic device storing an application installation package 331 and a shared library between applications, such as a random-access memory (RAM) and a flash memory, etc. In other embodiments, the file system 330 may also include a floppy disk, an optical disk, an optical disk, a magneto-optical disk, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic card or an optical card, a flash memory, or a tangible machine-readable memory for transmitting information (e.g., a carrier wave, an infrared signal, a digital signal, etc.) by using the Internet in the form of electrical, optical, acoustic or other propagation signals.

[0076] It should be understood that users can download corresponding applications through the application market 311 on the electronic device, and the package management service 321 in the electronic device operating system saves the application installation package 331 and the inter-application shared library set 332 of the application installed by the user in the file system 330 of the electronic device respectively.

[0077] When the user clicks on the icon of the application on the desktop 312 of the electronic device, the desktop 312 responds to the user's operation and requests the meta-capability management service 322 to start the application. After receiving the request to start the application, the meta-capability management service 322 queries the package management service 321 for information such as the inter-application shared library on which the application depends. Then the meta-capability management service 322 requests the application incubator 323 to create an application process 313 of the application based on the acquired information. The application process 313 creates an application process sandbox 333 of the application and mounts the core dependency shared library of the application into the application process sandbox 333. After that, the permission of the application process 313 to create the application process sandbox 333 and mount the inter-application shared library disappears. When the application is started or running, the application process 313 loads the core dependency shared library in the application process sandbox 333 to start the application and display the operation interface of the application to the user.

[0078] When the user operates the operating interface of the application, the application process 313 responds to the user's operation request and the sandbox mounting service 324 dynamically expands the application process sandbox 333, and mounts the non-core dependency libraries required by the application process 313 into the application process sandbox 333, so that the application process 313 can load the corresponding resources when running.

[0079] It can be understood that through the above embodiment, when the application is started, only the core dependency shared library of the application is mounted in the application process sandbox 333. Therefore, the application can be started quickly. When it is necessary to load the file of the non-core dependency shared library during the operation of the application, the corresponding non-core dependency shared library can be mounted to the application process sandbox 333 through the sandbox mounting service 324, thereby dynamically expanding the application process sandbox 333 to ensure the normal operation of the application.

[0080] Next, a method for starting an application is introduced in combination with the above system architecture.

[0081] Figure 4 According to some embodiments of the present application, a flowchart of an implementation method of starting an application is shown.

[0082] It can be understood that in the embodiment of the present application, both the application market 311 and the desktop 312 can be Figure 3 The application program in the electronic device in the embodiment. The package management service 321, the meta-capability management service 322, the application incubator 323, the application process 313, the sandbox mounting service 324 and the application process sandbox 333 are all Figure 3 Functional units of the electronic device in the embodiment.

[0083] like Figure 4 As shown, the process includes:

[0084] 401 , the developer configures the inter-application shared library set 332 in the application installation package 331 .

[0085] Exemplarily, the application installation package 331 includes code, resources and configuration files. In addition to developing the code and resources of the application, the developer also needs to specify the inter-application shared library set 332 that the application depends on when running in the configuration file. And in the embodiment of the present application, the developer also needs to identify in the configuration file whether each inter-application shared library in the inter-application shared library set 332 is a core dependency shared library.

[0086] Figure 5a According to some embodiments of the present application, a schematic diagram of the structure of an application installation package 331 is shown.

[0087] like Figure 5aAs shown, the application installation package 331 includes code, resources and configuration files. A core dependency list and a non-core dependency list are set in the configuration file to identify whether the inter-application shared library is a core dependency shared library. The core dependency list includes the identifiers of the inter-application shared libraries of shared library A and shared library B, so shared library A and shared library B are core dependency shared libraries. When the application incubator 323 mounts the inter-application shared library to the application process sandbox 333 to start the application program, it is only necessary to mount the inter-application shared library corresponding to the identifier of the inter-application shared library in the core dependency list. The identifiers of non-core dependency shared libraries, such as the identifiers of shared library C and shared library D, are stored in the non-core dependency list. When the sandbox mounting service 324 dynamically expands the application process sandbox 333, shared library C and shared library D can be mounted according to the identifiers of the inter-application shared libraries in the non-core dependency list.

[0088] Figure 5b According to some embodiments of the present application, a schematic diagram of the structure of another application installation package is shown.

[0089] like Figure 5b As shown, the application installation package 331 includes code, resources and configuration files. A dependency list of inter-application shared libraries is set in the configuration file. The dependency list includes identifiers of inter-application shared libraries such as shared library A, shared library B, shared library C and shared library D. Exemplarily, the identifiers of shared library A and shared library B have a first mark 1, indicating that shared library A and shared library B are core dependency shared libraries. The identifiers of shared library C and shared library D have a mark 2, indicating that shared library C and shared library D are non-core dependency shared libraries. When the application process 313 mounts the inter-application shared library to the application process sandbox 333 to start the application, it is only necessary to mount the inter-application shared library with the first mark 1 on the identifier. When the sandbox mounting service 324 dynamically expands the application process sandbox 333, shared library C and shared library D with a mark 2 on the identifier can be mounted. It should be understood that the first mark 1 and the mark 2 can also be 0 and 1, for example, to distinguish between core dependency shared libraries and non-core dependency shared libraries. In other embodiments, the first mark 1 and the mark 2 may also be in other forms.

[0090] 402 , the developer publishes the application installation package 331 to the application market 311 .

[0091] Exemplarily, the application market 311 is an entry point for users to obtain and install application installation packages 331 , and developers publish application installation packages 331 on the application market 311 for users to download.

[0092] 403 , the application market 311 downloads the application installation package 331 in response to the user operation.

[0093] For example, the user can browse applications on the application market 311 and click on the installation icon corresponding to the application to install the application installation package 331. The application market 311 can download the installation package of the corresponding application in response to the user's click operation.

[0094] It should be understood that the installation icon corresponding to the application represents a button for downloading the application installation package 331. In other embodiments, the installation icon may also be a download icon or other icons.

[0095] 404 , the application market 311 downloads the application installation package 331 and its dependent inter-application shared libraries and calls the package management service 321 to install the application.

[0096] Exemplarily, in response to the user clicking the installation icon corresponding to the application, the application market 311 downloads the application installation package 331 and the inter-application shared library that the application depends on, and calls the interface of the package management service 321 to install the application. The package management service 321 saves the application installation package 331 and the inter-application shared library that the application depends on to the system file 330 of the electronic device.

[0097] It should be understood that when the corresponding inter-application shared library has been saved in the system file 330 of the electronic device, the electronic device may not download the inter-application shared library.

[0098] 405 , the desktop 312 detects that the user clicks on the icon of the application.

[0099] Exemplarily, in an embodiment of the present application, the desktop 312 displays icons of applications installed on the electronic device to the user and provides an entry for starting the application. The user can click the icon of the application to start the application.

[0100] 406 , the desktop 312 initiates a request to the meta-capability management service 322 to start the application.

[0101] Exemplarily, after the user clicks on the icon of the application, the desktop 312 responds to the user's click operation and requests the meta-capability management service 322 to start the corresponding application.

[0102] 407 , the meta-capability management service 322 queries the package management service 321 for application information of the application program.

[0103] Exemplarily, after receiving a request to start an application from the desktop 312, the meta-capability management service 322 queries the package management service 321 for application information of the corresponding application. In an embodiment of the present application, the application information may include application information and inter-application shared library information on which the application depends.

[0104] 408 , the meta-capability management service 322 sends the application information to the application incubator 323 .

[0105] 409 , the application incubator 323 creates an application process 313 of the corresponding application program.

[0106] Exemplarily, after acquiring the application information, the application incubator 323 can create the application process 313 of the corresponding application according to the application program information in the application information. The application incubator 323 creates the application process 313 by forking the process.

[0107] 410 , the application process 313 creates an application process sandbox 333 of the application program.

[0108] Exemplarily, the application incubator 323 has a higher authority when creating the application process 313, and can create the application process sandbox 333 of the corresponding application. The application process 313 is a child process of the application incubator 323 process, has the same high authority as the application incubator 323 process, and the application process 313 completes the creation of the application process sandbox 333.

[0109] 411, the application process 313 mounts the core dependency shared library into the application process sandbox 333, and then reduces the permissions.

[0110] Exemplarily, after the application process 313 creates the application process sandbox 333, the core dependency shared library of the corresponding application can be mounted in the application process sandbox 333. When the application process 313 completes the operation of mounting the core dependency shared library, the corresponding permission to mount the inter-application shared library will disappear, and the inter-application shared library can no longer be mounted in the application process sandbox 333. In some embodiments of the present application, after the application process 313 creates the application process sandbox 333, only the core dependency shared library of the application can be mounted in the application process sandbox 333, so that the application process 313 can load the required file resources from the application process sandbox 333 when starting the application.

[0111] 412 , the application process 313 loads code and resources from the application process sandbox 333 .

[0112] Exemplarily, after the application incubator 323 mounts the core dependency shared library to the application process sandbox 333 , the application process 313 can load the code and resources of the core application shared library in the application process sandbox 333 , start the application program and execute the corresponding business logic.

[0113] 413, the application process 313 displays the interface of the application program to the user.

[0114] Exemplarily, after the application process 313 has loaded the codes and resources in the application process sandbox 333 , the application process 313 displays a corresponding operation interface to the user for the user to operate.

[0115] 414 , the application process 313 requests the sandbox mounting service 324 to dynamically expand the application process sandbox 333 .

[0116] For example, if the application process 313 needs to load the code and resources in the non-core dependent shared library during the process of responding to the user's operation, it needs to request the sandbox mounting service 324 to dynamically expand the application process sandbox 333. It should be understood that after the application incubator 323 performs the operation of mounting the inter-application shared library to the application process sandbox 333 once, it has no authority to mount the inter-application shared library to the application process sandbox 333 again. The sandbox mounting service 324 has a higher authority, so the application process 313 can request the sandbox mounting service 324 to dynamically expand the application process sandbox 333.

[0117] 415 , the sandbox mounting service 324 processes the extension request of the application process sandbox 333 .

[0118] For example, in an embodiment of the present application, after the sandbox mounting service 324 receives a request from the application process 313 to dynamically expand the application process sandbox 333, it can process the request and mount the corresponding non-core application shared library into the application process sandbox 333. The process of the sandbox mounting service 324 dynamically expanding the application process sandbox 333 is described below.

[0119] 416 , the application process 313 detects the status of the application process sandbox 333 .

[0120] Exemplarily, in an embodiment of the present application, the application process 313 detects the state of the application process sandbox 333 by, for example, providing the application process 313 with the ability to monitor the state of the application process sandbox 333 through the sandbox mounting service 324. The monitoring capability may include, for example, the ability to monitor the states of successful mounting of a shared library between applications, failure to mount a shared library between applications, and version updates of shared libraries between applications. The process of the application process 313 detecting the state of the application process sandbox 333 is described below.

[0121] It can be understood that in the embodiment of the present application, when the application is started, the application incubator 323 only needs to mount the core dependency shared library of the application in the application process sandbox 333, so the application can be started quickly. During the operation of the application, the sandbox mounting service 324 can be requested to mount the corresponding non-core dependency shared library into the application process sandbox 333 according to the user's operation. This ensures the normal operation of the application.

[0122] The following introduces Figure 4The method of dynamically extending the application process sandbox 333 by the sandbox mounting service 324 of the process 414 in the embodiment.

[0123] It should be understood that after the application incubator 323 executes an operation of mounting an inter-application shared library to the application process sandbox 333, the corresponding mounting permission will disappear, and the application incubator 323 does not have the permission to mount the inter-application shared library to the application process sandbox 333 again. Therefore, in the embodiment of the present application, it is necessary to set up a sandbox mounting service 324 with mounting permission to mount non-core dependent shared libraries to the application process sandbox 333, thereby dynamically expanding the application process sandbox 333.

[0124] Figure 6a According to an embodiment of the present application, an interactive flow chart of a method for a sandbox mounting service 324 to dynamically extend an application process sandbox 333 is shown.

[0125] like Figure 6a As shown, the interaction process includes:

[0126] 601, the application process 313 responds to the user's operation and loads the target shared library.

[0127] For example, in the embodiment of the present application, the application process 313 displays the operation interface of the application program to the user for the user to operate. In response to the user's operation, the application process 313 loads the corresponding inter-application shared library, which is the target shared library.

[0128] 602 , the application process 313 determines whether the application process sandbox 333 has mounted the target shared library.

[0129] Exemplarily, the application process 313 checks whether the target shared library has been mounted into the application process sandbox 333 .

[0130] If it is detected that the target shared library is already included in the application process sandbox 333 , the process 607 is executed to load the code and resources of the target shared library.

[0131] If it is detected that the target shared library is not included in the application process sandbox 333 , the process 603 is executed to request the sandbox mounting service 324 to mount the target shared library.

[0132] 603 , the application process 313 requests the sandbox mounting service 324 to mount the target shared library.

[0133] Exemplarily, in an embodiment of the present application, after the application process 313 detects that the target shared library has not been mounted into the application process sandbox 333 , it requests the sandbox mounting service 324 to mount the target shared library into the application process sandbox 333 .

[0134] 604 , the sandbox mounting service 324 queries the package management service 321 whether the target shared library is in the dependency list in the configuration file of the application.

[0135] Exemplarily, in some embodiments of the present application, the sandbox mounting service 324 can query from the package management service 321 whether the target shared library is in the dependency list in the configuration file of the application, so as to verify whether the target shared library requested to be mounted by the application process 313 is legal.

[0136] If the sandbox mounting service 324 finds from the package management service 321 that the target shared library is in the dependency list of the application program, the process 605 is executed to mount the target shared library into the application process sandbox 333 .

[0137] If the sandbox mounting service 324 finds from the package management service 321 that the target shared library is not in the dependency list of the application, the process 608 is executed to return a mounting failure message to the application process 313 .

[0138] 605 , the sandbox mounting service 324 mounts the target shared library into the application process sandbox 333 .

[0139] For example, after the sandbox mounting service 324 finds the target shared library in the dependency list of the application in the package management service 321, it indicates that the request of the application process 313 is a legitimate request. The sandbox mounting service 324 can obtain the physical path of the target shared library and mount the target shared library into the application process sandbox 333.

[0140] In other embodiments, the sandbox mounting service 324 only needs to obtain the package name, module name, version number and other identification information of the shared library between applications, and can mount the shared library between applications into the application process sandbox 333 without passing in a specific physical path, thereby being able to flexibly expand the scope of the application process sandbox 333.

[0141] 606 , the sandbox mounting service 324 returns a mounting success message to the application process 313 .

[0142] 607 , the application process 313 loads the code and resources of the target shared library from the application process sandbox 333 .

[0143] Exemplarily, after the sandbox mounting service 324 mounts the target shared library to the application process sandbox 333 , the application process 313 can load the code and resources of the target shared library to respond to the user's operation.

[0144] 608 , the sandbox mounting service 324 returns a mounting failure message to the application process 313 .

[0145] Exemplarily, when the target shared library is not an inter-application shared library in the dependency list of the application, it indicates that the request of the application process 313 is illegal, and the sandbox mounting service 324 will not mount the target shared library into the application process sandbox 333 .

[0146] Figure 6b According to an embodiment of the present application, an interactive flow chart of a method for a sandbox mounting service 324 to dynamically extend an application process sandbox 333 is shown.

[0147] like Figure 6b As shown, the interaction process includes:

[0148] 610 , the user triggers the application process 313 to load the target shared library.

[0149] For example, in the embodiment of the present application, the application process 313 displays the operation interface of the application program to the user for the user to operate. In response to the user's operation, the application process 313 loads the corresponding inter-application shared library, which is the target shared library.

[0150] 620 , the application process 313 requests the sandbox mounting service 324 to mount the target shared library.

[0151] Exemplarily, if the application process 313 determines that the target shared library is not mounted in the application process sandbox 333 , the sandbox mounting service 324 is requested to mount the target shared library into the application process sandbox 333 .

[0152] 630 , the sandbox mounting service 324 verifies with the package management service 321 whether the target shared library is in the dependency list of the application.

[0153] Exemplarily, in some embodiments of the present application, the sandbox mounting service 324 can query from the package management service 321 whether the target shared library is in the dependency list in the configuration file of the application, so as to verify whether the target shared library requested to be mounted by the application process 313 is legal.

[0154] If the target shared library is in the dependency list of the application, the verification is successful, and the process 640 is executed to mount the target shared library into the application process sandbox 333 .

[0155] If the target shared library is not in the dependency list of the application, the verification fails, and the process 660 is executed to return a message of mounting failure to the application process 313.

[0156] 640 , the sandbox mounting service 324 mounts the target shared library into the application process sandbox 333 .

[0157] For example, after the sandbox mounting service 324 finds the target shared library in the dependency list of the application in the package management service 321, it indicates that the request of the application process 313 is a legitimate request. The sandbox mounting service 324 can obtain the physical path of the target shared library and mount the target shared library into the application process sandbox 333.

[0158] In other embodiments, the sandbox mounting service 324 only needs to obtain the package name, module name, version number and other identification information of the shared library between applications, and can mount the shared library between applications into the application process sandbox 333 without passing in a specific physical path, thereby being able to flexibly expand the scope of the application process sandbox 333.

[0159] 650 , the sandbox mounting service 324 returns a mounting success message to the application process 313 .

[0160] 660 , the sandbox mounting service 324 returns a mounting failure message to the application process 313 .

[0161] 670 , the application process 313 loads the code and resources of the target shared library from the application process sandbox 333 .

[0162] Exemplarily, after the sandbox mounting service 324 mounts the target shared library to the application process sandbox 333 , the application process 313 can load the code and resources of the target shared library to respond to the user's operation.

[0163] It can be understood that through the embodiments of the present application, the sandbox mounting service 324 can dynamically expand the application process sandbox 333. When the application process 313 requests the sandbox mounting service 324 to mount the target shared library, the sandbox mounting service 324 will first determine the legitimacy of the request of the application process 313. That is, whether the target shared library is in the dependency list of the application. If the request of the application process 313 is legal, the sandbox mounting service 324 will mount the target shared library into the application process sandbox 333 so that the application process 313 can load the code and resources of the target shared library. If the request of the application process 313 is not legal, the sandbox mounting service 324 will not mount the target shared library into the application process sandbox 333, effectively avoiding the security and privacy risks of ordinary applications bypassing the restrictions of the application process sandbox 333 to access arbitrary files.

[0164] The following introduces Figure 4 The method of the application process 313 of the flow 416 in the embodiment to detect the status of the application process sandbox 333.

[0165] Figure 7 According to an embodiment of the present application, an interactive flow chart of an application process 313 detecting a status of an application process sandbox 333 is shown.

[0166] like Figure 7As shown, the interaction process includes:

[0167] 701 , the application process 313 registers the application process sandbox 333 change monitoring with the sandbox mounting service 324 .

[0168] Exemplarily, in an embodiment of the present application, the sandbox mounting service 324 can provide the application process 313 with the ability to monitor the status of the application process sandbox 333, specifically including the ability to monitor the sandbox status such as successful mounting of shared libraries between applications, failure to mount shared libraries between applications, and version updates of shared libraries between applications.

[0169] 702 , the application process 313 requests the sandbox mounting service 324 to expand the application process sandbox 333 .

[0170] Exemplarily, when the application process 313 needs to dynamically expand the application process sandbox 333 , a request to expand the application process sandbox 333 may be sent to the sandbox mounting service 324 .

[0171] 703 , the sandbox mounting service 324 processes the request for extending the application process sandbox 333 .

[0172] For example, after receiving the request from the application process 313 to extend the application process sandbox 333, the sandbox mounting service 324 will process the request. Figure 4 The embodiments in .

[0173] 704 , the sandbox mounting service 324 returns the mounting result of the inter-application shared library to the application process 313 .

[0174] 705 , the application process 313 determines to load the code and resources of the shared library between applications.

[0175] For example, when the application process 313 monitors the message returned by the sandbox mounting service 324 indicating that the inter-application shared library is mounted successfully, the application process 313 may determine to load the code and resources of the corresponding inter-application shared library.

[0176] When the application process 313 monitors the message returned by the sandbox mounting service 324 that the inter-application shared library mounting fails, the corresponding code and resources cannot be loaded.

[0177] 706 , the package management service 321 detects that the application market 311 updates the shared library between applications.

[0178] Exemplarily, since the inter-application shared library is independently installed in the file system of the electronic device, the inter-application shared library can also be independently updated, and the package management service 321 can detect the update of the inter-application shared library from the application market 311 .

[0179] 707 , the package management service 321 notifies the sandbox mounting service 324 of the inter-application shared library update.

[0180] 708 , the sandbox mounting service 324 notifies the application process 313 of the inter-application shared library update.

[0181] 709 , the application process 313 remounts the inter-application shared library as needed.

[0182] Exemplarily, after the inter-application shared library is updated, the application process 313 may issue a request to update the inter-application shared library as required. For example, if the application process 313 needs to load the code and resources of the corresponding inter-application shared library during operation, then a request to re-mount the inter-application shared library may be issued. If the application process 313 does not need to load the resources of the corresponding inter-application shared library during operation, then no request to re-mount the inter-application shared library may be issued.

[0183] 710, the sandbox mounting service 324 mounts the updated inter-application shared library.

[0184] Exemplarily, when the application process 313 needs to re-mount the inter-application shared library, the sandbox mounting service 324 will mount the updated inter-application shared library into the application process sandbox 333 .

[0185] 711 , the sandbox mounting service 324 returns the mounting result of the inter-application shared library to the application process 313 .

[0186] 712, the application process 313 loads the code and resources of the shared library between applications.

[0187] It can be understood that in the embodiment of the present application, after the inter-application shared library is updated, the application process 313 can monitor the message of the inter-application shared library update. Moreover, during the operation of the application process 313, the updated inter-application shared library can also be mounted to the application process sandbox 333 through the sandbox mounting service 324. Therefore, the application program can load the updated inter-application shared library code and resources without restarting.

[0188] The electronic devices involved in some embodiments of the present invention are described in detail below.

[0189] Figure 8 According to an embodiment of the present application, a structural schematic diagram of an electronic device is shown.

[0190] like Figure 8As shown, the electronic device 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.

[0191] It is to be understood that the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the electronic device. In other embodiments of the present application, the electronic device may include more or fewer components than shown in the figure, or combine certain components, or split certain 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.

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

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

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

[0195] 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 interface, and / or a universal serial bus interface, etc.

[0196] The charging management module 140 is used to receive charging input from a charger, where the charger can be a wireless charger or a wired charger.

[0197] 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 to power the processor 110, the internal memory 121, the display screen, the camera, and the wireless communication module 160.

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

[0199] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in the electronic device can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve the utilization of the antennas.

[0200] The mobile communication module 150 can provide a solution for wireless communications including 2G / 3G / 4G / 5G in electronic devices. 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, filter, amplify, etc. 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.

[0201] The wireless communication module 160 can provide wireless communication solutions for applications on electronic devices, 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. The wireless communication module 160 can be one or more devices integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via the antenna 2, modulates the frequency of the electromagnetic wave signal and filters it, and sends the processed signal to the processor 110. The wireless communication module 160 can also receive the signal to be sent from the processor 110, modulate the frequency of it, amplify it, and convert it into electromagnetic waves for radiation through the antenna 2.

[0202] The external memory interface 120 can be used to connect an external memory card, such as a micro SD card, to expand the storage capacity of the electronic device. The external memory card 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 can be stored in the external memory card.

[0203] The internal memory 121 can be used to store computer executable program codes, which include instructions. The internal memory 121 may include a program storage area and a data storage area. Among them, the program storage area may store an operating system, an application required for at least one function (such as a sound playback function, an image playback function, etc.), etc. The data storage area may store data created during the use of the electronic device (such as audio data, a phone book, etc.), etc. In addition, the internal memory 121 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, a universal flash storage (UFS), etc. The processor 110 executes various functional applications and data processing of the electronic device by running instructions stored in the internal memory 121 and / or instructions stored in a memory provided in the processor.

[0204] The pressure sensor 180A is used to sense pressure signals and convert the pressure signals into electrical signals.

[0205] The touch sensor 180K is also called a "touch control device". The touch sensor 180K can be set on the display screen 194. The touch sensor 180K and the display screen 194 form a touch screen, also called a "touch control screen". The touch sensor 180K is used to detect touch operations acting on or near it.

[0206] The SIM card interface 195 is used to connect a SIM card. The SIM card can be connected to and separated from the electronic device by inserting it into the SIM card interface 195 or pulling it out from the SIM card interface 195. In some embodiments, the electronic device uses an eSIM, i.e., an embedded SIM card. The eSIM card can be embedded in the electronic device and cannot be separated from the electronic device. In the accompanying drawings, some structural or method features may be shown in a specific arrangement and / or order. However, it should be understood that such a specific arrangement and / or ordering may not be required. Instead, in some embodiments, these features may be arranged in a manner and / or order different from that shown in the illustrative drawings. In addition, the inclusion of structural or method features in a particular figure does not imply that such features are required in all embodiments, and in some embodiments, these features may not be included or may be combined with other features.

[0207] In the accompanying drawings, some structural or method features may be shown in a specific arrangement and / or order. However, it should be understood that such a specific arrangement and / or order may not be required. Instead, in some embodiments, these features may be arranged in a manner and / or order different from that shown in the illustrative drawings. In addition, the inclusion of structural or method features in a particular figure does not mean that such features are required in all embodiments, and in some embodiments, these features may not be included or may be combined with other features.

[0208] It should be noted that the units / modules mentioned in the various device embodiments of the present application are all logical units / modules. Physically, a logical unit / module can be a physical unit / module, or a part of a physical unit / module, or can be implemented as a combination of multiple physical units / modules. The physical implementation method of these logical units / modules themselves is not the most important. The combination of functions implemented by these logical units / modules is the key to solving the technical problems proposed by the present application. In addition, in order to highlight the innovative part of the present application, the above-mentioned device embodiments of the present application do not introduce units / modules that are not closely related to solving the technical problems proposed by the present application, which does not mean that there are no other units / modules in the above-mentioned device embodiments.

[0209] It should be noted that in the examples and description of this patent, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "including one" do not exclude the existence of other identical elements in the process, method, article or device including the elements.

[0210] Although the present application has been illustrated and described with reference to certain preferred embodiments thereof, it will be apparent to those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present application.

Claims

1. A method for starting an application program, applied to an electronic device, characterized in that: include: Detecting a startup instruction of a first application; Mounting a first inter-application shared library required for starting the first application, and starting the first application based on the first inter-application shared library; During the running of the first application, a second inter-application shared library required for the running of the first application is mounted, and the first application is run based on the second application shared library.

2. The method according to claim 1, characterized in that The step of mounting the first inter-application shared library required for starting the first application, and starting the first application based on the first inter-application shared library includes: Creating an application process of the first application, and creating an application process sandbox of the first application based on the application process of the first application; The application process of the first application mounts the first inter-application shared library required when the first application is started into the application process sandbox; The application process of the first application obtains resources in the first inter-application shared library from the application process sandbox to start the first application.

3. The method according to claim 2, characterized in that The identifier of the inter-application shared library required when the first application is started has a first mark, and The application process of the first application mounts the first inter-application shared library required when the first application is started into the application process sandbox, including: The application process of the first application determines the first inter-application shared library having a first mark from a plurality of inter-application shared libraries of the first application; The application process of the first application mounts the first inter-application shared library into the application process sandbox based on the first tag.

4. The method according to claim 2, characterized in that: The electronic device stores a first list, wherein the first list includes an identifier of an inter-application shared library required when the first application is started; and The application process of the first application mounts the first inter-application shared library required when the first application is started into the application process sandbox, including: The application process of the first application determines the first identifier of the first inter-application shared library from the first list, and mounts the first inter-application shared library into the application process sandbox.

5. The method according to claim 2, characterized in that: The step of mounting a second inter-application shared library required for running the first application during the running of the first application, and running the first application based on the second application shared library, includes: Mounting a second inter-application shared library required for the first application to run into the application process sandbox; The application process of the first application obtains the second inter-application shared library from the application process sandbox.

6. The method according to claim 5, characterized in that The step of mounting the second inter-application shared library required for the first application to run into the application process sandbox includes: Determining that the second inter-application shared library belongs to the inter-application shared library that the first application depends on; Mounting the second inter-application shared library into the application process sandbox; The inter-application shared library that the first application depends on represents the inter-application shared library from which the first application can obtain resources.

7. The method according to claim 1, characterized in that The first inter-application shared library and the second inter-application shared library are independently stored in the electronic device, and the first inter-application shared library and the second inter-application shared library can be independently updated.

8. The method according to claim 7, characterized in that Also includes: It is detected that the first inter-application shared library and / or the second inter-application shared library is updated to a third inter-application shared library; When the application process of the first application needs to obtain the third inter-application shared library, the third inter-application shared library is mounted into the application process sandbox; The application process of the first application obtains the third inter-application shared library from the application process sandbox.

9. An electronic device, characterized in that: include: A memory for storing instructions; At least one processor is used to execute the instructions so that the electronic device implements the application startup method according to any one of claims 1 to 8.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores instructions, and when the instructions are executed on a computer, the computer executes the application startup method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Method for protecting an application program and related computer program product

    CN103460217A

  • Application program starting method and device, terminal and storage medium

    CN108446144A

  • Program starter, program startup method, startup processing program, and integrated circuit

    JP2007334869A

  • Application Context Intercommunication for Mobile Devices

    US20140201760A1

  • Inline dispatching function interface (IDFI), and associated system and / or method

    US20180217851A1

Cited By

  • Industrial gap controller and working method thereof

    CN121455042A