Application installation method and device, electronic equipment, storage medium and program product

By acquiring foreground running data and device status information, system resources are dynamically allocated, solving the problem of mismatch between system resource allocation and installation requirements, and improving application installation speed and user experience.

CN121635909APending Publication Date: 2026-03-10BEIJING XIAOMI MOBILE SOFTWARE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-03
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

In the application installation process, existing technologies suffer from a mismatch between system resource allocation and installation requirements, resulting in slow installation speeds and negatively impacting user experience.

Method used

By acquiring foreground operating data and device status information of electronic devices, system resources are dynamically allocated. Based on user installation expectations and device status, resource scheduling strategies are optimized to ensure that installation needs match application installation speed.

Benefits of technology

While ensuring system stability, it improved application installation speed, optimized user experience, reduced system lag, and extended device lifespan.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121635909A_ABST
    Figure CN121635909A_ABST
Patent Text Reader

Abstract

The invention relates to an application installation method and device, electronic equipment, a storage medium and a program product, and the method comprises the steps: responding to an installation event of at least one first application, and obtaining foreground operation data of the electronic equipment and current equipment state information of the electronic equipment; on the basis of the foreground operation data and the equipment state information, system resources are allocated to the first applications, and installation of the first applications is executed on the basis of the system resources allocated to the first applications, so that the installation efficiency of the first applications can be improved under the condition of ensuring stable system operation. And allocating system resources matched with the current installation demand to each first application, so that the current installation demand is matched with the installation speed of the first application.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of smart terminals, and more particularly to an application installation method, apparatus, electronic device, storage medium, and program product. Background Technology

[0002] In the field of smart terminals, intelligent installation is a fundamental function. Users want to improve the speed and duration of application installation. Therefore, most application installation strategies in related technologies involve optimizing the application installation process and cloud-compiling odex / vdex files. While these methods can improve the speed of application installation, the allocation of system resources during the installation process often does not match the current installation requirements. Summary of the Invention

[0003] To overcome the problems in related technologies, this disclosure provides an application installation method, apparatus, electronic device, storage medium, and program product, which can allocate system resources to each first application that match the current installation requirements while ensuring stable system operation, thereby matching the current installation requirements with the installation speed of the first application.

[0004] According to a first aspect of the present disclosure, an application installation method is provided, comprising:

[0005] In response to an installation event of at least one first application, acquire foreground running data of the electronic device and the current device status information of the electronic device;

[0006] Based on the foreground running data and the device status information, system resources are allocated to each of the first applications, and the installation of each of the first applications is performed based on the system resources allocated to each of the first applications.

[0007] In some embodiments, the first application is at least two; the method further includes:

[0008] Determine at least one attribute information corresponding to the first application; wherein, different attribute information are used to indicate the characteristics of the first application in different dimensions;

[0009] Based on the at least one attribute information corresponding to the first application, the installation priority of the first application is determined;

[0010] The installation of each of the first applications based on the system resources allocated to each of the first applications includes:

[0011] The installation of each of the first applications is performed based on the system resources allocated to each of the first applications and the installation priority of each of the first applications.

[0012] In some embodiments, determining the installation priority of the first application based on the at least one attribute information corresponding to the first application includes:

[0013] Based on the type of the attribute information, determine the first weight value corresponding to each of the attribute information;

[0014] Each attribute information is weighted based on each of the first weight values ​​to obtain the first weighted value corresponding to each attribute information.

[0015] The installation priority of the first application is obtained based on each of the first weighted values ​​corresponding to the first application.

[0016] In some embodiments, allocating system resources to each of the first applications based on the foreground running data and the device status information includes:

[0017] Based on the foreground operation data and the device status information, a resource scheduling strategy for each of the first applications is determined.

[0018] Based on the respective resource scheduling strategies, system resources are allocated to each of the first applications.

[0019] In some embodiments, determining the resource scheduling strategy for each of the first applications based on the foreground running data and the device status information includes:

[0020] Based on the foreground operation data and the device status information, the resource allocation level of each of the first applications is determined;

[0021] Determine the level range in which the resource allocation level of the first application is located, and determine the resource scheduling strategy corresponding to the level range as the resource scheduling strategy of the first application.

[0022] The resource scheduling strategies differ for different grade ranges.

[0023] In some embodiments, determining the resource allocation level for each of the first applications based on the foreground running data and the device status information includes:

[0024] The front-end running data is weighted based on the second weight value to obtain the second weight value;

[0025] The device status information is weighted based on the third weight value to obtain the third weight value;

[0026] Based on the second weighted value and the third weighted value, the resource allocation level of each of the first applications is determined.

[0027] In some embodiments, allocating system resources to each of the first applications based on the respective resource scheduling strategies includes:

[0028] Determine the scheduling parameters indicated by each of the resource scheduling policies; wherein the scheduling parameters indicated by different resource scheduling policies are different; the scheduling parameters include at least one of thread optimization coefficient, CPU frequency, or memory allocation amount;

[0029] Based on the scheduling parameters, the system resources are allocated to each of the first applications.

[0030] According to a second aspect of the present disclosure, an application installation apparatus is provided, comprising:

[0031] The acquisition module is configured to acquire foreground running data of the electronic device and the current device status information of the electronic device in response to an installation event of at least one first application.

[0032] The execution module is configured to allocate system resources to each of the first applications based on the foreground running data and the device status information, and to execute the installation of each of the first applications based on the system resources allocated to each of the first applications.

[0033] In some embodiments, the first application is at least two; the apparatus further includes:

[0034] The first determining module is configured to determine at least one attribute information corresponding to the first application; wherein, different attribute information are used to indicate the characteristics of the first application in different dimensions.

[0035] The second determining module is configured to determine the installation priority of the first application based on at least one attribute information corresponding to the first application.

[0036] The execution module is specifically configured as follows:

[0037] The installation of each of the first applications is performed based on the system resources allocated to each of the first applications and the installation priority of each of the first applications.

[0038] In some embodiments, the second determining module is specifically configured as follows:

[0039] Based on the type of the attribute information, determine the first weight value corresponding to each of the attribute information;

[0040] Each attribute information is weighted based on each of the first weight values ​​to obtain the first weighted value corresponding to each attribute information.

[0041] The installation priority of the first application is obtained based on each of the first weighted values ​​corresponding to the first application.

[0042] In some embodiments, the execution module includes:

[0043] The third determining module is configured to determine the resource scheduling strategy for each of the first applications based on the foreground running data and the device status information.

[0044] The allocation module is configured to allocate system resources to each of the first applications based on the respective resource scheduling strategies.

[0045] In some embodiments, the third determining module includes:

[0046] The first submodule is configured to determine the resource allocation level of each of the first applications based on the foreground running data and the device status information.

[0047] The second submodule is configured to determine the level range of the resource allocation level of the first application, and to determine the resource scheduling strategy corresponding to the level range as the resource scheduling strategy of the first application.

[0048] The resource scheduling strategies differ for different grade ranges.

[0049] In some embodiments, the first submodule is specifically configured as follows:

[0050] The front-end running data is weighted based on the second weight value to obtain the second weight value;

[0051] The device status information is weighted based on the third weight value to obtain the third weight value;

[0052] Based on the second weighted value and the third weighted value, the resource allocation level of each of the first applications is determined.

[0053] In some embodiments, the allocation module is specifically configured as follows:

[0054] Determine the scheduling parameters indicated by each of the resource scheduling policies; wherein the scheduling parameters indicated by different resource scheduling policies are different; the scheduling parameters include at least one of thread optimization coefficient, CPU frequency, or memory allocation amount;

[0055] Based on the scheduling parameters, the system resources are allocated to each of the first applications.

[0056] According to a third aspect of the present disclosure, an electronic device is provided, comprising:

[0057] processor;

[0058] Memory used to store computer programs or instructions;

[0059] The processor executes the computer program or instructions to implement the steps in any of the application installation methods in the first aspect described above.

[0060] According to a fourth aspect of the present disclosure, a non-transitory computer-readable storage medium is provided, comprising:

[0061] When the computer program or instructions in the storage medium are executed by the processor, the steps in any of the application installation methods in the first aspect described above are implemented.

[0062] According to a fifth aspect of the present disclosure, a computer program product is provided, including a computer program or instructions, which, when executed by a processor, implement the steps of any of the application installation methods in the first aspect described above.

[0063] The technical solutions provided by the embodiments of this disclosure may include the following beneficial effects:

[0064] In this embodiment of the disclosure, in response to the installation event of at least one first application, the foreground running data of the electronic device and the current device status information of the electronic device are obtained; based on the foreground running data and the device status information, system resources are allocated to each first application, and the installation of each first application is performed based on the system resources allocated to each first application.

[0065] In this embodiment of the disclosure, the operating status of the foreground can be determined based on the foreground operating data, and the operating status of the electronic device can be determined based on the device status information, thereby determining the current installation requirements. Therefore, by allocating system resources to each first application based on the foreground operating data and device status information, system resources that match the current installation requirements can be allocated to each first application while ensuring stable system operation, thus matching the current installation requirements with the installation speed of the first application.

[0066] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description

[0067] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.

[0068] Figure 1 This is a flowchart illustrating an application installation method according to an exemplary embodiment. Figure 1 ;

[0069] Figure 2 This is a flowchart illustrating an application installation method according to an exemplary embodiment. Figure 2 ;

[0070] Figure 3 This is a schematic diagram of the framework of an application installation method according to an exemplary embodiment;

[0071] Figure 4 This is a flowchart illustrating an application installation method according to an exemplary embodiment. Figure 3 ;

[0072] Figure 5 This is a block diagram illustrating an application installation apparatus according to an exemplary embodiment;

[0073] Figure 6 This is a structural block diagram of an electronic device 600 according to an exemplary embodiment. Detailed Implementation

[0074] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.

[0075] Figure 1 This is a flowchart illustrating an application installation method according to an exemplary embodiment. Figure 1 ,like Figure 1 As shown, the application installation method mainly includes the following steps:

[0076] In step 101, in response to the installation event of at least one first application, the foreground running data of the electronic device and the current device status information of the electronic device are obtained;

[0077] In step 102, based on the foreground running data and device status information, system resources are allocated to each first application, and the installation of each first application is performed based on the system resources allocated to each first application.

[0078] It should be noted that the application installation method proposed in this disclosure can be applied to electronic devices. Here, electronic devices can include terminal devices, such as mobile terminals or fixed terminals. Mobile terminals can include mobile phones, tablets, laptops, wearable electronic devices, etc. Fixed terminals can include desktop computers, smart TVs, in-vehicle systems, etc. In other embodiments, the application installation method can also be applied to applications installed on electronic devices.

[0079] In other embodiments, the application installation method of this disclosure can be configured in an application installation device, which can be located in an electronic device; this disclosure does not limit this. It should be noted that the execution entity of this disclosure can be the central processing unit (CPU) in the electronic device in hardware, and related background services in the electronic device in software; this is not limited.

[0080] To cater to market demand, developers have created various applications for electronic devices, such as games, communication apps, and payment apps. Users can download these applications from app stores and install them on their electronic devices.

[0081] In some embodiments, by calculating disk I / O performance, the Android APK copying operation is skipped. The path in the APK member variable of the Package object created by PackageManagerService for the APK file corresponding to the APP is set to the APK File Path. A thread is started, and the APK File Path and Package object are passed to this thread, and the APK copying operation is performed in parallel. If the APK file is not in the system temporary directory, the standard Android APK copying process is selected based on disk I / O performance and APK FileSize, or the APK File Path is accessed through a link. Finally, the standard Android application installation process is executed. In this way, by performing corresponding operations based on the specific situation of the APK, the application installation time can be shortened.

[0082] In other embodiments, a rapid application deployment system based on a customized Android platform is constructed. This system comprises a cloud-based application store running on a cloud server and an application store client running on mobile smart devices. This improves the Android application installation process by embedding optimized target files required for application execution on mobile smart devices into the APK file. This eliminates the most time-consuming and energy-intensive localization compilation step during installation, achieving rapid installation and deployment. Thus, while ensuring application installation package compatibility, the installation speed of applications can be effectively improved.

[0083] The above solutions all shorten application installation time by optimizing the installation thread, but they all ignore the actual user experience. Because users have different expectations for the installation of the application, their desired installation time also varies. For example, when making a payment, a user expects the corresponding payment application (such as a bank's software) to be installed; that is, the user's expectation for the payment application is high, and they hope to shorten its installation time. However, when playing a game, a user expects the game to run stably; that is, the user's expectation for the application to be installed is low during this time period, and their demand for a better gaming experience far outweighs their demand for the application's installation.

[0084] The above solutions all prioritize allocating system resources to the installation thread when the user's gaming experience needs far outweigh the installation needs of the application to be installed, causing the foreground of the electronic device to lag and thus affecting the user experience.

[0085] Based on this, in this embodiment of the disclosure, by acquiring the foreground running data of the electronic device, analyzing the user's expectations for the installation of the application to be installed, and then allocating system resources to the installation thread of the application to be installed, the user's installation needs are matched with the installation speed of the application to be installed, thereby improving the user experience.

[0086] It is understandable that, in order to reduce the power consumption of electronic devices, the foreground running data and the current device status information of the electronic device are only obtained in response to the installation event of at least one primary application within the electronic device.

[0087] Here, the first application is the application to be installed. The currently detected installation event can be an installation event of one first application or a batch installation event of multiple first applications. This embodiment of the disclosure does not limit this.

[0088] In some embodiments, when the currently detected installation event is an installation event for multiple first applications, the installation priority of each first application can be determined first, and the installation of each first application can be performed based on the installation priority. This can reduce the problem of system lag caused by the installation threads of each first application occupying system resources at the same time.

[0089] Here, the foreground running data includes, but is not limited to, the number of applications, application type, or application running status corresponding to the second application running in the foreground.

[0090] In some embodiments, foreground operating data of electronic devices can be obtained through system-provided APIs or third-party libraries.

[0091] Understandably, since foreground operation also consumes system resources, after obtaining the foreground operation data of electronic devices, it is possible to analyze the user's expectations for the installation of each primary application, and then allocate system resources to the installation thread of the primary application. This ensures that the installation thread of the primary application and the foreground operation both meet the user's needs. This can reduce the situation where users urgently need to install the primary application, thus prioritizing the allocation of system resources to the foreground operation, resulting in a longer installation time for the primary application, and the situation where users urgently need smooth foreground operation, thus prioritizing the allocation of system resources to the installation thread of the primary application, resulting in foreground operation lag.

[0092] In some embodiments, foreground running data includes the number of second applications running in the foreground, their application type, or their running status. When the number of second applications running in the foreground is zero, it can be determined that no second application is currently running on the electronic device. The electronic device may be in a screen-off state or the screen may be displaying the system interface. At this time, the user has no need to use the electronic device, but the user has a high expectation for the installation of each first application and wants to shorten the installation waiting time of each first application. Therefore, more system resources can be allocated to the installation threads of each first application.

[0093] When the second application is determined to be a real-time application such as a mobile game or navigation app based on its application type, users expect the foreground application to be in optimal operating condition. In this case, users have lower expectations for the installation of the various first applications, as their demand for a better gaming experience far outweighs their demand for installing the applications. Therefore, fewer system resources can be allocated to the installation threads of each first application.

[0094] It should be noted that over-allocating system resources can lead to system malfunctions. Therefore, in addition to allocating system resources based on foreground operation data, system resources can also be allocated based on device operating status to optimize system performance, improve resource utilization, and ensure stable system operation.

[0095] Here, if the installation event of at least one first application is detected, the foreground running data of the electronic device and the current device status information of the electronic device can be obtained simultaneously.

[0096] Here, device status information includes, but is not limited to, the device casing temperature, available memory, memory usage, CPU load, or disk I / O activity of the electronic device.

[0097] In some embodiments, the current device status information of an electronic device can be obtained through system-provided APIs or third-party libraries.

[0098] In some embodiments, system resources are dynamically allocated according to the operating state of the electronic device. When the CPU load is low, the device casing temperature is low, or the memory usage is low, more system resources can be released to system tasks (e.g., foreground running threads and / or the installation thread of the first application) to improve resource utilization and shorten the installation waiting time. When the CPU load is high, the device casing temperature is high, or the memory usage is high, less system resources can be released to system tasks (e.g., foreground running threads and / or the installation thread of the first application) to ensure stable system operation and reduce the possibility of damage to internal components of the electronic device.

[0099] Understandably, after allocating system resources to each primary application based on the foreground running data and device status information, the installation of each primary application can be performed based on the system resources allocated to each primary application.

[0100] Here, when fewer system resources are allocated to each first application, the installation time of each first application is longer; when more system resources are allocated to each first application, the installation time of each first application is shorter.

[0101] In this embodiment of the disclosure, by taking into account the user's installation needs and the device's operating status, system resources that match the user's installation expectations are allocated to each first application while ensuring system stability. Therefore, the installation speed of each first application can be increased when the user's installation expectations are high, shortening the user's waiting time, and the foreground can be kept running smoothly when the user's installation expectations are low, thus improving the user's experience.

[0102] In this embodiment of the disclosure, in response to the installation event of at least one first application, the foreground running data of the electronic device and the current device status information of the electronic device are obtained; based on the foreground running data and the device status information, system resources are allocated to each first application, and the installation of each first application is performed based on the system resources allocated to each first application.

[0103] In this embodiment of the disclosure, the operating status of the foreground can be determined based on the foreground operating data, and the operating status of the electronic device can be determined based on the device status information, thereby determining the current installation requirements. Therefore, by allocating system resources to each first application based on the foreground operating data and device status information, system resources that match the current installation requirements can be allocated to each first application while ensuring stable system operation, thus matching the current installation requirements with the installation speed of the first application.

[0104] In some embodiments, the first application may be at least two; the method further includes:

[0105] Determine at least one attribute information corresponding to the first application; wherein, different attribute information is used to indicate the characteristics of the first application in different dimensions;

[0106] The installation priority of the first application is determined based on at least one attribute information corresponding to the first application.

[0107] The installation of each first application is performed based on the system resources allocated to each first application, including:

[0108] The installation of each first application is performed based on the system resources allocated to each first application and the installation priority of each first application.

[0109] It is understandable that when multiple primary applications are installed, installing multiple applications simultaneously can lead to system resource shortages, affecting the overall performance of electronic devices and thus impacting the user experience. Therefore, it is possible to determine the installation priority of each primary application and then execute the installation of each primary application based on the system resources allocated to each primary application and its installation priority.

[0110] Here, different attribute information is used to indicate the characteristics of the first application in different dimensions. For example, when the attribute information is download information, it can indicate the characteristics of the first application in the dimension of download volume; when the attribute information is type information, it can indicate the characteristics of the first application in the dimension of application type; when the attribute information is usage information, it can indicate the characteristics of the first application in the dimension of usage.

[0111] In some embodiments, download information is used to indicate the historical download volume of each first application in the app store. Based on the download information of each first application, a first matching degree between the first application and popular applications can be determined, and then the installation priority of the first application can be determined based on the first matching degree.

[0112] In other embodiments, type information is used to indicate the category of each first application, such as an entertainment application, a shopping application, or a payment application. Based on the category of each first application, the typical usage order of each first application can be determined, and the user's demand for each first application can be analyzed. For example, if multiple first applications are shopping applications and payment applications, based on the usage order of each first application, it can be analyzed that the user first selects goods in the shopping application and then jumps to the payment application to make payment. Therefore, the shopping application can be installed first. After the shopping application is installed, when the user selects goods in the shopping application, the payment application can be installed, which can shorten the user's waiting time. In this way, the installation priority of the first applications can be determined based on the type information of the first applications.

[0113] In other embodiments, usage information is used to indicate the user's usage of each first application, such as usage time and / or usage location. The usage information of each first application is used to analyze the user's expected installation level for each application. For example, if the current displayed time on the electronic device is 12:00, indicating lunchtime, the user's demand for food delivery applications is greater than their demand for entertainment applications. Therefore, the installation priority of the first applications can be determined based on their usage time. As another example, if the current location information of the electronic device is Jiangsu Province, the user's demand for regional applications related to Jiangsu is greater than their demand for regional applications related to Hubei Province. Therefore, the installation priority of the first applications can be determined based on their usage region.

[0114] Here, the installation priority of the first application can be determined based on one attribute of the first application; or it can be determined based on multiple attribute information of the first application. This embodiment of the disclosure does not limit this.

[0115] In some embodiments, after obtaining the installation priority of each first application, the installation priorities can be sorted to obtain the installation order of each first application, and the installation of each first application can be executed based on the installation order and the system resources allocated to each first application.

[0116] In this embodiment of the disclosure, after determining at least one attribute information corresponding to the first application, the installation priority of the first application can be determined based on the at least one attribute information; then, based on the system resources allocated to each first application and the installation priority of each first application, the installation of each first application is executed. Thus, by executing installation events according to the installation priority of each first application, the user's waiting time can be shortened while ensuring stable system operation.

[0117] In some embodiments, determining the installation priority of the first application based on at least one attribute information corresponding to the first application includes:

[0118] Based on the type of attribute information, determine the first weight value corresponding to each attribute information;

[0119] Each attribute information is weighted based on its first weight value to obtain the first weight value for each attribute information.

[0120] The installation priority of the first application is obtained based on the first weighted values ​​corresponding to each first application.

[0121] Understandably, in order to improve the accuracy of determining the installation priority of the first application, a first weight value corresponding to each attribute information can be determined based on the type of each attribute information, and the attribute information can be weighted by each first weight value to obtain the installation priority of the first application.

[0122] Here, the first weight values ​​corresponding to each attribute information can be the same or different, and this embodiment does not limit this.

[0123] In some embodiments, when the attribute information is usage information, after obtaining the current device status information of the electronic device, the current display time and the current location information of the electronic device can be obtained. Since the current display time and current location information are related to user behavior, the first weight value corresponding to the usage information can be set to a larger value to facilitate obtaining an installation priority that matches the user's installation expectations.

[0124] In some embodiments, after obtaining various attribute information corresponding to each first application, the first applications can be sorted along the dimensions indicated by each type of attribute information to obtain the corresponding levels of the first applications under each dimension. For example, when the attribute information is download information, the historical download information of each first application in the app store is sorted along the download volume dimension to obtain the historical download volume application level of each first application. When the attribute information is type information, the usage order of each first application is sorted along the type dimension to obtain the sequential application level of each first application. When the attribute information is usage time, the usage time of each first application is matched with the current display time of the electronic device to sort along the time dimension to obtain the time-based application level of each first application. When the attribute information is usage location, the usage location of each first application is matched with the current location of the electronic device to sort along the region dimension to obtain the region-based application level of each first application.

[0125] Here, after obtaining the application level corresponding to the first application in each dimension, the application level can be weighted based on the corresponding first weight value to obtain the first weight value corresponding to each application level; then, the first weight values ​​are summed to obtain the installation priority corresponding to the first application.

[0126] For example, the formula for calculating the installation priority of the first application can be as follows:

[0127] Si=w1*Hot+w2*Order+w3*Time+w4*Area (1);

[0128] In formula (1), w1 represents the first weight value corresponding to the download information; w2 represents the first weight value corresponding to the type information; w3 represents the first weight value corresponding to the usage time; w4 represents the first weight value corresponding to the usage location; Hot represents the historical download volume application level; Order represents the sequential application level; Time represents the time-based application level; and Area represents the regional application level.

[0129] Among these, compared to other apps in the app store, the earlier the first app is used, the larger the Order; the later the first app is used, the smaller the Order. The more times the first app is used within the current time period, the larger the Time; the fewer times the first app is used within the current time period, the smaller the Time. When the region indicated by the regional first app matches the region of the current electronic device, the Area is larger; when the region indicated by the regional first app does not match the region of the current electronic device or the first app is a non-regional app, the Area is smaller.

[0130] In this embodiment, firstly, a first weight value corresponding to each attribute information is determined based on the type of attribute information; then, each attribute information is weighted based on each first weight value to obtain a first weighted value corresponding to each attribute information; finally, the installation priority of the first application is obtained based on each first weighted value corresponding to the first application, which helps to improve the accuracy of determining the installation priority of each first application, so that the current installation needs match the installation speed of the first application, thereby improving the user experience.

[0131] In some embodiments, system resources are allocated to each first application based on foreground runtime data and device status information, including:

[0132] Based on foreground operation data and device status information, determine the resource scheduling strategy for each primary application;

[0133] Based on various resource scheduling strategies, system resources are allocated to each primary application.

[0134] Understandably, by analyzing the foreground operation data, we can determine the user's expectation for installing each primary application, while by analyzing the device status information, we can determine the operating status of the electronic device. Based on the installation expectation for each primary application and the operating status of the electronic device, we can determine the resource scheduling strategy for each primary application. Finally, based on each resource scheduling strategy, we can allocate system resources to each primary application, which helps to improve the efficiency and accuracy of system resource allocation and make the current installation demand match the installation speed of the application to be installed.

[0135] Here, resource scheduling strategies include, but are not limited to, thread priority management, scheduling algorithms, or scheduling parameters, and the embodiments disclosed herein do not limit these. Thread priority management can be determined at process creation and remain unchanged throughout its lifecycle, or it can be dynamically adjusted based on the process's running state and the system's CPU load; scheduling algorithms include Shortest Remaining Time First, Shortest Job First, or multi-level feedback arrays, etc.; scheduling parameters include memory allocation, CPU frequency, etc.

[0136] In some embodiments, when the second application running in the foreground is a real-time application such as a mobile game or navigation app, the user expects the second application to be in a better running state. In other words, the user's expectations for the installation of the various first applications are relatively low. Therefore, the user's gaming experience should be prioritized, and system resources should be allocated preferentially to the second application running in the foreground. Thus, the resource scheduling strategy for the first application is to set the thread priority of the installation thread to a low level and / or use lower scheduling parameters to obtain fewer system resources.

[0137] In other embodiments, the second application running in the foreground is a non-real-time application such as music software or chat software, or an entertainment application. The user expects the second application running in the foreground to be in a normal operating state. That is, the user's expectation for the installation of each first application is moderate. In this case, the installation of both the second application running in the foreground and each first application should be considered. System resources should be allocated to both the second application running in the foreground to ensure its stable operation and to the installation threads of each first application to shorten their installation time. Therefore, the resource scheduling strategy for the first application is to set the thread priority of the installation thread to medium and / or to obtain system resources normally according to medium scheduling parameters.

[0138] In other embodiments, when the background is running the system interface or the electronic device is in a screen-off state, the user's expectation for installing each first application is moderate to high. In this case, the installation of the first applications should be prioritized, and system resources should be allocated preferentially to the installation threads of each first application. Therefore, the resource scheduling strategy for the first applications is to set the thread priority of the installation thread to a high level and / or use higher scheduling parameters to obtain more system resources.

[0139] Here, the installation threads include, but are not limited to, Package Installer, Package Manager, and Dex2oat64.

[0140] In some embodiments, Package Installer is part of the Android system services and is responsible for handling the installation process of application packages (i.e., APK files), such as parsing APK files, verifying signatures, or updating the system database. Package Manager is used to manage APK files already installed on the system, such as the installation status and permissions of APK files. Dex2oat64 is used to convert Dex files into executable files to improve application startup speed and execution efficiency.

[0141] It is understandable that excessive acquisition of system resources can lead to system operation problems. Therefore, in addition to determining the resource scheduling strategy for the primary application based on the foreground operation data, the resource scheduling strategy can also be determined based on the device operating status in order to optimize system performance and improve resource utilization.

[0142] In some embodiments, the device status information includes the device housing temperature. When the device housing temperature is high, continuously increasing the CPU frequency will increase the CPU's power consumption and heat, thereby accelerating the aging of the CPU and causing hardware damage.

[0143] In other embodiments, device status information includes available memory. When available memory is low, the numerous input / output operations during the installation of the first application can cause the installation process to enter an uninterruptible sleep state. Processes in the uninterruptible sleep state consume system resources but cannot be effectively terminated or scheduled, leading to slower system response and prolonged installation time for each of the first applications. Simultaneously, the numerous input / output operations during the installation of the first application generate a large number of garbage collection (GC) operations, which consume significant system resources, reducing CPU utilization and further slowing down system response, thus prolonging the installation time for each of the first applications.

[0144] In other embodiments, device status information includes CPU load. When the CPU load is high, the installation threads of each first application will be in a runnable state. Installation threads in the runnable state will wait for CPU scheduling. If other high-priority threads or tasks consume a large amount of CPU resources, the installation threads in the runnable state will be delayed for a long time, thereby increasing the installation time of each first application.

[0145] Therefore, by fully considering the operating status of the electronic device and the user's expectations for installing each first application, a resource scheduling strategy is determined for each first application. When the device's casing temperature is below a first preset threshold, available memory is below a second preset threshold, and CPU load is below a third preset threshold, more system resources are allocated to the installation threads of each first application according to the higher scheduling parameters indicated by the resource scheduling strategy of each first application, thereby shortening the installation time of each first application. Conversely, when the device's casing temperature is greater than or equal to the first preset threshold, available memory is greater than or equal to the second preset threshold, and CPU load is greater than or equal to the third preset threshold, and the second application running in the foreground of the electronic device is a real-time application, less system resources are allocated to the installation threads of each first application according to the lower scheduling parameters indicated by the resource scheduling strategy of each first application, thereby ensuring smooth operation of the second application and improving the user experience.

[0146] Here, the first preset threshold, the second preset threshold, and the third preset threshold can be set arbitrarily according to requirements. For example, the first preset threshold is 50, the second preset threshold is 40, and the third preset threshold is 70. This embodiment of the present disclosure does not limit this.

[0147] In this embodiment, resource scheduling strategies for each first application can be determined based on foreground running data and device status information; then, system resources are allocated to each first application based on each resource scheduling strategy. This approach can, on the one hand, shorten the installation time of each first application when user expectations for installation are high, and ensure smooth foreground operation when user expectations are low; on the other hand, by monitoring the operating status of the electronic device, hardware damage can be reduced during the installation of each first application, thereby extending the lifespan of the electronic device.

[0148] Figure 2 This is a flowchart illustrating an application installation method according to an exemplary embodiment. Figure 2 ,like Figure 2 As shown, the application installation method includes:

[0149] In step 201, in response to an installation event of at least one first application, foreground running data of the electronic device and current device status information of the electronic device are obtained;

[0150] In step 202, the resource allocation level of each of the first applications is determined based on the foreground running data and device status information;

[0151] In step 203, the resource allocation level of the first application is determined to be within a certain range, and the resource scheduling strategy corresponding to the range is determined as the resource scheduling strategy of the first application; wherein, the resource scheduling strategies corresponding to different ranges are different.

[0152] In step 204, system resources are allocated to each first application based on various resource scheduling strategies, and the installation of each first application is performed based on the system resources allocated to each first application.

[0153] It should be noted that, in order to improve the efficiency and accuracy of determining various resource scheduling strategies, a level range and the corresponding resource scheduling strategy can be preset. After obtaining the resource allocation level based on the foreground operation data and device status information, each resource allocation level can be compared with the preset level within the level range to determine the level range in which the resource allocation level of the first application is located, and the resource scheduling strategy corresponding to the level range is determined as the resource scheduling strategy of the first application.

[0154] Here, the number of preset level ranges can be set arbitrarily according to requirements, and the size of the preset level within each level range can also be set arbitrarily. This embodiment of the present disclosure does not limit this.

[0155] Here, different resource scheduling strategies are applied to different level ranges. The larger the level range, the more system resources are allocated to the first application according to the resource scheduling strategy corresponding to that level range; the smaller the level range, the less system resources are allocated to the first application according to the resource scheduling strategy corresponding to that level range.

[0156] In some embodiments, based on foreground running data, the user's expectation level for installing the first application is obtained; and based on device status information, the operating status of the electronic device is obtained; then, the installation expectation level is scored to obtain a first score result, and the operating status of the electronic device is scored to obtain a second score result; finally, the resource allocation level of the first application is determined based on the first and second score results. For example, based on foreground running data, if the second device running in the foreground is determined to be a real-time device, i.e., the user's expectation level for installing the first application is low, then the first score result is 20%; if based on device status information, if the operating status of the electronic device is determined to be good, i.e., the device casing temperature is low, the available memory is high, or the CPU load is low, then the second score result is 90%; then the two score results are summed to obtain the resource allocation level of the first application.

[0157] For example, the preset level range includes LEVEL1, LEVEL2, LEVEL3, LEVEL4 and LEVEL5. After obtaining the resource allocation level of the first application, the resource allocation level is compared with each preset level from LEVEL1 to LEVEL5 to obtain the level range corresponding to the resource allocation level.

[0158] In this embodiment of the disclosure, by presetting the level range and the resource scheduling strategy corresponding to the level range, after obtaining the resource allocation level based on the foreground running data and device status information, the level range in which the resource allocation level of the first application is located can be determined, and the resource scheduling strategy corresponding to the level range can be determined as the resource scheduling strategy of the first application, thereby improving the efficiency and accuracy of determining each resource scheduling strategy, so as to ensure that the system resources allocated to each first application match the current installation requirements.

[0159] In some embodiments, the resource allocation level of each first application is determined based on foreground runtime data and device status information, including:

[0160] The front-end running data is weighted based on the second weight value to obtain the second weight value;

[0161] The device status information is weighted based on the third weight value to obtain the third weight value;

[0162] Based on the second and third weighted values, the resource allocation level of each first application is determined.

[0163] Understandably, in order to improve the accuracy of determining the resource allocation level of the first application, the foreground running data can be weighted according to the second weight value to obtain the second weight value; and the device status information can be weighted according to the third weight value to obtain the third weight value; finally, the resource allocation level of the first application can be obtained based on the second weight value and the third weight value.

[0164] Here, when there are multiple front-end running data, the second weight value corresponding to each front-end running data can be the same or different; when there are multiple device status information, the third weight value corresponding to each device status information can be the same or different, and this disclosure embodiment does not limit this.

[0165] Here, the higher the resource allocation level of the first application, the more system resources are allocated to the first application; the lower the resource allocation level of the first application, the less system resources are allocated to the first application.

[0166] In some embodiments, by analyzing foreground running data, the user's expectation level for installing the first application can be obtained; then, based on the installation expectation level, the foreground running smoothness level can be determined. For example, if the second application running in the foreground is a real-time application, and the user's expectation level for installing the first application is low, then the foreground running smoothness level is high. When the second application running in the foreground is a non-real-time application or an entertainment application, and the user's expectation level for installing the first application is moderate, then the foreground running smoothness level is moderate. When the foreground is the system interface or the electronic device is in a screen-off state, and the user's expectation level for installing the first application is high, then the foreground running smoothness level is low.

[0167] For example, in order to facilitate the calculation of the second weighted value, after obtaining the smoothness level of the foreground operation, a value can be assigned to each foreground smoothness level, and the assigned value can be weighted based on the second preset weight to obtain an accurate second weighted value.

[0168] In some embodiments, after obtaining the second weighted value and the third weighted value, the second weighted value and the third weighted value can be summed to obtain the resource allocation level corresponding to the first application. Here, since there can be multiple device status information, the third weighted value corresponding to each device status information can be obtained by weighting each device status information based on the third preset weight.

[0169] For example, the formula for calculating the installation priority of the first application can be as follows:

[0170]

[0171] In formula (2), w5 represents the first weight value corresponding to the foreground running data; w6 represents the second weight value corresponding to the device casing temperature; w7 represents the second weight value corresponding to the available memory; w6 represents the second weight value corresponding to the CPU load; Forground represents the assignment corresponding to the foreground running smoothness level; Temperature represents the device casing temperature; AvalibleMem represents the available memory; and CPUusage represents the CPU load.

[0172] In this embodiment of the disclosure, the foreground running data is weighted based on a second weight value to obtain a second weight value; and the device status information is weighted based on a third weight value to obtain a third weight value; finally, the resource allocation level of each first application is determined based on the second weight value and the third weight value, thereby improving the accuracy of determining each resource allocation level, and thus enabling the allocation of system resources to each first application based on an accurate resource scheduling strategy.

[0173] In some embodiments, system resources are allocated to each first application based on various resource scheduling strategies, including:

[0174] Determine the scheduling parameters indicated by each resource scheduling policy; wherein, the scheduling parameters indicated by different resource scheduling policies are different; the scheduling parameters include at least one of the following: thread optimization coefficient, CPU frequency, or memory allocation amount;

[0175] Based on various scheduling parameters, system resources are allocated to each primary application.

[0176] Understandably, in order to improve the efficiency and accuracy of allocating system resources, after determining the resource scheduling strategy for the first application, the scheduling parameters indicated by the resource scheduling strategy can be determined so that system resources can be allocated to each first application according to the scheduling parameters, thereby ensuring that the system resources allocated to each first application match the current installation requirements.

[0177] Here, the scheduling parameters include at least one of the following: thread optimization coefficient, CPU frequency, or memory allocation. The thread optimization coefficient represents the coefficient that optimizes the priority of the installation thread of the first application. The thread optimization coefficient can be positive or negative. The CPU frequency represents the CPU clock speed or CPU operating frequency under the current resource allocation level. The memory allocation represents the memory allocated to the installation thread of the first application.

[0178] For example, Figure 3 This is a schematic diagram illustrating the framework of an application installation method according to an exemplary embodiment, such as... Figure 3 As shown, the preset level ranges include Level 1, Level 2, Level 3, and Level 4. Each level... i All have scheduling parameters, namely the memory allocation amount. i CPU frequency Freq i and thread optimization factor Prior i .

[0179] In some embodiments, when LEVEL i The higher the memory level, the more aggressive the detection and removal strategy. i The larger the value of LEVEL, the more significant the change. i The lower the memory level, the more stable the detection strategy. iThe smaller the value, the better. In some embodiments, the killing strategy may include a Low Memory Killer Daemon or a specific memory service process (MIUI MemoryService), which is not limited in this disclosure. Here, LMKD is a daemon in the Android system used to automatically kill some processes to free up memory when memory is insufficient. MIUI Memory Service is a process in the Android system used to manage memory usage and clean up memory.

[0180] In some embodiments, Freq i This represents the maximum frequency that each CPU core cluster can achieve under the current resource allocation level. When LEVEL... i When it is higher, Freq i The larger the value of LEVEL, the more significant the change. i The lower the Freq i The smaller the value.

[0181] In some embodiments, when LEVEL i When it is higher, Prior i A negative value indicates an increase in the priority of the installation thread; when LEVEL... i The lower the Priority i A positive number indicates a lower priority for the installation thread. Here, Priority... i It can be set arbitrarily according to needs, for example, Prior. i It can be an integer between -5 and 5, but this disclosure does not limit it.

[0182] For example, Prior i To optimize thread performance, the target priority of the first application's installation thread can be calculated using the following formula:

[0183] T install-after =T install-before +prior i (3);

[0184] In formula (3), T install-after Indicates the target priority of the first application's installation thread; T install-before This indicates the initial priority of the first application's installation thread.

[0185] In this embodiment of the disclosure, by determining the scheduling parameters indicated by each resource scheduling strategy, system resources are allocated to each first application according to the scheduling parameters, which helps to improve the efficiency and accuracy of allocating system resources, so that the installation time of each first application matches the current installation requirements, while ensuring the stable operation of the system.

[0186] Figure 4 This is a flowchart illustrating an application installation method according to an exemplary embodiment. Figure 3 ,like Figure 4 As shown, the application installation method includes:

[0187] In step 401, in response to an installation event of at least one first application.

[0188] In step 402, the foreground operating data of the electronic device and the current device status information of the electronic device are obtained.

[0189] Here, foreground running data includes, but is not limited to, the number of applications, application type, or application running status corresponding to the second application running in the foreground. Device status information includes, but is not limited to, the device temperature, available memory, or CPU load corresponding to the electronic device.

[0190] In some embodiments, after obtaining the foreground running data of the electronic device and the current device status information of the electronic device, the number of first applications is determined. When there is one first application, step 403 is executed; when there are at least two first applications, step 404 is executed.

[0191] In step 403, the resource allocation level of each first application is determined based on the foreground running data and device status information.

[0192] In some embodiments, the foreground running data is weighted based on a second weight value to obtain a second weight value; the device status information is weighted based on a third weight value to obtain a third weight value; and the resource allocation level of each first application is determined based on the second weight value and the third weight value.

[0193] In step 404, the installation priority of the first application is determined based on at least one attribute information corresponding to the first application.

[0194] In some embodiments, a first weight value is determined for each attribute based on its type; each attribute is weighted according to its first weight value to obtain a first weighted value; and the installation priority of the first application is obtained based on its first weighted value. After obtaining the installation priorities of each first application, step 403 needs to be executed.

[0195] In step 405, the resource allocation level of the first application is determined to be within a certain range, and the resource scheduling strategy corresponding to the range is determined as the resource scheduling strategy of the first application.

[0196] Here, different resource scheduling strategies correspond to different levels.

[0197] In step 406, the scheduling parameters indicated by each resource scheduling strategy are determined; based on each scheduling parameter, system resources are allocated to each first application.

[0198] Here, different resource scheduling strategies indicate different scheduling parameters; the scheduling parameters include at least one of the following: thread optimization coefficient, CPU frequency, or memory allocation amount.

[0199] In step 407, the installation of each first application is performed based on the system resources allocated to each first application.

[0200] In step 408, it is determined whether this is the last time the first application was installed.

[0201] In some embodiments, the process ends if it is determined that this is the last time the first application will be installed.

[0202] In other embodiments, if it is determined that the first application was last installed, step 402 is performed to reacquire the foreground running data of the electronic device and the current device status information of the electronic device.

[0203] In this embodiment of the disclosure, in response to the installation event of at least one first application, the foreground running data of the electronic device and the current device status information of the electronic device are obtained; based on the foreground running data and the device status information, system resources are allocated to each first application, and the installation of each first application is performed based on the system resources allocated to each first application.

[0204] In this embodiment of the disclosure, the operating status of the foreground can be determined based on the foreground operating data, and the operating status of the electronic device can be determined based on the device status information, thereby determining the current installation requirements. Therefore, by allocating system resources to each first application based on the foreground operating data and device status information, system resources that match the current installation requirements can be allocated to each first application while ensuring stable system operation, thus matching the current installation requirements with the installation speed of the first application.

[0205] Figure 5 This is a block diagram illustrating an application installation apparatus according to an exemplary embodiment, such as... Figure 5 As shown, the application installation device 500 includes:

[0206] The acquisition module 501 is configured to acquire foreground running data of the electronic device and the current device status information of the electronic device in response to an installation event of at least one first application.

[0207] The execution module 502 is configured to allocate system resources to each of the first applications based on the foreground running data and the device status information, and to perform the installation of each of the first applications based on the system resources allocated to each of the first applications.

[0208] In some embodiments, the first application is at least two; the device 500 further includes:

[0209] The first determining module is configured to determine at least one attribute information corresponding to the first application; wherein, different attribute information are used to indicate the characteristics of the first application in different dimensions.

[0210] The second determining module is configured to determine the installation priority of the first application based on at least one attribute information corresponding to the first application.

[0211] The execution module 502 is specifically configured as follows:

[0212] The installation of each of the first applications is performed based on the system resources allocated to each of the first applications and the installation priority of each of the first applications.

[0213] In some embodiments, the second determining module is specifically configured as follows:

[0214] Based on the type of the attribute information, determine the first weight value corresponding to each of the attribute information;

[0215] Each attribute information is weighted based on each of the first weight values ​​to obtain the first weighted value corresponding to each attribute information.

[0216] The installation priority of the first application is obtained based on each of the first weighted values ​​corresponding to the first application.

[0217] In some embodiments, the execution module 502 includes:

[0218] The third determining module is configured to determine the resource scheduling strategy for each of the first applications based on the foreground running data and the device status information.

[0219] The allocation module is configured to allocate system resources to each of the first applications based on the respective resource scheduling strategies.

[0220] In some embodiments, the third determining module includes:

[0221] The first submodule is configured to determine the resource allocation level of each of the first applications based on the foreground running data and the device status information.

[0222] The second submodule is configured to determine the level range of the resource allocation level of the first application, and to determine the resource scheduling strategy corresponding to the level range as the resource scheduling strategy of the first application.

[0223] The resource scheduling strategies differ for different grade ranges.

[0224] In some embodiments, the first submodule is specifically configured as follows:

[0225] The front-end running data is weighted based on the second weight value to obtain the second weight value;

[0226] The device status information is weighted based on the third weight value to obtain the third weight value;

[0227] Based on the second weighted value and the third weighted value, the resource allocation level of each of the first applications is determined.

[0228] In some embodiments, the allocation module is specifically configured as follows:

[0229] Determine the scheduling parameters indicated by each of the resource scheduling policies; wherein the scheduling parameters indicated by different resource scheduling policies are different; the scheduling parameters include at least one of thread optimization coefficient, CPU frequency, or memory allocation amount;

[0230] Based on the scheduling parameters, the system resources are allocated to each of the first applications.

[0231] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated upon here.

[0232] Figure 6 This is a structural block diagram illustrating an electronic device 600 according to an exemplary embodiment. For example, the electronic device 600 may be a mobile phone, computer, digital broadcasting terminal, messaging device, game console, tablet device, medical device, fitness equipment, personal digital assistant, etc.

[0233] Reference Figure 6 The electronic device 600 may include one or more of the following components: processing component 602, memory 604, power supply component 606, multimedia component 608, audio component 610, input / output (I / O) interface 612, sensor component 614, and communication component 616.

[0234] Processing component 602 typically controls the overall operation of electronic device 600, such as operations associated with at least one of display, telephone call, data communication, camera operation, and recording operation. Processing component 602 may include one or more processors 620 to execute instructions to perform all or part of the steps of the methods described above. Furthermore, processing component 602 may include one or more modules to facilitate interaction between processing component 602 and other components. For example, processing component 602 may include a multimedia module to facilitate interaction between multimedia component 608 and processing component 602.

[0235] Memory 604 is configured to store various types of data to support the operation of electronic device 600. Examples of such data include at least one of the following: instructions for any application or method operating on electronic device 600, contact data, phonebook data, messages, pictures, and videos. Memory 604 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as Static Random Access Memory (SRAM), Electrically Erasable Programmable Read Only Memory (EEPROM), Erasable Programmable Read-Only Memory (EPROM), Programmable Read Only Memory (PROM), Read-Only Memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.

[0236] Power supply component 606 provides power to various components of electronic device 600. Power supply component 606 may include at least one of the following: a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to electronic device 600.

[0237] Multimedia component 608 includes a screen that provides an output interface between electronic device 600 and user. In some embodiments, the screen may include a Liquid Crystal Display (LCD) and a Touch Panel (TP). If the screen includes a Touch Panel, the screen may be implemented as a touchscreen to receive input signals from the user. The Touch Panel includes one or more touch sensors to sense touches, swipes, and gestures on the Touch Panel. The touch sensors may sense not only the boundaries of touch or swipe actions but also the duration and pressure associated with the touch or swipe operation. In some embodiments, multimedia component 608 includes a front-facing camera and / or a rear-facing camera. When electronic device 600 is in an operating mode, such as a shooting mode or video mode, the front-facing camera and / or rear-facing camera may receive external multimedia data. Each front-facing camera and rear-facing camera may be a fixed optical lens system or have focal length and optical zoom capabilities.

[0238] Audio component 610 is configured to output and / or input audio signals. For example, audio component 610 includes a microphone (MIC) configured to receive external audio signals when electronic device 600 is in an operating mode, such as call mode, recording mode, and voice recognition mode. The received audio signals may be further stored in memory 604 or transmitted via communication component 616. In some embodiments, audio component 610 also includes a speaker for outputting audio signals.

[0239] I / O interface 612 provides an interface between processing component 602 and peripheral interface modules, such as keyboards, click wheels, and buttons. These buttons may include, but are not limited to, home buttons, volume buttons, power buttons, and lock buttons.

[0240] Sensor assembly 614 includes one or more sensors for providing state assessments of various aspects of electronic device 600. For example, sensor assembly 614 may detect the on / off state of electronic device 600, the relative positioning of components such as the display and keypad of electronic device 600, changes in position of electronic device 600 or one of its components, the presence or absence of user contact with electronic device 600, orientation or acceleration / deceleration of electronic device 600, and temperature changes of electronic device 600. Sensor assembly 614 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact. Sensor assembly 614 may also include an optical sensor, such as a complementary metal-oxide-semiconductor (CMOS) or charge-coupled device (CCD) image sensor, for use in imaging applications. In some embodiments, sensor assembly 614 may also include, but is not limited to, at least one of the following: an accelerometer, a gyroscope, a magnetometer, a pressure sensor, and a temperature sensor.

[0241] Communication component 616 is configured to facilitate wired or wireless communication between electronic device 600 and other devices. Electronic device 600 can access wireless networks based on communication standards, such as Wi-Fi, 4G, 5G, or combinations thereof. In one exemplary embodiment, communication component 616 receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, communication component 616 also includes a Near Field Communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wide Band (UWB), Bluetooth (BT), and other technologies.

[0242] In an exemplary embodiment, the electronic device 600 may be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components.

[0243] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 604 including executable instructions or a computer program, which can be executed by a processor 620 of an electronic device 600 to perform the above-described method. For example, the non-transitory computer-readable storage medium may be a ROM, random access memory (RAM), a compact disc read-only memory (CD-ROM), magnetic tape, floppy disk, and optical data storage device, etc.

[0244] A non-transitory computer-readable storage medium, when instructions in the storage medium are executed by a processor of an electronic device, enables the electronic device to perform any of the application installation methods described above in the embodiments of this disclosure. For example, the method includes:

[0245] In response to an installation event of at least one first application, obtain foreground running data of the electronic device and the current device status information of the electronic device;

[0246] Based on the foreground running data and device status information, system resources are allocated to each first application, and the installation of each first application is executed based on the system resources allocated to each first application.

[0247] This disclosure provides a computer program product comprising a computer program or executable instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer program or executable instructions from the computer-readable storage medium and executes the computer program or executable instructions, causing the computer device to perform any of the application installation methods described above in this disclosure.

[0248] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This disclosure is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the following claims.

[0249] It should be understood that this disclosure is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this disclosure is limited only by the appended claims.

Claims

1. An application installation method characterized by comprising: The method comprises: obtaining foreground running data of the electronic device and current device state information of the electronic device in response to an installation event of at least one first application; allocating system resources for each of the first applications based on the foreground running data and the device state information, and performing installation of each of the first applications based on the system resources allocated for each of the first applications.

2. The method of claim 1, wherein, The first applications are at least two; the method further comprises: determining at least one attribute information corresponding to the first applications; wherein different attribute information is used to indicate characteristics of the first applications in different dimensions respectively; determining an installation priority of the first applications based on the at least one attribute information corresponding to the first applications; The performing installation of each of the first applications based on the system resources allocated for each of the first applications comprises: performing installation of each of the first applications based on the system resources allocated for each of the first applications and the installation priority of each of the first applications.

3. The method of claim 2, wherein, The determining the installation priority of the first applications based on the at least one attribute information corresponding to the first applications comprises: determining a first weight value corresponding to each of the attribute information based on a type of the attribute information; performing weighted processing on each of the attribute information based on each of the first weight value to obtain a first weighted value corresponding to each of the attribute information; obtaining the installation priority of the first applications based on each of the first weighted value corresponding to the first applications.

4. The method according to any one of claims 1 to 3, characterized in that, The allocating system resources for each of the first applications based on the foreground running data and the device state information comprises: determining a resource scheduling strategy of each of the first applications based on the foreground running data and the device state information; allocating system resources for each of the first applications based on each of the resource scheduling strategy.

5. The method of claim 4, wherein, The determining the resource scheduling strategy of each of the first applications based on the foreground running data and the device state information comprises: determining a resource allocation level of each of the first applications based on the foreground running data and the device state information; determining a level range in which the resource allocation level of the first applications is located, and determining a resource scheduling strategy corresponding to the level range as the resource scheduling strategy of the first applications; wherein the resource scheduling strategies corresponding to different level ranges are different.

6. The method of claim 5, wherein, The determining the resource allocation level of each of the first applications based on the foreground running data and the device state information comprises: performing weighted processing on the foreground running data based on a second weight value to obtain a second weighted value; performing weighted processing on the device state information based on a third weight value to obtain a third weighted value; determining the resource allocation level of each of the first applications based on the second weighted value and the third weighted value.

7. The method of claim 4, wherein, The allocating system resources for each of the first applications based on each of the resource scheduling strategy comprises: determining scheduling parameters of each of the resource scheduling policy indications, wherein the scheduling parameters of different resource scheduling policy indications are different, and the scheduling parameters comprise at least one of a thread optimization coefficient, a frequency of a CPU, or a memory allocation amount; allocating the system resources for each of the first applications based on the scheduling parameters.

8. An application installation apparatus characterized by comprising: The apparatus comprises: an obtaining module configured to obtain foreground running data of an electronic device and current device state information of the electronic device in response to an installation event of at least one first application; an executing module configured to allocate system resources for each of the first applications based on the foreground running data and the device state information, and execute installation of each of the first applications based on the allocated system resources.

9. An electronic device, comprising: comprise: a processor; a memory for storing computer programs or instructions; wherein the processor executes the computer programs or instructions to implement the steps of the method of any one of claims 1 to 7.

10. A non-transitory computer-readable storage medium storing a computer program or instructions, the computer program or instructions comprising the steps of: When the computer programs or instructions in the storage medium are executed by the processor, the steps of the method of any one of claims 1 to 7 are implemented.

11. A computer program product comprising computer programs or instructions, characterized in that, When the computer programs or instructions are executed by the processor, the steps of the method of any one of claims 1 to 7 are implemented.