Processing method, device, terminal equipment, storage medium and program product

By detecting target events in the terminal device, predicting and caching the process of the application to be launched, the problem of application startup speed affecting user experience is solved, and a more efficient startup process and a better user experience are achieved.

CN122173215APending Publication Date: 2026-06-09BEIJING XIAOMI MOBILE SOFTWARE CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
BEIJING XIAOMI MOBILE SOFTWARE CO LTD
Filing Date
2024-12-06
Publication Date
2026-06-09

AI Technical Summary

Technical Problem

The startup speed of applications on terminal devices affects user experience, and existing technologies have failed to effectively improve startup efficiency.

Method used

By detecting target events, predicting the target application to be launched, and caching its process before launch, the probability of the application is predicted using historical usage information and target events, and it is determined whether the caching conditions are met. The target process is cached in advance to shorten the startup time.

Benefits of technology

It improves the accuracy and efficiency of application startup, reduces memory usage and system load, and enhances the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122173215A_ABST
    Figure CN122173215A_ABST
Patent Text Reader

Abstract

The present disclosure relates to a processing method, device, terminal equipment, storage medium and program product. The processing method comprises: detecting a target event; predicting a target application program to be started according to the target event; if it is determined to cache target data, and if it is determined to cache a target process of the target application program, caching the target process of the target application program before starting the target application program. By caching the target process of the target application program in advance when it is determined to cache the target process of the target application program, some processes of starting the target application program can be executed in advance, so that the user does not need to wait for the execution of these processes when starting the target application program, thereby shortening the time length of starting the target application program. Through the prediction of the target application program and the advance caching of the target process, the hit rate of the target application program can be improved, and the starting efficiency of the target application program can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of application processing, and more particularly to a processing method, apparatus, terminal device, storage medium, and computer program product. Background Technology

[0002] With the development of technology, more and more terminal devices have emerged. Different terminal devices have different application scenarios and uses. These terminal devices are equipped with applications, and different applications have different functions. Through different applications, different information can be obtained and different information can be processed.

[0003] When using these applications, you need to launch them first, and the launch speed of the applications will affect the user experience. Summary of the Invention

[0004] This disclosure provides a processing method, apparatus, terminal device, storage medium, and computer program product.

[0005] A first aspect of this disclosure provides a processing method, comprising: detecting a target event; predicting a target application to be launched based on the target event; and if it is determined that a target process of the target application is cached, caching the target process of the target application before launching the target application.

[0006] In one embodiment, predicting the target application to be launched includes: obtaining historical usage information of each candidate application; wherein the candidate applications are applications currently installed on the device; predicting the target application based on the target information; wherein the target information includes: the historical usage information, or the historical usage information and the target event.

[0007] In one embodiment, obtaining the historical usage information of each candidate application includes: obtaining first historical usage information of the candidate application in the current device; and / or obtaining second historical usage information of the candidate application in at least one first device; wherein the first device is a device other than the current device.

[0008] In one embodiment, predicting the target application based on the historical usage information includes: determining the probability of each of the candidate applications being the target application based on the historical usage information; and determining the target application based on the probability.

[0009] In one embodiment, the historical usage information includes at least one of the following: the time node of use; the usage duration; the launch frequency; the number of launches; the calling relationship between the candidate applications; the launch order relationship between the candidate applications; the number of launches of the candidate applications and / or the number of requests for the target function within a first preset time period after the second device is connected to the current device; wherein the target function is the interface for information transmission between the current device and the second device; the number of times the first information in the clipboard is obtained; wherein different pieces of historical usage information have their own weights.

[0010] In one embodiment, the number of launches includes the number of launches after the second information is copied to the clipboard; wherein the second information is information associated with the first alternative application in a second alternative application other than the first alternative application.

[0011] In one embodiment, the target event includes at least one of the following: a startup event of the current application; an exit event of the current application; a first return event to the desktop; a second return event to the background management interface; a switching event for switching between different applications; and a connection event between a second device and the current device; wherein the second device is used to interact with the device where the target application is located through the target application.

[0012] In one embodiment, predicting the target application based on the target information includes: determining the priority of each of the candidate applications based on the target information; and determining the target application based on the priority; wherein the priority is positively correlated with the probability that the candidate application is the target application.

[0013] In one embodiment, the method further includes: detecting a setting operation of the candidate application; and determining the candidate application based on the setting operation.

[0014] In one embodiment, determining the target process of caching the target application includes: determining whether the target application meets caching conditions; and caching the target process of the target application when the caching conditions are met.

[0015] In one embodiment, determining whether the target application meets the caching conditions includes: obtaining the current state information of the device where the target application is located, a list of target applications, a prediction interval, and the target application's own state information; and determining whether the caching conditions are met based on the current state information, the list of target applications, the prediction interval, and / or the target application's own state information.

[0016] In one embodiment, the current state includes: the current memory usage ratio and / or the current battery level; determining whether the caching condition is met includes: determining that the caching condition is met when the current usage ratio is less than a preset ratio; and / or, determining that the caching condition is met when the current battery level is greater than a battery threshold.

[0017] In one embodiment, the self-state information includes: whether it is running in the background; determining whether the caching condition is met includes: determining that the caching condition is met when the target application is not running in the background.

[0018] In one embodiment, determining whether the caching condition is met includes: obtaining the running status of the target application within a preset historical time period; and determining whether the caching condition is met based on the running status.

[0019] In one embodiment, the running state includes at least: whether a crash has occurred and / or the response time; determining whether the caching condition is met includes: determining that the caching condition is met when the target application has not crashed and / or the response time has not exceeded a second preset time period within the preset historical time period.

[0020] In one embodiment, the target application list includes preset applications; determining whether the caching condition is met includes: determining whether the target application is located in the preset applications; and determining that the caching condition is met when the target application is located in the preset applications.

[0021] In one embodiment, determining whether the caching condition is met includes: determining the prediction interval between the target application predicted in the previous prediction and the target application predicted in the current prediction; and determining that the caching condition is met when the time interval exceeds a preset interval.

[0022] In one embodiment, determining whether the caching condition is met further includes: when the target application is an application other than the preset application, determining whether the target application has an exit record of exiting the background within a second preset period; if no exit record exists, determining that the caching condition is met.

[0023] In one embodiment, caching the target process of the target application before launching the target application includes: creating the target process of the target application before launching the target application; loading target data required to launch the target application; and storing the target data in the target process of the target application.

[0024] In one embodiment, the method further includes: detecting a startup operation of the target application; and, in response to the startup operation, launching the target application based on the target process.

[0025] In one embodiment, the method further includes: when caching the target process of the target application determined in this instance, adjusting the cache priority of the target process of the target application determined in this instance to be higher than the cache priority of the target process of the target application determined in the previous instance; wherein the cache priority is positively correlated with the probability that the target process resides in the background.

[0026] In one embodiment, the method further includes: when the target application is an application in a preset application, maintaining the cache priority of the target process of the target application at the highest level.

[0027] In one embodiment, the method further includes: adjusting the cache priority of the target processes of each target application based on memory pressure.

[0028] In one embodiment, adjusting the cache priority of the target process of each target application based on memory pressure includes: reducing the cache priority of the target process of each target application when the memory pressure exceeds a first pressure threshold.

[0029] In one embodiment, after caching the target process of the target application, the method further includes: determining whether memory optimization conditions are met; and optimizing memory when the memory optimization conditions are met.

[0030] In one embodiment, determining whether the memory optimization condition is met includes at least one of the following: the total memory usage of the target process of the target application determined this time and the target process of the target application determined previously exceeds a first memory usage threshold, thus determining that the memory optimization condition is met; the target application is not started within a third preset time period, thus determining that the memory optimization condition is met; the memory usage is greater than a second memory usage threshold, thus determining that the memory optimization condition is met; the memory pressure is greater than a second pressure threshold, thus determining that the memory optimization condition is met.

[0031] In one embodiment, optimizing memory when the memory optimization conditions are met includes at least one of the following: ending the cached target process of the target application; ending pending processes; wherein the pending processes are the target application determined this time and the N applications with the lowest probability among the previously determined target applications; the probability is the probability of being determined as the target application; reclaiming the physical pages corresponding to file pages; and performing memory compression processing on anonymous pages.

[0032] In one embodiment, the reclaiming of the physical page corresponding to the file page includes at least one of the following: writing the dirty page back to external memory and reclaiming the physical page corresponding to the dirty page; reclaiming the physical page corresponding to a file page other than the dirty page.

[0033] In one embodiment, after the memory compression process of the anonymous page is performed, the method further includes: swapping the memory-compressed anonymous page to external storage; and reclaiming the physical page corresponding to the anonymous page.

[0034] A second aspect of this disclosure provides a processing apparatus, comprising: a detection module for detecting a target event; a prediction module for predicting a target application to be launched based on the target event; and a caching module for caching the target process of the target application before launching the target application if it is determined that target data should be cached.

[0035] A third aspect of this disclosure provides a terminal device, including: a processor and a memory for storing executable instructions capable of running on the processor, wherein: when the processor runs the executable instructions, the executable instructions perform the method described in any of the above embodiments.

[0036] A fourth aspect of this disclosure provides a non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a processor, implement the method described in any of the above embodiments.

[0037] A fifth aspect of this disclosure provides a computer program product, including a computer program or executable instructions, which, when executed by a processor, implement the method described in any of the above embodiments.

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

[0039] The solution of this disclosure, upon detecting a target event, predicts the target application to be launched based on the target event. If it is determined that the target process of the target application should be cached, the target process of the target application is cached before launching the target application. By predicting the target application, the accuracy of the application that the user will launch next can be improved. By caching the target process of the target application in advance when it is determined that it should be cached, some processes for launching the target application can be executed in advance. Therefore, when the user needs to launch the target application, there is no need to wait for these processes to be executed, thereby shortening the launch time of the target application. By predicting the target application and caching the target process in advance, the launch efficiency of the target application can be improved on the basis of increasing the hit rate of the target application. In addition, it can also reduce the excessive memory consumption and increased system load caused by caching the target process even when it is not necessary to cache it in advance, thereby reducing memory consumption and system impact. From the user's perspective, this improves the user experience.

[0040] 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

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

[0042] Figure 1 This is a schematic diagram illustrating a processing method according to an exemplary embodiment;

[0043] Figure 2 This is a schematic diagram illustrating a method for predicting a target application according to an exemplary embodiment;

[0044] Figure 3 This is a schematic diagram illustrating another method for predicting a target application according to an exemplary embodiment;

[0045] Figure 4 This is a schematic diagram illustrating another predictive target application according to an exemplary embodiment;

[0046] Figure 5 This is a schematic diagram illustrating another processing method according to an exemplary embodiment;

[0047] Figure 6 This is a schematic diagram illustrating a method for determining the target process of a cached target application according to an exemplary embodiment;

[0048] Figure 7This is a schematic diagram illustrating a method for determining whether a target application meets caching conditions according to an exemplary embodiment;

[0049] Figure 8 This is a schematic diagram illustrating a list of target applications according to an exemplary embodiment;

[0050] Figure 9 This is a schematic diagram illustrating a method for determining whether a target application meets caching conditions according to an exemplary embodiment;

[0051] Figure 10 This is a schematic diagram illustrating another method for determining whether a target application meets caching conditions according to an exemplary embodiment;

[0052] Figure 11 This is a schematic diagram illustrating another processing method according to an exemplary embodiment;

[0053] Figure 12 This is a schematic diagram illustrating another processing method according to an exemplary embodiment;

[0054] Figure 13 This is a schematic diagram illustrating another processing method according to an exemplary embodiment;

[0055] Figure 14 This is a schematic diagram of a processing apparatus according to an exemplary embodiment;

[0056] Figure 15 This is a schematic diagram illustrating another application launch method according to an exemplary embodiment;

[0057] Figure 16 This is a block diagram illustrating a terminal device according to an exemplary embodiment. Detailed Implementation

[0058] 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 consistent with some aspects of this disclosure as detailed in the appended claims.

[0059] refer to Figure 1 This is a schematic diagram of a processing method, which includes:

[0060] S100, detect target event.

[0061] S200 predicts the target application to be launched based on the target event.

[0062] S300: If the target process of the target application is determined, the target process of the target application is cached before the target application is started.

[0063] The solution in this embodiment can be applied to terminal devices, and the executing entity can be a terminal device, which can include mobile terminal devices and fixed terminal devices, etc. Mobile terminal devices can include mobile phones, tablets, in-vehicle central control devices, wearable devices, smart devices, and aircraft, etc. Smart devices can include smart office equipment, smart home equipment, and robots, etc.

[0064] A target event can represent an event that launches the application based on the target event after the target event, or an event that has a probability of launching the target application based on the target event after the target event.

[0065] For example, the target event can also be an event determined based on the user's input.

[0066] For example, the target event can also be a preset event.

[0067] Following the target event, the user needs to launch the next application that will be opened. The target application is the application that is most likely to be launched after the target event.

[0068] After detecting a target event, a target application to be launched can be preset based on the target event. The target application can be an application related to the target event; that is, there is a mapping relationship between the target event and the target application, and the target application is a subset of the applications related to the target event. In this case, different target events will result in different predicted target applications to be launched.

[0069] The target application can also be an application that is not related to the target event. The target event acts as a trigger condition; for example, after the target event is detected, the target application could be any application. In this case, different target events may result in the same or different predicted target applications.

[0070] For example, the target application could be any application already installed on the device, such as video applications, game applications, audio playback applications, office or learning applications, sports applications, instant messaging applications, financial management applications, map or travel applications, shopping applications, etc.

[0071] The target application may also be different depending on the target event and / or the time at which the target event is detected.

[0072] One implementation method for predicting a target application may include:

[0073] Predict the target application using the target application prediction model.

[0074] In this approach, the target event can serve as a trigger event for predicting the target application, and the prediction of the target application is independent of the event's own information. The target event does not affect the prediction result of the target application; it is not used as input to the target application's prediction model, and the prediction result of the target application is determined solely based on the application's prediction model.

[0075] The target application prediction model can be a pre-trained model.

[0076] One implementation method, which presets a target application based on a target event, may further include:

[0077] A target application is predicted using a target application prediction model based on a target event. The target event serves as a determinant for predicting the target application, acting as input to the prediction model. The predicted target application is correlated with the target event. Different target events may result in different predicted target applications; that is, the target event influences the prediction outcome. In this approach, the target event simultaneously acts as a trigger for predicting the target application and as a factor influencing the prediction result.

[0078] One implementation method, which presets a target application based on a target event, may further include:

[0079] Predict the target application based on the historical usage information of each application installed on the terminal device;

[0080] or,

[0081] Based on the historical usage information of each application installed on the terminal device and the target event, predict the target application.

[0082] In this embodiment, historical usage information of the application is incorporated, and the target application is predicted by combining the historical usage data of each application, thereby improving the accuracy of the prediction of the target application.

[0083] The number of target applications is not limited and can be M, where M is a positive integer. For example, one, two, or more. In this embodiment, M is one.

[0084] Once the target application is predicted, it indicates that the target application is the most likely application to be launched after the target event.

[0085] After identifying the target application, it can be determined whether to cache the target process of that application. If it is determined that the target process of the target application should be cached, then the target process of the target application is cached before the target application is launched.

[0086] Before launching an application, its process needs to be created. After the process is created, the application can be launched based on that process. Typically, process creation takes some time, and the longer it takes, the worse the user experience. Launching an application can include both cold and warm starts.

[0087] By predicting the target application, the accuracy of the application the user will launch next can be improved. By pre-caching the target process of the target application, which is determined to be cached, some of the application's startup processes can be executed in advance. Therefore, when the user needs to launch the target application, these processes do not need to be waited for, thus shortening the application launch time. Through prediction of the target application and pre-caching of the target process, the launch efficiency of the target application can be improved on top of the hit rate. This improves the launch efficiency of the target application, reduces the waiting time after the user launches the target application, and thus enhances the user experience.

[0088] Furthermore, if it's determined that the target application's process doesn't need to be cached, then caching the target application's process beforehand is avoided. This reduces excessive memory consumption and system load caused by caching the target process in situations where it's unnecessary. This minimizes memory usage and system impact, freeing up more memory for other applications. From a user perspective, this improves the user experience.

[0089] In one embodiment, reference Figure 2 This is a schematic diagram of a method for predicting a target application. In step S200, predicting the target application to be launched includes:

[0090] S201, Obtain historical usage information for each candidate application; wherein, the candidate applications are the applications currently installed on the device.

[0091] S202, predict the target application based on target information; wherein the target information includes: historical usage information, or historical usage information and target events.

[0092] The terminal device has multiple applications installed. These installed applications are referred to as candidate applications, and the terminal device is referred to as the current device. The candidate applications can be any type of application, and the type of candidate applications is not limited. You can refer to the application types described above for the target application.

[0093] Each application in the candidate applications may be used as the target application, which is determined from the candidate applications.

[0094] Each candidate application will have a running record after it is run on the current device. This running record of each candidate application will be recorded as historical usage information. This historical usage information can be historical usage information within a target time period, which can be from T to T-ΔT, where T represents the current time and ΔT represents the duration of the interval.

[0095] Historical usage information can be various historical usage information of the alternative applications, including but not limited to:

[0096] The time point of use;

[0097] Usage duration;

[0098] Startup frequency;

[0099] Number of startups;

[0100] The calling relationships between alternative applications;

[0101] The startup order relationship between the alternative applications;

[0102] Within a first preset time period after the second device connects to the current device, the number of times the alternative application is launched and / or the number of times the target function is requested; wherein, the target function is used for information output or input after the alternative application is launched;

[0103] Get the number of times the first piece of information in the clipboard is retrieved;

[0104] The number of times the first information is copied;

[0105] Different historical usage information has its own weight.

[0106] The second device can be a device connected to the current device. After the second device and the current device are connected, they can exchange information. For example, the current device can play audio or video through the second device, and the second device and the current device can also transfer information to each other.

[0107] The current device may be running alternative applications. These alternative applications can request to call a target function in the system, which can then be used for the alternative application's information output or input. For example, if the alternative application is an audio playback application, then when the alternative application is running, it can play audio by requesting the target function; in this case, the target function is the audio playback function. As another example, if the alternative application is a video playback application, then the target function can be a video playback function and / or a video playback function.

[0108] After determining the historical usage information of each candidate application, the target application can be predicted based on the target information. The target information includes: historical usage information, or historical usage information and target events. That is, the target information can be the historical usage information of each candidate application, and the target application can be predicted solely based on the historical usage information of each candidate application. Alternatively, the target information can be the historical usage information of each candidate application and the target events detected in step S100, and the target application can be predicted jointly based on the target events and historical usage information.

[0109] This embodiment provides two methods for predicting target applications. One method is based solely on the historical usage information of each candidate application. The target event serves as the trigger condition for predicting the target application and does not affect the prediction result. The prediction result of the target application is determined based on the historical usage information of each candidate application.

[0110] This method combines the target event with historical usage information from various candidate applications to predict the target application. In this case, both the target event and the historical usage information of each candidate application are considered as factors in the prediction, and both types of information influence the prediction result. This approach can incorporate more factors to predict the target application, improving the accuracy of the prediction. Consequently, the target process of the cached target application is the process of the application that the user will launch next, thereby reducing the startup time of the target application and improving the user experience.

[0111] In one embodiment, S201, historical usage information of each candidate application is obtained, including:

[0112] Get the first historical usage information of the alternative applications on the current device.

[0113] When retrieving historical usage information for candidate applications, the historical usage information of each candidate application on the current device can be retrieved and recorded as the first historical usage information. This first historical usage information represents the running records of these candidate applications on the current device.

[0114] The current device refers to the device currently used by the user. This device directly reflects the user's usage history for various applications. Therefore, the first historical usage information obtained in this way is the most relevant to the current user and best reflects their usage habits, characterizing the individual behavioral features of the current device user. The target application predicted using this first historical usage information has the strongest correlation with the current device user, thus improving the accuracy of target application prediction.

[0115] In one embodiment, S201, historical usage information of each candidate application is obtained, including:

[0116] Obtain second historical usage information of alternative applications on at least one first device; wherein the first device is a device other than the current device.

[0117] The same alternative applications can also be installed on other devices besides the current device; these other devices are referred to as the first device. The usage records of each alternative application on the first device are recorded as the second historical usage information.

[0118] This scheme incorporates second historical usage information of the corresponding candidate applications in the first device, using this information as a factor in predicting the target application. Since the candidate applications are the same, this allows for prediction of the target application the current device user will use next, based on the usage information of different users with the same candidate application—that is, based on the common behavioral characteristics of different users using the candidate application.

[0119] In one embodiment, S201, historical usage information of each candidate application is obtained, including:

[0120] Obtain first historical usage information of the alternative application on the current device, and second historical usage information of the alternative application on at least one first device.

[0121] This method involves obtaining first and second historical usage information, and then using both information together as historical usage information to predict the target application.

[0122] This method combines the individual behavioral characteristics of current device users using various candidate applications with the common behavioral characteristics of users on other devices using various candidate applications. Combining these two types of information to predict the target application can improve the accuracy of the prediction.

[0123] In one embodiment, the target event includes at least one of the following:

[0124] The current application's launch event;

[0125] The current application's exit event;

[0126] The first return event to return to the desktop;

[0127] The second return event that returns to the backend management interface;

[0128] Switching events that allow switching between different applications;

[0129] The connection event between the second device and the current device; wherein, the second device is used to exchange information with the device where the target application is located through the target application;

[0130] A copying event for either the first information or the second information; wherein the second information is information associated with the first alternative application within a second alternative application other than the first alternative application.

[0131] In one embodiment, reference Figure 3 This is a schematic diagram of a method for predicting a target application. S202, predicting the target application based on target information includes:

[0132] S2021, determine the priority of each candidate application based on the target information; wherein, the priority is positively correlated with the probability of the candidate application becoming the target application.

[0133] S2022, determine the target application based on priority.

[0134] After obtaining historical usage information, target information can be obtained immediately, and the target application can be predicted based on this information. When the target information is the historical usage information of candidate applications, the priority of each candidate application can be determined individually based on the historical usage information. When the target information is both the target event and the historical usage information of candidate applications, the priority of each candidate application can be determined by combining the target event and the historical usage information.

[0135] Historical usage information can include multiple different usage information, each with its own weight. The priority of each candidate application can be determined based on its historical usage information and the corresponding weight.

[0136] This method allows us to determine the priority of each candidate application. The higher the priority, the higher the probability of it becoming the target application, and the lower the priority, the lower the probability of it becoming the target application.

[0137] After determining the priorities of each candidate application, the target application can be determined based on these priorities. The target application can be the highest-priority candidate application, which will be used as the target application. Alternatively, the target application can be one of the top M priority candidate applications, in which case the top M priority candidate applications will be used as the target application. In this case, there are multiple target applications, where M is greater than or equal to 2.

[0138] In one embodiment, the method for predicting the target application may include:

[0139] The target application prediction model predicts the target application. When the target information is historical usage information, the target application prediction model can be trained based on the initial network model obtained from the first training sample set. The first training sample set includes multiple first sample groups, each first sample group including a first label and multiple first samples. The first samples serve as the input to the initial network model, and the first label represents the target prediction result of the first sample in its sample group.

[0140] The first sample can be historical usage information of each candidate application. The more first samples there are, the higher the accuracy of the target application prediction model trained. The more first sample groups there are, the higher the accuracy of the target application prediction model trained.

[0141] When the target information consists of historical usage information and target events, the target application prediction model can be trained from the initial network model using a second training sample set. The second training sample set includes multiple second sample groups, each of which includes a second label, multiple second samples, and multiple event samples. The second samples and event samples serve as inputs to the initial network model, and the second label represents the target prediction result of the second sample in its sample group.

[0142] The second sample can be historical usage information of each candidate application. The more second samples and event samples there are, the higher the accuracy of the target application prediction model trained. The more second sample groups there are, the higher the accuracy of the target application prediction model trained.

[0143] For example, the initial network model can be a machine learning model or a deep neural network model. The initial network model can be trained using supervised learning, unsupervised learning, or semi-supervised learning. When training the initial network model using unsupervised learning, the training samples are unlabeled.

[0144] In one embodiment, reference Figure 4This is a schematic diagram illustrating another target application prediction method. The target application prediction model may include: a first prediction model and a second prediction model. The first prediction model and the second prediction model may be models that make predictions based on different prediction methods, and the structures of the first prediction model and the second prediction model may also be different.

[0145] For example, the first prediction model could be a deep neural network model, and the second prediction model could be a Bayesian network model. Each prediction has its own results, and different prediction models may produce different results.

[0146] Both the first preset model and the second prediction model are fully trained models. When predicting the target application, the target application can be determined based on the first prediction result of the first prediction model and the second prediction result of the second prediction model. The first prediction result can include a first ranking result of each candidate application as the target application, and the second prediction result can also include a second ranking result of each candidate application as the target application. The first prediction result and the second prediction result can each have their own weights. Based on the first prediction result, the second prediction result, and their respective weights, the target ranking result of each candidate application is determined comprehensively. The target application can be determined based on the target ranking result, either by selecting the highest-ranked candidate application or by selecting the top M candidate applications.

[0147] This embodiment improves the accuracy of predicting target applications by combining the prediction results of multiple different prediction models to comprehensively determine the target application.

[0148] In one embodiment, the target event may include:

[0149] The connection event between the second device and the current device; wherein, the second device is used to exchange information with the device where the target application is located through the target application.

[0150] For example, a Bluetooth device connects to the current device, and the second device is also a Bluetooth device, which can include Bluetooth headsets. The second device can also be a device on the same local area network as the current device, such as a television, projector, or laptop.

[0151] Historical usage information may include:

[0152] Within a first preset time period after the second device is connected to the current device, the number of times the alternative application is launched and / or the number of times the target function is requested; wherein, the target function is used for information output or input after the alternative application is launched.

[0153] After the second device is connected to the current device, if any candidate application is launched or requests the target function within a first preset time period, it indicates that the candidate application may be the target application to be launched. The historical usage information includes the number of times each candidate application is launched and / or the number of times the target function is requested within the first preset time period after the second device is connected to the current device.

[0154] This historical information is used as training samples to train an initial network model, resulting in a prediction model for the target application. The initial network model can be trained using supervised learning, unsupervised learning, or semi-supervised learning methods to obtain the prediction model for the target application.

[0155] It is also possible to predict target applications based on historical information through functional relationships.

[0156] For example, the alternative applications include alternative application B1, alternative application B2 and alternative application B3. Based on the historical usage information corresponding to alternative application B1, alternative application B2 and alternative application B3 respectively, such as the number of times the alternative applications are launched and / or the number of times the target function is requested within a first preset time after the second device is connected to the current device, a prediction function is obtained.

[0157] The prediction function can be expressed as follows (1):

[0158]

[0159] Count(B) represents the probability that candidate application Bi will be the target application. i This indicates the number of times the alternative application Bi is launched and / or the number of times the target function is requested within the first preset time after the second device is connected to the current device.

[0160] In one embodiment, the target event may include:

[0161] The copy event that replicates the first information;

[0162] Historical usage information includes: the number of times the first information in the clipboard has been retrieved and the number of times the first information has been copied.

[0163] If the information in the clipboard is updated, it indicates that a copy event has occurred. This copy event can be a copy event that copies the first information. In response to this copy event, the probability of each candidate application being the target application can be determined based on the historical number of times each candidate application has been retrieved.

[0164] For example, it can be determined according to the following formula (2):

[0165]

[0166] in, This represents the probability that the candidate application Ci will be the target application. Indicates the number of historical copies. Indicates the number of times it has been retrieved in history.

[0167] In one embodiment, a copy event may include:

[0168] The event of copying second information refers to information associated with the first alternative application within a second alternative application, other than the first alternative application. For example, the second information could be information specific to the second alternative application, such as a shopping link, audio link, video link, or webpage link. The second alternative application must be able to open the display interface corresponding to this second information, while other applications must not be able to open it.

[0169] For example, the second information may be in the form of a password, a password specific to a second alternative application. The password information may have fields specific to the second alternative application, such as length.

[0170] The number of launches in historical usage information includes:

[0171] The number of historical launches after the second information was copied to the clipboard.

[0172] For example, it can be determined according to the following formula (3):

[0173]

[0174] S ci This indicates the number of times the second information has been copied to the clipboard in history.

[0175] For a given candidate application, the more historical launches it has after copying the second information to the clipboard following the copy event, the greater the probability of it becoming the target application.

[0176] In one embodiment, reference Figure 5 This is a schematic diagram of another processing method, which also includes:

[0177] S1, detects the settings of alternative applications.

[0178] S2 determines the alternative application based on the set operation.

[0179] This embodiment illustrates how to determine a candidate application. The candidate application can be a user-defined application. The system can detect user settings and determine the candidate application based on those settings. The settings action can be an operation performed on the candidate application's settings page. The device can display this settings page to facilitate user settings for the candidate application.

[0180] For example, the alternative application settings page has a selection control for alternative applications, and the selected application becomes the alternative application.

[0181] The solution in this embodiment can determine alternative applications from the currently installed applications on the device based on the user's preferences, wishes, and needs, and filter out applications that the user does not need to launch. This ensures that the predicted target application is one or more of the alternative applications that meet the user's needs, thereby improving the accuracy of the predicted target application and thus enhancing the user experience.

[0182] In one embodiment, reference Figure 6 This is a schematic diagram of a method for determining the target process of a cached target application, the method including:

[0183] S10, determine whether the target application meets the caching conditions.

[0184] S20, when the caching conditions are met, cache the target process of the target application.

[0185] This example demonstrates how to determine whether to cache the target process of a target program. If the caching conditions are met, the target process is determined to be cached, and therefore cached. If the caching conditions are not met, the target process is determined not to be cached, and therefore not cached.

[0186] The caching conditions can be determined based on the caching condition configuration operation. The caching condition configuration operation can be detected. This caching condition configuration operation can be an operation performed on the caching condition configuration page. The caching condition configuration page includes caching condition configuration options. The caching conditions can be determined from the caching condition configuration options based on the caching condition configuration operation.

[0187] For example, the caching condition configuration option can be user-defined or preset. For instance, it can include the current device status, user preferences, and the running history of alternative applications. Different caching conditions may result in different outcomes regarding whether the target application meets the caching criteria.

[0188] By caching the target process of the target application when the caching conditions are met, it indicates that the target process of the target application can be cached at present with minimal impact on other parts of the device. It can also cache the target process of the target application in advance, shortening the time to start the target application, thereby improving the startup efficiency of the target application and thus improving the user experience.

[0189] If the caching conditions are not met, it means that it is not suitable to cache the target process of the target application in advance under the current circumstances. This can reduce the memory usage of the device, reduce power consumption and the impact on other aspects of the current device, thereby improving the current user experience.

[0190] In one embodiment, reference Figure 7 This is a schematic diagram of a method for determining whether a target application meets caching conditions, the method including:

[0191] S11, obtain the current status information of the device where the target application is located, the list of target applications, the prediction interval, and the status information of the target application itself.

[0192] S12, determine whether the caching conditions are met based on the current state information, the target application list, the prediction interval, and / or its own state information.

[0193] The caching conditions in this embodiment may include the current state information of the device where the target application resides, a list of target applications, a prediction interval, and the target application's own state information. After determining these caching conditions, it can be determined whether these caching conditions are met.

[0194] In one embodiment, the current state includes: the current percentage of memory usage and / or the current battery level;

[0195] In S12, determining whether the caching conditions are met includes:

[0196] When the current occupancy rate is less than the preset rate, the caching condition is determined to be met.

[0197] And / or,

[0198] If the current battery level is greater than the battery threshold, the caching condition is determined to be met.

[0199] This embodiment determines whether to cache the target application based on the current state of the device. If the current state meets the caching conditions, the target process of the target application is cached; otherwise, the target process of the target application is not cached.

[0200] The current status includes the current memory usage percentage of the device. This current usage percentage is used as a factor in whether to cache the target process. When the current usage percentage is less than the preset percentage, it indicates that the device has a lot of free memory and the memory pressure is low. The target process can be cached, and caching the target process will have a small impact on memory and will not affect the normal operation of other applications. Therefore, the caching conditions are met.

[0201] The current status can also include the current battery level, which can be used as a factor in whether to cache the target process. If the current battery level is greater than the battery threshold, it indicates that the device has a lot of battery power and can cache the target process. Furthermore, caching the target process will not affect the normal battery life, and the caching condition is met.

[0202] The system can also use both the current occupancy rate and the current circuit status as cache conditions. If both the current occupancy rate is less than a preset rate and the current battery level is greater than a battery threshold, then the cache condition is considered met. This allows multiple factors to be used as cache conditions, thereby improving the accuracy of whether the cache condition is met.

[0203] In one embodiment, the self-state information includes: whether it is running in the background;

[0204] In S12, determining whether the caching conditions are met includes:

[0205] If the target application is not running in the background, determine if the caching conditions are met.

[0206] Using whether the target application is running in the background as a caching condition, if the target application is not running in the background, it indicates that the target application's startup is a cold start, and the startup process takes a long time. In this case, determining that the caching condition is met allows the target application's process to be cached in advance, which helps to shorten the target application's startup time and thus improve the user experience.

[0207] In one embodiment, S12, determining whether the cache condition is met includes:

[0208] Obtain the historical running status of the target application within a preset historical time period, and determine whether the caching conditions are met based on the running status.

[0209] In this embodiment, the historical running status of the target application within a preset historical time period is used as a factor for whether to cache the target process. The historical running status of the target application can reflect its running status within the preset historical time period, and directly or indirectly reflect whether the target application has any abnormalities.

[0210] For example, the running status includes at least: whether a crash has occurred and / or the response time.

[0211] In S12, determining whether the caching conditions are met includes:

[0212] If the target application does not crash and / or the response time does not exceed the second preset time period within the preset historical time period, the caching conditions are determined to be met.

[0213] If the target application crashes within a preset historical time period, and / or its response time exceeds a second preset time period, it indicates that the target application is malfunctioning. If the target application does not crash within the preset historical time period, and / or its response time does not exceed the second preset time period, it indicates that the target application is functioning normally.

[0214] Under normal operating conditions, the target process of the target application can be cached in advance, which can ensure that the target process runs normally after the target process in the buffer pool, reduce the possibility of crashes or excessively long response times, help shorten the startup time of the target application, improve the startup efficiency of the target application, and thus improve the user experience.

[0215] For example, a response time exceeding a second preset time may include an Application Not Response (ANR) dialog box, which is a dialog box that the system displays to the user when the application is not responsive enough.

[0216] In one embodiment, the list of target applications includes selected preset applications.

[0217] In S12, determining whether the caching conditions are met includes:

[0218] Determine if the target application is in a preset application. If the target application is in a preset application, determine if the caching conditions are met.

[0219] The target application list can be determined based on the user's list configuration settings, and the user can adjust the applications in this list. Alternatively, the applications in this target application list can be preset.

[0220] The preset applications in this target application list are the selected applications, and these preset applications can be determined based on the selection action. Determining preset applications in this way ensures that they meet the user's preferences and needs.

[0221] If the target application is located within a preset application, and is an application within a preset application, it indicates that the target application meets the user's preferences and needs, thus satisfying the caching conditions.

[0222] refer to Figure 8 This is a diagram illustrating a list of target applications. Figure 8 The image shows several applications, each with its own option control that determines whether the application is selected as the default application.

[0223] In one embodiment, in S21, reference Figure 9 This is a schematic diagram of a method for determining whether a target application meets caching conditions, the method including:

[0224] S121, when the target application is an application other than the preset application, determine whether the target application has an exit record of exiting the background within the second preset period.

[0225] S122, if no exit record exists, it is determined that the caching condition is met.

[0226] When the target application is not among the applications included in the predicted applications, it means that the target application is not an application in the user-defined applications, and the target application may not be the application that the user needs to launch next.

[0227] In this case, if there is no exit record for the target application within the second preset time period, it indicates that the target application has been running in the background for the entire second preset time period. The fact that the target application is running in the background suggests that it is an application that the user needs, or that the user is highly likely to need to use the target application. In this case, the caching condition is determined to be met.

[0228] The second preset duration can be the preset duration closest to the current time, for example, within the last 2 minutes.

[0229] The exit records for background processes can include exit records obtained from exiting the background process via an exit operation, or exit records for the target application exiting the background due to an exception or other factors. In short, records of background processes exiting within the second preset time period are acceptable.

[0230] If an exit record exists within the second preset time period and the target application is not among the preset applications, it means that the target application is very likely not the application that the user needs to launch next. Therefore, it can be determined that the target application does not meet the caching conditions, which means that the process of caching the target application is eliminated, reducing memory usage and reducing the system's processing of related data.

[0231] In one embodiment, reference Figure 10This is a schematic diagram of a method for determining whether a target application meets caching conditions, the method including:

[0232] S123, determine the prediction interval between the target application of the previous prediction and the target application of the current prediction.

[0233] S124, when the prediction interval exceeds the preset interval, it is determined that the caching condition is met.

[0234] There is no sequential relationship between steps S123 and S124 and steps S121 and S122.

[0235] This embodiment determines whether a target application needs to be cached based on time information, using a prediction time interval as a factor in determining whether caching conditions are met. Here, the prediction interval is the time interval between the last prediction of the target application and the current prediction of the target application. The terminal device can record the time of each target application prediction, so it can directly obtain the time of the last and current predictions. Based on these two times, the time interval between them can be determined. This prediction interval and a preset interval are used as caching conditions; if the prediction interval exceeds the preset interval, the caching conditions are met.

[0236] In this case, it indicates that there is a corresponding time difference between two adjacent cached events, which can reduce the memory pressure and system processing pressure caused by frequent caching.

[0237] In one embodiment, reference Figure 11 This is a diagram illustrating another processing method, which involves caching the target process of the target application before launching it, including:

[0238] S3 creates the target process of the target application before launching it.

[0239] S4, loads the target data required to launch the target application.

[0240] S5 stores the target data in the target process of the target application.

[0241] The three steps S3 to S5 are not sequentially related to S1 and S2.

[0242] This embodiment caches the number of target processes. Before caching, the target process of the target application needs to be created first. After the target process is created, the target data required to start the target application is loaded and stored in the target process, thus achieving target process caching. After caching, the target process exists in the background. When starting the target application, it can be launched directly from the target process running in the background, eliminating the need to wait for the target process to be created, thereby shortening the startup time of the target application and improving the efficiency of starting the target application.

[0243] In one embodiment, the method further includes:

[0244] Detect the startup operation of the target application, and in response to the startup operation, launch the target application based on the target process.

[0245] When a target application is launched, a user's launch action can be detected. In response to this launch action, the target application can be launched based on the cached target process. Before a launch action is detected, the cached target process is in the background and not launched to the foreground. After the target application is launched based on the launch action, it can be launched based on the cached target process, thus running the target application in the foreground.

[0246] In one embodiment, the method further includes:

[0247] When caching the target process of the target application identified this time, the cache priority of the target process of the target application identified this time is adjusted to be higher than the cache priority of the target process of the target application identified last time.

[0248] Among them, the cache priority is positively correlated with the probability that the target process resides in the background.

[0249] When predicting the target application, if there are K target events, the target application will be predicted once for each target event detected, for a total of K predictions.

[0250] When caching the target process of a target application twice in succession, the cache priority of the target process of the currently cached target application can be adjusted compared to the cache priority of the target process of the previously determined target application. Since the target application currently cached is the application most likely to be launched next, the cache priority of the target process of the currently cached target application is adjusted to be higher than the cache priority of the target process of the previously determined target application.

[0251] Since the previously identified target application has already started and is running, and the currently predicted target application is the one that will start next, the cache priority of the target process of the currently predicted target application is higher than that of the target process of the previously identified target application. A higher cache priority means a greater probability of it residing in the background. This reduces the probability that the target process of the currently predicted target application will be cleared, increases the probability that the target process of the currently predicted target application will remain in the background, and thus improves the chances of the currently predicted target application starting normally.

[0252] In one embodiment, the method further includes:

[0253] When the target application is an application in the preset applications, the cache priority of the target application's target process is always kept at the highest.

[0254] The preset application in this embodiment can be the same as the preset application in the previous embodiments. When the target application is an application within the preset application, it means that the target application is an application that meets the user's preferences and needs, and the user is more likely to use the target application. Therefore, the cache priority of the target process of the target application is consistently kept at the highest level. This can reduce the probability of clearing the target application from the background, thereby reducing the need to restart the target application when the user needs to use it, and improving the user experience.

[0255] In one embodiment, the method further includes:

[0256] Adjust the cache priority of target processes for each target application based on memory pressure.

[0257] It can detect memory pressure and adjust the cache priority of the target process of the target application for each prediction based on the memory pressure, thereby reducing the negative impact on the system.

[0258] For example, when memory pressure exceeds a first pressure threshold, the cache priority of the target process of each target application can be reduced.

[0259] The first pressure threshold can be determined based on the system's operating status. When the memory pressure exceeds the first pressure threshold, it indicates that the current memory pressure is too high, and some memory needs to be released. Therefore, the cache priority of the target processes of each target application can be reduced. After the cache priority of the target processes of each target application is reduced, the probability of the target processes of each target application being cleaned up from the background will increase, thereby freeing up memory, reducing memory pressure, and providing more memory for other applications to use, thus improving system performance.

[0260] In one embodiment, reference Figure 12 This diagram illustrates another processing method. After caching the target process of the target application, the method further includes:

[0261] S400, determine whether the memory optimization conditions are met.

[0262] The S500 optimizes memory when memory optimization conditions are met.

[0263] The optimization conditions can be determined based on the optimization condition configuration operation. The optimization condition configuration operation can be detected. This optimization condition configuration operation can be an operation performed on the optimization condition configuration page. The optimization condition configuration page includes optimization condition configuration options. The optimization conditions can be determined from the optimization condition configuration options based on the optimization condition configuration operation.

[0264] For example, the optimization condition configuration options can be user-defined or preset. For instance, they could include the current device status, whether the target application is launched within a certain timeframe, etc. Different optimization conditions may result in different outcomes regarding whether the target application meets the optimization criteria.

[0265] Optimizing memory when optimization conditions are met indicates that memory can be optimized at present, thereby freeing up more memory, which helps improve system performance and enhance the user experience.

[0266] If the optimization conditions are not met, it means that memory optimization is not necessary under the current circumstances. There is plenty of available memory, and caching the target application's target process will not affect the memory usage of other applications, nor will it affect system performance. In fact, it can improve the startup speed and user experience of the target application.

[0267] In one embodiment, S400, determining whether memory optimization conditions are met includes at least one of the following:

[0268] The total memory usage of the target process of the target application identified this time, as well as the target process of the target application identified previously, exceeds the first memory usage threshold, thus meeting the memory optimization conditions.

[0269] If the target application is not launched within the third preset time period, it is determined that the memory optimization conditions are met;

[0270] When the memory utilization rate is greater than the second utilization rate threshold, the memory optimization condition is determined to be met.

[0271] When the memory pressure exceeds the second pressure threshold, the memory optimization conditions are determined to be met.

[0272] This embodiment provides several examples of determining whether memory optimization conditions are met. Meeting any one or more of the above conditions can be considered as meeting memory optimization conditions.

[0273] In one embodiment, S500, memory is optimized when memory optimization conditions are met, including at least one of the following:

[0275] The target process of the target application to terminate the cache;

[0276] End pending processes; where pending processes are the target application identified this time and the N applications with the lowest probability among the previously identified target applications; probability is the probability of being identified as a target application;

[0277] Reclaim the physical pages corresponding to the file pages;

[0278] Perform memory compression on anonymous pages.

[0279] This embodiment provides several memory optimization methods that can be used when one or more memory optimization conditions are met. That is, when any one of the memory optimization conditions is met, memory optimization can be performed using any one or more of the above memory optimization methods.

[0280] In one embodiment, reclaiming the physical page corresponding to the file page includes at least one of the following:

[0281] Write dirty pages back to external memory and reclaim the physical pages corresponding to dirty pages;

[0282] Reclaim the physical pages corresponding to file pages other than dirty pages.

[0283] In one embodiment, after performing memory compression on the anonymous page, the method further includes:

[0284] The anonymous pages, after being compressed from memory, are swapped to external storage, and then the physical pages corresponding to the anonymous pages are reclaimed.

[0285] In one embodiment, reference Figure 13 This is a schematic diagram of another processing method.

[0286] Determine whether the memory optimization conditions are met, including: if the target application is not launched within a third preset time period, the memory optimization conditions are met.

[0287] Optimize memory when the memory optimization criteria are met, including:

[0288] Reclaim the physical pages corresponding to file pages, and / or perform memory compression on anonymous pages.

[0289] For example, dirty pages can be written back to external storage, and then the physical pages corresponding to the dirty pages can be reclaimed. External storage can be a hard disk or flash memory, etc. Reclaiming the physical pages corresponding to dirty pages can include: unmapping the memory mapping relationship in the dirty page, and then reclaiming the physical pages corresponding to the dirty page.

[0290] For file pages that are not dirty pages, the physical pages corresponding to these file pages can be reclaimed after the memory mapping relationship is broken.

[0291] If it is an anonymous page, then the anonymous page is compressed in memory, for example, by using ZRAM technology. By defining a region, the compressed anonymous page is placed in that region to achieve high-speed reading of the anonymous page, while reducing the memory size occupied by the anonymous page and saving memory resources.

[0292] Alternatively, the compressed anonymous pages can be swapped to external storage, and then the corresponding physical pages can be reclaimed. This can further reduce the physical memory usage of anonymous pages.

[0293] Memory optimization can be performed in the kernel, such as... Figure 13 The kernel shown indicates that the target application is an application located in user space. Alternative applications may include... Figure 13 The memory freeze app shown. The third preset duration can include... Figure 13 The time condition shown is met.

[0294] In one embodiment, reference Figure 13 Determine whether the memory optimization criteria are met, including:

[0295] When the memory pressure exceeds the second pressure threshold, the memory optimization conditions are determined to be met.

[0296] Optimize memory when the memory optimization criteria are met, including:

[0297] The target process of the target application that terminates the cache can also perform memory swapping.

[0298] In one embodiment, reference Figure 13 Determine whether the memory optimization criteria are met, including:

[0299] The total memory usage of the target process of the target application identified this time, as well as the target process of the target application identified previously, exceeds the first memory usage threshold, thus meeting the memory optimization conditions.

[0300] Optimize memory when the memory optimization criteria are met, including:

[0301] Terminate pending processes; where pending processes are the target application identified this time and the N applications with the lowest probability among the previously identified target applications; probability is the probability of being identified as a target application.

[0302] In one embodiment, reference Figure 14 This is a schematic diagram of a processing device, which includes:

[0303] Detection module 1 is used to detect target events;

[0304] Prediction module 2 is used to predict the target application to be launched based on the target event;

[0305] The caching module 3 is used to cache the target process of the target application before starting the target application if the target data is determined to be cached.

[0306] In one embodiment, prediction module 2 includes:

[0307] The acquisition submodule is used to acquire historical usage information of each candidate application; wherein, the candidate applications are applications currently installed on the device.

[0308] The prediction submodule is used to predict the target application based on target information; wherein the target information includes: the historical usage information, or the historical usage information and the target event.

[0309] In one embodiment, the submodule is retrieved for:

[0310] Obtain the first historical usage information of the candidate application on the current device;

[0311] And / or,

[0312] Obtain second historical usage information of the alternative application in at least one first device; wherein the first device is a device other than the current device.

[0313] In one embodiment, the historical usage information includes at least one of the following:

[0314] The time point of use;

[0315] Usage duration;

[0316] Startup frequency;

[0317] Number of startups;

[0318] The calling relationships between the alternative applications;

[0319] The startup order relationship among the candidate applications;

[0320] Within a first preset time period after the second device connects to the current device, the number of times the alternative application is launched and / or the number of times the target function is requested; wherein, the target function is used for the output or input of the alternative application after it is launched;

[0321] Get the number of times the first piece of information in the clipboard is retrieved;

[0322] The different historical usage information have their own weights.

[0323] In one embodiment, the number of startups includes:

[0324] The number of times the second information is copied to the clipboard;

[0325] The second information is information associated with the first alternative application in a second alternative application other than the first alternative application; the first information is different from the second information.

[0326] In one embodiment, the target event includes at least one of the following:

[0327] The current application's launch event;

[0328] The current application's exit event;

[0329] The first return event to return to the desktop;

[0330] The second return event that returns to the backend management interface;

[0331] Switching events that allow switching between different applications;

[0332] The connection event between the second device and the current device; wherein, the second device is used to interact with the device where the target application is located through the target application;

[0333] A copying event for either first information or second information; wherein the second information is information associated with the first alternative application in a second alternative application other than the first alternative application; and the first information is different from the second information.

[0334] In one embodiment, the prediction submodule includes:

[0335] A priority determination unit is used to determine the priority of each of the candidate applications based on the target information; wherein the priority is positively correlated with the probability that the candidate application is the target application;

[0336] A target application determination unit is configured to determine the target application based on the priority.

[0337] In one embodiment, the apparatus further includes:

[0338] The detection module is used to detect the setting operations of the candidate applications;

[0339] The determination module is used to determine the candidate application based on the set operation.

[0340] In one embodiment, cache module 3 includes:

[0341] The determination submodule is used to determine whether the target application meets the caching conditions;

[0342] The caching submodule is used to cache the target process of the target application when the caching conditions are met.

[0343] In one embodiment, determining the submodule includes:

[0344] The acquisition unit is used to acquire the current status information of the device where the target application is located, the list of target applications, the prediction interval, and the self-status information of the target application.

[0345] The determining unit is configured to determine whether the caching conditions are met based on the current state information, the target application list, the prediction interval, and / or its own state information.

[0346] In one embodiment, the current state includes: the current memory usage percentage and / or the current battery level;

[0347] Determine the unit, used for:

[0348] When the current occupancy rate is less than the preset rate, it is determined that the caching condition is met;

[0349] And / or,

[0350] When the current battery level is greater than the battery threshold, it is determined that the cache condition is met.

[0351] In one embodiment, the self-state information includes: whether it is running in the background;

[0352] Determine the unit, used for:

[0353] If the target application is not running in the background, the caching conditions are determined to be met.

[0354] In one embodiment, the determining unit is used for:

[0355] Obtain the historical running status of the target application within a preset historical time period;

[0356] Determine whether the cache conditions are met based on the historical running status.

[0357] In one embodiment, the historical running status includes at least: whether a crash occurred and / or the response time;

[0358] Determine the unit, used for:

[0359] If the target application does not crash and / or its response time does not exceed the second preset time period within the preset historical time period, the caching condition is determined to be met.

[0360] In one embodiment, the target application list includes selected preset applications;

[0361] Determine the unit, used for:

[0362] Determine whether the target application is located within the preset application;

[0363] When the target application is located in the preset application, the caching conditions are determined to be met.

[0364] In one embodiment, the determining unit is used for:

[0365] When the target application is an application other than a preset application, determine whether the target application has an exit record of exiting the background within a second preset period; if no exit record exists, determine that the caching condition is met.

[0366] In one embodiment, the determining unit is used for:

[0367] Determine the prediction interval between the target application predicted in the previous prediction and the target application predicted in the current prediction; if the prediction interval exceeds a preset interval, determine that the caching condition is met.

[0368] In one embodiment, cache module 3 includes:

[0369] Create a submodule for creating the target process of the target application before launching the target application;

[0370] The loading submodule is used to load the target data required to start the target application;

[0371] A storage submodule is used to store the target data in the target process of the target application.

[0372] In one embodiment, the device further includes:

[0373] The detection module is used to detect the startup operation of the target application after caching the target process;

[0374] A startup module is used to launch the target application based on the target process in response to the startup operation.

[0375] In one embodiment, the apparatus further includes:

[0376] The adjustment module is used to adjust the cache priority of the target process of the target application determined in this instance to be higher than the cache priority of the target process of the target application determined in the previous instance when caching the target process of the target application determined in this instance.

[0377] The cache priority is positively correlated with the probability that the target process resides in the background.

[0378] In one embodiment, the apparatus further includes:

[0379] The maintenance module is used to maintain the cache priority of the target process of the target application at the highest level when the target application is an application in a preset application.

[0380] In one embodiment, the adjustment module is used to:

[0381] Adjust the cache priority of the target processes of each target application based on memory pressure.

[0382] In one embodiment, the adjustment module is used to:

[0383] When the memory pressure exceeds a first pressure threshold, the cache priority of the target process of each target application is reduced.

[0384] In one embodiment, the device further includes a memory optimization module for:

[0385] After caching the target process of the target application, determine whether memory optimization conditions are met; if the memory optimization conditions are met, optimize the memory.

[0386] In one embodiment, the memory optimization module includes at least one of the following:

[0387] The first determining submodule is used to determine that the total memory usage of the target process of the target application determined in this instance and the target process of the target application determined in the previous instance exceeds the first memory usage threshold, and thus satisfies the memory optimization condition.

[0388] The second determining submodule is used to determine whether the memory optimization conditions are met when the target application has not been started within a third preset time period.

[0389] The third determining submodule is used to determine whether the memory optimization conditions are met when the memory occupancy rate is greater than the second occupancy rate threshold.

[0390] The fourth determining submodule is used to determine whether the memory optimization conditions are met when the memory pressure of the memory is greater than the second pressure threshold.

[0391] In one embodiment, the memory optimization module further includes at least one of the following:

[0392] The first optimization submodule is used to terminate the target process of the cached target application;

[0393] The second optimization submodule is used to terminate the pending processes; wherein, the pending processes are the target application determined in this instance and the N applications with the lowest probability among the previously determined target applications; the probability is the probability of being determined as the target application;

[0394] The third optimization submodule is used to reclaim the physical pages corresponding to file pages;

[0395] The fourth optimization submodule is used to perform memory compression on anonymous pages.

[0396] In one embodiment, the third optimization submodule includes at least one of the following:

[0397] The first recycling unit is used to write dirty pages back to external memory and reclaim the physical pages corresponding to the dirty pages;

[0398] The second recycling unit is used to recycle the physical pages corresponding to the file pages other than the dirty pages.

[0399] In one embodiment, the apparatus further includes:

[0400] The fifth optimization submodule is used to swap the memory-compressed anonymous pages to external memory after the memory compression process is performed on the anonymous pages; and to reclaim the physical pages corresponding to the anonymous pages.

[0401] In one embodiment, this technical solution belongs to the field of memory management technology, and for example, it can be applied to embedded products. In mobile application development, cold start refers to the process of an application going from a completely idle state to a fully running state, including steps such as application loading, initialization, and layout rendering. The length of the cold start time directly affects the user experience. Although the operating system provides a series of memory management and caching mechanisms to optimize the application startup speed during the application cold start process, in practical applications, there is still a problem of excessively long cold start times.

[0402] refer to Figure 15 This is a diagram illustrating another example of application startup.

[0403] This solution mainly completes three functions, including predictive model construction, cache pre-judgment, and cache process management.

[0404] 1. Predictive Model Construction: Based on users' historical usage information, a predictive model is constructed by combining deep learning and traditional mathematical and statistical methods, starting from two scenarios: general scenarios and user-strongly correlated scenarios.

[0405] 2. Pre-caching judgment: Combine information such as the actual system state, the application's own state, and the user's preference state to determine whether to trigger caching.

[0406] 3. Cache process management: Monitor the memory usage of cache processes and the available memory of the system, and dynamically adjust the priority of target processes and actively reclaim the memory of target processes while ensuring smooth user experience.

[0407] 1. Prediction Model Construction

[0408] The prediction scenario is divided into two parts: general scenarios and special scenarios. The general scenario algorithm is based on two algorithms: deep learning and Bayesian learning. The deep learning algorithm learns the common characteristics and habits of general users, while the Bayesian algorithm learns the individual characteristics of individual users. Finally, the weighted mixture generates the final prediction algorithm. The special scenario algorithm is based on probability statistics and combines the actual frequency of application launches to construct the individual characteristics of users.

[0409] a. General Scenarios

[0410] Deep learning and Bayesian algorithms preprocess user history data before inference; the output is a list of the top 8 applications sorted by probability. Then, the ranking score of each application is calculated using its position in the application list as weights, generating the final prediction result. The principle can be found in [reference needed]. Figure 4 .

[0411] b. Special Scenarios

[0412] Special scenarios are divided into two user-strongly associated scenarios: peripheral device connection and password copying. The peripheral device connection scenario specifically refers to Bluetooth headsets, while password copying currently only applies to three commonly used applications: Taobao, Douyin, and Kuaishou. The Bluetooth headset connection model predicts the sorted list of applications that might be used after the Bluetooth headset is connected based on application audio focus request records. The password copying model predicts the sorted list of applications that might be used after password copying based on historical application usage records and application password copying records.

[0413] 2. Cache pre-check

[0414] When a cache event occurs, the query algorithm outputs the result and, in conjunction with the set score threshold, prediction interval, actual system status, application status, user preference status, and other information, determines whether caching is necessary.

[0415] a. Actual system state

[0416] This includes two parts: system memory status and available power. When the system memory status is poor or the power is insufficient, the caching process is not followed. The system memory status is determined by the currently used file page data, and the system defaults to low power mode when the available power is less than 20%.

[0417] b. Apply its own state

[0418] First, determine if the application process exists; second, determine if the process itself is abnormal. Application anomaly detection principle: If the same process crashes or experiences two or more ANRs within a consecutive 20-minute period, it is determined that the application itself is abnormal.

[0419] c. User preference status

[0420] Based on UI preference settings, if the application is one that the user expects to cache, it will be cached by default. If it is not an application that the user expects to cache, it will determine whether the application has been actively cleared by the user within the last 2 minutes. If it has been actively cleared, the cache will be skipped.

[0421] 3. Cache process management, refer to Figure 13 .

[0422] a. Dynamically adjust the priority of the caching process

[0423] The most recent cache process priority was set to 500 by default. When the next cache event occurs, the priority is adjusted from 500 to 800, and the next cache process priority is also adjusted back to 500. If the process is in the user preference settings list, it will remain at 500 by default to improve the background persistence of the cache process. When system memory pressure is detected, all process priorities are set to 800 to avoid negative impacts on the system.

[0424] b. Process memory reclamation

[0425] To prevent excessive memory consumption caused by too many caching processes, we proactively limit the memory usage of each caching process. The maximum memory usage value was determined experimentally based on different RAM sizes. The main strategies for memory reclamation are as follows:

[0426] i. If the cached process remains unused after 2 minutes, proactive memory optimization will be performed.

[0427] 1) File Pages: For dirty pages, a memory write-back operation is triggered to write the file data back to Flash, and then the corresponding physical page is reclaimed; for clean file pages, the corresponding physical page is reclaimed directly.

[0428] 2) Anonymous pages: Using memory compression technology, process anonymous pages are compressed into ZRAM.

[0429] 3) Flash swapping: Swaps anonymous pages preloaded with the target process from ZRAM to Flash.

[0430] ii. If the total memory usage of the cached process exceeds the threshold, select the cached app with the lowest probability of being cleared.

[0431] iii. Monitor system memory pressure and, when poor memory status is detected, clear all cached processes.

[0432] The solutions in the above embodiments are as follows: 1. To address the problem of excessive caching due to low cache process prediction hit rate, a deep learning prediction algorithm is introduced in conjunction with user historical usage information to improve the cache hit rate; 2. To address the issue of not considering system status, application status, and user preference status when caching processes, system status detection, application anomaly detection, and user preference detection functions are added to prevent processes from being launched unnecessarily, thereby reducing the impact on the system; 3. To address the issue of repeated killing and launching of cache processes, the priority of target processes is dynamically adjusted based on the actual memory status; 4. To address the issue of high memory consumption of cache processes, the upper limit of process memory consumption is actively limited, and multiple memory reclamation methods such as file page reclamation, anonymous page reclamation, and Flash swapping are used to reduce the memory consumption of cache processes.

[0433] It should be noted that the terms "first" and "second" in the embodiments of this disclosure are for ease of description and distinction only, and have no other specific meaning.

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

[0435] Reference Figure 16The terminal device may include one or more of the following components: processing component 902, memory 904, power component 906, multimedia component 908, audio component 910, input / output (I / O) interface 912, sensor component 914, and communication component 916.

[0436] Processing component 902 typically controls the overall operation of the terminal device, such as operations associated with display, telephone calls, data communication, camera operation, and recording. Processing component 902 may include one or more processors 920 to execute instructions to complete all or part of the steps of the methods described above. Furthermore, processing component 902 may include one or more modules to facilitate interaction between processing component 902 and other components. For example, processing component 902 may include a multimedia module to facilitate interaction between multimedia component 908 and processing component 902.

[0437] Memory 904 is configured to store various types of data to support operation on the terminal device. Examples of this data include instructions for any application or method operating on the terminal device, contact data, phonebook data, messages, pictures, videos, etc. Memory 904 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.

[0438] Power component 906 provides power to various components of the terminal device. Power component 906 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the terminal device.

[0439] Multimedia component 908 includes a screen that provides an output interface between a terminal device and a 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 can 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 can 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 908 includes a front-facing camera and / or a rear-facing camera. When the terminal device is in an operating mode, such as a shooting mode or a video mode, the front-facing camera and / or the rear-facing camera can receive external multimedia data. Each front-facing camera and rear-facing camera can be a fixed optical lens system or have focal length and optical zoom capabilities.

[0440] Audio component 910 is configured to output and / or input audio signals. For example, audio component 910 includes a microphone (MIC) configured to receive external audio signals when the terminal device 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 904 or transmitted via communication component 916. In some embodiments, audio component 910 also includes a speaker for outputting audio signals.

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

[0442] Sensor assembly 914 includes one or more sensors for providing status assessments of various aspects of the terminal device. For example, sensor assembly 914 can detect the on / off state of the terminal device, the relative positioning of components such as the display and keypad of the terminal device, changes in the position of the terminal device or a component of the terminal device, the presence or absence of user contact with the terminal device, the orientation or acceleration / deceleration of the terminal device, and temperature changes of the terminal device. Sensor assembly 914 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact. Sensor assembly 914 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 914 may also include an accelerometer, a gyroscope, a magnetometer, a pressure sensor, or a temperature sensor.

[0443] Communication component 916 is configured to facilitate wired or wireless communication between the terminal device and other devices. The terminal device can access wireless networks based on communication standards, such as Wi-Fi, 4G, or 5G, or combinations thereof. In one exemplary embodiment, communication component 916 receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, communication component 916 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.

[0444] In an exemplary embodiment, the terminal device 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 to perform the methods described above.

[0445] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 904 including executable instructions or a computer program, which can be executed by the processor 920 of the device 900 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.

[0446] A non-transitory computer-readable storage medium, wherein when instructions in the storage medium are executed by a processor of a terminal device, the terminal device is able to perform any of the processing methods described above in the embodiments of this disclosure.

[0447] 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 processing methods described in this disclosure.

[0448] 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 claims.

[0449] 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. A processing method, characterized in that, include: Detect target events; Based on the target event, predict the target application to be launched; If the target process of the target application is determined to be cached, the target process of the target application is cached before the target application is launched.

2. The method according to claim 1, characterized in that, The predicted target application to be launched includes: Obtain historical usage information for each candidate application; wherein, the candidate applications are those currently installed on the device. The target application is predicted based on target information; wherein the target information includes: the historical usage information, or the historical usage information and the target event.

3. The method according to claim 2, characterized in that, The process of obtaining historical usage information for each candidate application includes: Obtain the first historical usage information of the candidate application on the current device; And / or, Obtain second historical usage information of the alternative application in at least one first device; wherein the first device is a device other than the current device.

4. The method according to claim 2, characterized in that, The historical usage information includes at least one of the following: The time point of use; Usage duration; Startup frequency; Number of startups; The calling relationships between the alternative applications; The startup order relationship among the candidate applications; Within a first preset time period after the second device connects to the current device, the number of times the alternative application is launched and / or the number of times the target function is requested; wherein, the target function is used for the output or input of the alternative application after it is launched; Retrieve the historical number of times the first piece of information in the clipboard has been retrieved; The number of times the first information has been copied in history; The different historical usage information have their own weights.

5. The method according to claim 4, characterized in that, The number of startups includes: The number of historical launches after the second information was copied to the clipboard; The second information refers to information associated with the first alternative application within a second alternative application, in addition to the first alternative application.

6. The method according to any one of claims 1 to 5, characterized in that, The target event includes at least one of the following: The current application's launch event; The current application's exit event; The first return event to return to the desktop; The second return event that returns to the backend management interface; Switching events that allow switching between different applications; The connection event between the second device and the current device; wherein, the second device is used to interact with the device where the target application is located through the target application; A copying event for either first information or second information; wherein the second information is information associated with the first alternative application in a second alternative application other than the first alternative application.

7. The method according to claim 2, characterized in that, The step of predicting the target application based on the target information includes: The priority of each candidate application is determined based on the target information; wherein the priority is positively correlated with the probability that the candidate application is the target application. The target application is determined based on the priority.

8. The method according to claim 2, characterized in that, The method further includes: Detect the settings of the candidate applications; The alternative application is determined based on the specified settings.

9. The method according to claim 1, characterized in that, Determining the target process for caching the target application includes: Determine whether the target application meets the caching conditions; When the caching conditions are met, the target process of the target application is cached.

10. The method according to claim 9, characterized in that, Determining whether the target application meets the caching conditions includes: Obtain the current status information of the device where the target application is located, the list of target applications, the prediction interval, and the status information of the target application itself; Based on the current status information, the target application list, the prediction interval, and / or the self-status information, determine whether the caching conditions are met.

11. The method according to claim 10, characterized in that, The current status includes: the current memory usage percentage and / or the current battery level; Determining whether the caching condition is met includes: When the current occupancy rate is less than the preset rate, it is determined that the caching condition is met; And / or, When the current battery level is greater than the battery threshold, it is determined that the cache condition is met.

12. The method according to claim 10, characterized in that, The self-status information includes: whether it is running in the background; Determining whether the caching condition is met includes: If the target application is not running in the background, the caching conditions are determined to be met.

13. The method according to claim 10, characterized in that, Determining whether the caching condition is met includes: Obtain the historical running status of the target application within a preset historical time period; Determine whether the cache conditions are met based on the historical running status.

14. The method according to claim 13, characterized in that, The historical operating status includes at least: whether a crash occurred and / or the response time; Determining whether the caching condition is met includes: If the target application does not crash and / or its response time does not exceed the second preset time period within the preset historical time period, the caching condition is determined to be met.

15. The method according to claim 10, characterized in that, The list of target applications includes selected preset applications; Determining whether the caching condition is met includes: Determine whether the target application is located within the preset application; When the target application is located in the preset application, the caching conditions are determined to be met.

16. The method according to claim 15, characterized in that, The step of determining whether the caching condition is met also includes: When the target application is an application other than the preset applications, determine whether the target application has an exit record of exiting the background within a second preset period; If the exit record does not exist, the cache condition is determined to be met.

17. The method according to claim 10, characterized in that, Determining whether the caching condition is met includes: Determine the prediction interval between the target application predicted in the previous prediction and the target application predicted in the current prediction; When the prediction interval exceeds the preset interval, it is determined that the caching condition is met.

18. The method according to claim 1, characterized in that, The step of caching the target process of the target application before launching the target application includes: Before launching the target application, create the target process of the target application; Load the target data required to launch the target application; The target data is stored in the target process of the target application.

19. The method according to claim 1, characterized in that, After caching the target process, the method further includes: Detect the launch operation of the target application; In response to the startup operation, the target application is launched based on the target process.

20. The method according to claim 1, characterized in that, The method further includes: When caching the target process of the target application determined this time, the cache priority of the target process of the target application determined this time is adjusted to be higher than the cache priority of the target process of the target application determined in the previous time. The cache priority is positively correlated with the probability that the target process resides in the background.

21. The method according to claim 20, characterized in that, The method further includes: When the target application is an application in a preset application, the cache priority of the target process of the target application is always kept at the highest.

22. The method according to claim 20, characterized in that, The method further includes: Adjust the cache priority of the target processes of each target application based on memory pressure.

23. The method according to claim 22, characterized in that, The step of adjusting the cache priority of the target processes of each target application based on memory pressure includes: When the memory pressure exceeds a first pressure threshold, the cache priority of the target process of each target application is reduced.

24. The method according to claim 1, characterized in that, After caching the target process of the target application, the method further includes: Determine if the memory optimization criteria are met; Optimize the memory when the aforementioned memory optimization conditions are met.

25. The method according to claim 24, characterized in that, Determining whether the memory optimization conditions are met includes at least one of the following: The total memory usage of the target process of the target application identified this time, as well as the target process of the target application identified previously, exceeds the first memory usage threshold, thus satisfying the memory optimization condition. If the target application is not launched within the third preset time period, it is determined that the memory optimization conditions are met; When the memory utilization rate is greater than the second utilization rate threshold, it is determined that the memory optimization condition is met; When the memory pressure is greater than the second pressure threshold, the memory optimization condition is determined to be met.

26. The method according to claim 24, characterized in that, The optimization of memory when the memory optimization conditions are met includes at least one of the following: The target process of the target application terminates the cache; End the pending process; wherein, the pending process is the target application determined in this process and the N applications with the lowest probability among the previously determined target applications; the probability is the probability of being determined as the target application; Reclaim the physical pages corresponding to the file pages; Perform memory compression on anonymous pages.

27. The method according to claim 26, characterized in that, The physical page corresponding to the recycled file page includes at least one of the following: Write the dirty pages back to external memory and reclaim the physical pages corresponding to the dirty pages; Reclaim the physical pages corresponding to file pages other than the dirty pages.

28. The method according to claim 26, characterized in that, After performing memory compression on the anonymous page, the method further includes: The anonymous pages, after being compressed in memory, are swapped to external storage. Reclaim the physical page corresponding to the anonymous page.

29. A processing apparatus, characterized in that, include: The detection module is used to detect target events; The prediction module is used to predict the target application to be launched based on the target event. A caching module is used to cache the target process of the target application before launching the target application, if target data is determined to be cached.

30. A terminal device, characterized in that, include: A processor and a memory for storing computer programs or executable instructions capable of running on the processor, wherein: When the processor is used to run the computer program or the executable instructions, the executable instructions perform the method described in any one of claims 1 to 28.

31. A non-transitory computer-readable storage medium, characterized in that, The non-transitory computer-readable storage medium stores a computer program or computer-executable instructions, which, when executed by a processor, implement the method described in any one of claims 1 to 28.

32. A computer program product, comprising a computer program or executable instructions, characterized in that, When the computer program or executable instructions are executed by a processor, they implement the method of any one of claims 1 to 28.