WO2019128586A1 - 应用程序处理方法、电子设备、计算机可读存储介质 - Google Patents

应用程序处理方法、电子设备、计算机可读存储介质 Download PDF

Info

Publication number
WO2019128586A1
WO2019128586A1 PCT/CN2018/117408 CN2018117408W WO2019128586A1 WO 2019128586 A1 WO2019128586 A1 WO 2019128586A1 CN 2018117408 W CN2018117408 W CN 2018117408W WO 2019128586 A1 WO2019128586 A1 WO 2019128586A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
application
processed
priority
electronic device
Prior art date
Application number
PCT/CN2018/117408
Other languages
English (en)
French (fr)
Inventor
方攀
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Publication of WO2019128586A1 publication Critical patent/WO2019128586A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present application relates to the field of computer technologies, and in particular, to an application processing method, an electronic device, and a computer readable storage medium.
  • Smart devices can implement different application operations through applications, such as purchasing products through a shopping application, viewing videos through a video application, and the like.
  • the application can be frozen, and the frozen application can no longer continue to run without taking up processor resources in the smart device. However, since the application still exists in the smart device, it also occupies resources such as memory and hardware in the smart device.
  • an application processing method an electronic device, and a computer readable storage medium are provided.
  • An application processing method including:
  • An electronic device includes a memory and a processor, wherein the memory stores a computer program, and when the computer program is executed by the processor, the processor performs the following operations:
  • a computer readable storage medium having stored thereon a computer program, the computer program being executed by a processor to:
  • the application processing method and apparatus, the electronic device, and the computer readable storage medium acquire the message type and message priority of the message to be processed after detecting the to-be-processed message. Then, according to the message type and message priority of the message to be processed, the target application is obtained from the background application in the frozen state, and the target application is awakened. This will not wake up the pending message every time the pending message is detected, which reduces the power consumption of the electronic device. At the same time, the application is awakened according to the message type and the message priority, so that important messages are not ignored, and the accuracy of the data processing of the device is improved.
  • FIG. 1 is a schematic diagram of an application environment of an application processing method in an embodiment.
  • FIG. 2 is a schematic diagram showing the internal structure of an electronic device in an embodiment.
  • 3 is a flow chart of an application processing method in one embodiment.
  • FIG. 4 is a flow chart of an application processing method in another embodiment.
  • FIG. 5 is a schematic diagram of a resource restriction state of an application in an embodiment.
  • FIG. 6 is a partial structural diagram of an electronic device in an embodiment.
  • FIG. 7 is a schematic structural diagram of an application processing apparatus in an embodiment.
  • FIG. 8 is a schematic structural diagram of an application processing apparatus in another embodiment.
  • FIG. 9 is a block diagram showing a partial structure of a mobile phone related to an electronic device according to an embodiment of the present application.
  • first may be referred to as a second client
  • second client may be referred to as a first client, without departing from the scope of the present application.
  • Both the first client and the second client are clients, but they are not the same client.
  • FIG. 1 is a schematic diagram of an application environment of an application processing method in an embodiment.
  • the application environment includes a client 102 and a server 104.
  • An application can be installed on the client 102 to send messages between applications.
  • the message type and message priority of the to-be-processed message are acquired; the target application is obtained from the background application in the frozen state according to the message type and the message priority; application.
  • the server 104 can be used to push an application processing algorithm to the client 102, and the client 102 processes the application according to the application processing algorithm.
  • the client 102 is an electronic device that is mainly used for inputting user information and outputting processing results at the outermost periphery of the computer network, and may be, for example, a personal computer, a mobile terminal, a personal digital assistant, a wearable electronic device, or the like.
  • the server 104 is a device for providing a computing service in response to a service request, and may be, for example, one or more computers. It can be understood that, in other embodiments provided by the present application, the application environment of the application processing method may only include the client 102.
  • the electronic device includes a processor, memory, and display screen connected by a system bus.
  • the processor is used to provide computing and control capabilities to support the operation of the entire electronic device.
  • the memory is used to store data, programs, and/or instruction codes, etc., and the memory stores at least one computer program, which can be executed by the processor to implement an application processing method suitable for an electronic device provided in the embodiments of the present application.
  • the memory may include a non-volatile storage medium such as a magnetic disk, an optical disk, a read-only memory (ROM), or a random storage memory (Random-Access-Memory, RAM).
  • FIG. 2 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the electronic device to which the solution of the present application is applied.
  • the specific electronic device may be It includes more or fewer components than those shown in the figures, or some components are combined, or have different component arrangements.
  • the electronic device further includes a network interface connected through a system bus, and the network interface may be an Ethernet card or a wireless network card, etc., for communicating with an external electronic device, for example, for communicating with a server.
  • FIG. 3 is a flow chart of an application processing method in one embodiment.
  • the application processing method in this embodiment is described by using the terminal or server running in FIG. 1 as an example.
  • the application processing method includes operations 302 through 306. among them:
  • An application refers to a software written for an application purpose in an electronic device, and the electronic device can implement a service demanded by the user through an application. For example, users can play games through a game-like application, watch videos through a video-like application, and play music through a music-like application.
  • Applications can be divided into foreground applications and background applications based on the state of the run.
  • the foreground application refers to an application running in the foreground of the electronic device, and the foreground application can be displayed and interacted with the user in the foreground.
  • a background application refers to an application that runs in the background of an electronic device. The background application generally cannot display and interact with the user in the foreground.
  • the electronic device can control the switching between the foreground process and the background process, and the foreground process can switch to the background operation, and the background process can also switch to the foreground operation.
  • the process can be managed by the process pool, and the process identifier corresponding to one or more processes can be stored in the process pool.
  • the process ID is used to uniquely identify a process.
  • the process pool may include a foreground process pool and a background process pool.
  • the foreground process pool includes a process identifier corresponding to the foreground process
  • the background process pool includes a process identifier corresponding to the background process.
  • the process ID of process A is “0123”.
  • the process ID “0123” of process A can be removed from the background process pool and added to the foreground process. In the pool.
  • the application needs to continuously send and receive messages between the applications, and processes the messages after receiving the messages.
  • the application in the application layer of the electronic device sends a message, and the application that sends the message in the application layer transmits the message to the kernel layer, and then the kernel layer receives the message, and then sends the message to the application layer for receiving.
  • the application of the message can be divided into synchronous messages and asynchronous messages according to the processing timing of the messages. Synchronization means that after the sender sends the message to the receiver, it must wait until the recipient's response before continuing to send other messages.
  • Asynchronous means that after the sender sends the message to the receiver, the sender can continue to send the next message without waiting for the receiver to respond.
  • the upper application when the upper application sends a message, it can identify the importance of the message through a priority label.
  • the priority tag may indicate the priority of the message, and the kernel layer may identify the importance of the message by intercepting the message.
  • Operation 304 obtaining a target application from a background application that is in a frozen state according to a message type and a message priority.
  • the application can be frozen, and the application in the frozen state is not closed, but it is not running temporarily.
  • An application that is frozen does not consume processor resources to run, but still consumes resources such as memory and hardware of the electronic device.
  • the resource priority and restriction management module in the local framework layer of the electronic device can mark the state of the application, and by reading the status flag of the application, it can be known whether the application is frozen.
  • the frozen application can be woken up. When the application is woken up, the resource priority and restriction management module will change the application's status flag accordingly, so that the application freeze state can be controlled by the corresponding status flag.
  • the electronic device After detecting the to-be-processed message, the electronic device generally wakes up the application immediately, and processes the processed message at the same time, and freezes the application after the processing of the to-be-processed message is completed.
  • the electronic device After detecting the to-be-processed message, whether to wake up the background application in the frozen state is determined according to the type and priority of the message to be processed.
  • the target application can be obtained from the background application in the frozen state according to the message type of the message to be processed and the message priority.
  • the target application is a background application that needs to wake up from a frozen state.
  • the synchronization message is generally regarded as a relatively important message.
  • the background application for processing the to-be-processed message is acquired as a target application, and the target application is awakened.
  • Operation 306 waking up the target application.
  • the target application can run in the electronic device, and the message to be processed is processed during the run. After the target application processes the pending message, it can immediately return to the frozen state, or wait for a period of time, and if it does not receive the pending message, it returns to the frozen state.
  • the application processing method provided in the foregoing embodiment acquires the message type and message priority of the to-be-processed message after detecting the to-be-processed message. Then, according to the message type and message priority of the message to be processed, the target application is obtained from the background application in the frozen state, and the target application is awakened. In this way, the pending message will not be woken every time the pending message is detected, which reduces the power consumption of the electronic device. At the same time, the application is awakened according to the message type and the message priority, so that important messages are not ignored, and the accuracy of the data processing of the device is improved.
  • FIG. 4 is a flow chart of an application processing method in another embodiment.
  • the application processing method in this embodiment is described by using the terminal or server running in FIG. 1 as an example.
  • the application processing method includes operations 402 through 412. among them:
  • Operation 402 monitors a communication interface in the electronic device.
  • the communication interface refers to an interface for transmitting a message to be processed, and may include, but is not limited to, a Binder communication interface and a Socket communication interface.
  • Binder communication is an efficient IPC (Inter-Process Communication) mechanism implemented in the Android system. It is a client-server (client-server) communication structure. The client and the server define a corresponding proxy interface. When the client invokes the method in the proxy interface, the proxy interface method packages the client parameters into a Parcel object, and then the proxy interface sends the Parcel object to the Binder in the kernel layer. drive. The server can read the request data in the Binder driver, then parse and process the Parcel object, and return the processing result.
  • IPC Inter-Process Communication
  • Socket communication allows communication between two network applications to enable data exchange between applications on the network.
  • local inter-process communication can uniquely identify a process through PID (Process Identity), but there is no way to achieve communication between network processes.
  • IP Internet Protocol
  • the IP + port can uniquely identify the process in the host. Therefore, the Socket communication usually passes the IP address. Address + Protocol + Port" form uniquely identifies a process.
  • Operation 404 if a message to be processed is detected in the communication interface, obtain a message type and a message priority of the message to be processed.
  • the electronic device monitors each communication interface in real time. If a message to be processed is received in the communication interface, the message type and message priority of the to-be-processed message are obtained. Specifically, the message can be divided into a synchronous message and an asynchronous message, and the application can set the message type of the message when creating the message, and then mark the type of the message by using the type tag. For example, in the Android system, the message defaults to a synchronous message, and the message can be set to an asynchronous message by calling the message's setAsynchronous() method to add an asynchronous tag to the message. Then through the message's isAsynchronous () method can determine whether the current Message is an asynchronous message.
  • the application when the application sends a message, the application may add a priority label to the message, and the priority label identifies the priority of the message.
  • the message priority may indicate the importance level of the message, and the application layer of the electronic device sets the priority of the message through the priority label when sending the message.
  • the kernel layer detects the message, it can use the priority label to determine the priority of the message. For example, synchronization messages in electronic devices are generally more important, and synchronization messages are generally set to a higher priority.
  • the target application is obtained from the background application in the frozen state according to the message priority.
  • the asynchronous message may refer to an asynchronous broadcast message.
  • the application sends the asynchronous broadcast message, the application does not specify the receiver that receives the asynchronous broadcast message, and does not care how the receiver processes the asynchronous broadcast message, but is only responsible for The asynchronous broadcast message is sent out. Only an application that has registered a broadcast receiver (BroadcastReceiver) can receive the asynchronous broadcast message, and an application that is not registered with the broadcast receiver cannot receive the asynchronous broadcast message.
  • the kernel layer intercepts the pending message through the communication interface, it can determine the message type of the message to be processed. If the pending message is an asynchronous broadcast message type, the target application can be obtained according to the message priority of the message to be processed.
  • the background application in the frozen state is woken up; if the pending message is a lower priority asynchronous broadcast message, the background application is not required to wake up. Reduce the power consumption of electronic devices.
  • the background application in the frozen state is acquired as the target application.
  • the pending message is a more important message. Since the asynchronous broadcast message does not specify the corresponding message recipient after being sent, it is necessary to use the background application in the frozen state as the target application, and wake up the target application to receive and process the pending message. It can be understood that only the application that registers the broadcast receiver can receive the asynchronous broadcast message, so when waking up the background application, it is not necessary to wake up all the frozen background applications, and only the broadcast receiver can be registered. The background app wakes up. You can get a background application that is in a frozen state and has registered a broadcast receiver as the target application.
  • the message priority may not be processed temporarily, and the background application in the frozen state is awakened and then passed.
  • the awakened background application processes the pending message. This reduces the number of times the application is woken up and reduces the power consumption of the electronic device.
  • the to-be-processed message is used as the to-be-stated message; when it is detected that the background application is awakened, the to-be-stated message is processed.
  • the number of messages to be counted when it is detected that the background application is awakened, the number of messages to be counted may be counted. If the number of messages to be counted is small, the statistical message may not be processed temporarily. When the number of messages to be counted is greater than a certain value, the messages to be counted are processed uniformly. Then, when it is detected that the background application is awakened, the number of messages to be counted in the electronic device is counted; if the number of messages is greater than the number threshold, the to-be-stated message is processed. This can reduce the number of messages processed by the electronic device and reduce the power consumption of the electronic device. In addition, specifically, when detecting that the background application of the registered broadcast receiver is awakened, the number of messages to be counted in the electronic device is counted, and the message is to be processed according to the number of messages.
  • the asynchronous broadcast message may be classified into an ordered asynchronous broadcast message and a non-ordered asynchronous broadcast message according to the receiving rule, and the ordered asynchronous broadcast message receives and processes the message in order according to the priority of the application after being sent.
  • the application does not receive messages in a fixed order of reception after being sent. Therefore, the ordered asynchronous broadcast message can be set to a higher message priority, that is, the message priority of the ordered broadcast message is higher than the priority threshold.
  • a non-ordered asynchronous broadcast message can be set to a lower message priority, that is, the message priority of the non-ordered asynchronous broadcast message is lower than the priority threshold.
  • the message to be processed may include, but is not limited to, information including a message sender identifier, a message receiver identifier, a message content, and the like.
  • the message sender identifier refers to the unique identifier of the application that sends the to-be-processed message
  • the message receiver identifier refers to the unique identifier of the application that receives the to-be-processed message, that is, the unique identifier of the application that processes the to-be-processed message.
  • the kernel layer can acquire the target application for processing the to-be-processed message according to the message receiver identifier in the to-be-processed message.
  • Operation 410 waking up the target application.
  • the electronic device can record the frozen state of each application through the freeze list.
  • the frozen list includes application identifiers for several frozen applications, each of which is used to uniquely identify an application.
  • the electronic device removes the application identification of the awake application from the freeze list.
  • the electronic device adds the application ID of the frozen application to the freeze list.
  • the awakened target application gets the pending message from the message queue and processes the message to be processed.
  • the Android system there are various ways to implement application freezing and wake-up.
  • the pm (package manager) command In the pm command, the application can be set to a frozen state by the freeze command pm disable[–user USER_ID]PACKAGE_OR_COMPONENT, and then passed.
  • the defrosting command pm enable[–user USER_ID]PACKAGE_OR_COMPONENT wakes up the application in the frozen state, and obtains the list of applications in the frozen state by freezing the list query command pm list packages–d to view the frozen application.
  • the application processing method is described by taking the Android operating system as an example in the present application, but the application processing method of the present application is not limited to being implemented in the Android system, and can also be applied to the IOS (IPhone Operating System), In operating systems such as Symbian, Windows, and MAC OS (Macintosh Operating System).
  • IOS IPhone Operating System
  • MAC OS Macintosh Operating System
  • the timing may be started from the moment when the target application is awakened; if the timing duration exceeds the duration threshold, or the processing of the pending message is detected to be completed, the target application is frozen. In this way, when it is detected that the processing of the pending message is completed, the target application can be frozen to prevent the target application from continuing to consume device resources.
  • the duration of the wake-up of the target application can be timed, and if the time duration exceeds the duration threshold, the target application is frozen.
  • the electronic device can establish a timer for each target application, pre-establish the correspondence between the target application identifier of the target application and the timing identifier of the timer, and find and start the timer by using the timing identifier corresponding to the target application identifier.
  • the system can predefine a timer.
  • the target application identifier searches for a corresponding timer, and the timer is cleared by timer.setBase(SystemClock.elapsedRealtime()). Then start the timer with the timer.start() function and start timing.
  • the total resource occupancy rate of the electronic device is obtained, and the target application is controlled to enter the resource limitation state according to the total resource occupancy rate.
  • the resource usage rate of the electronic device in the resource-restricted state is less than the occupancy threshold.
  • a resource is a software or hardware resource that an electronic device must use to process an application event, such as a CPU (Central Processing Unit), memory, hardware, network resources, and IO (Input-Output). , input and output) and so on.
  • the total resource occupancy rate refers to the proportion of resources occupied by electronic devices. Generally, it refers to the ratio of occupied resources to all resources, which can be expressed in percentage. For example, if the total memory of the device is 128 GB and the occupied memory is 56 GB, the total resource occupancy of the device can be expressed as the memory usage, and the obtained memory usage is 43.75%.
  • the electronic device may store a monitoring log file in a preset storage address, and according to the monitoring log file, the total CPU usage may be obtained.
  • the preset storage address also stores a plurality of subfolders, and each of the process log files is stored in the subfolders.
  • the process log file records the changes of the running status of the process from the start to the current time. According to the process log files, you can obtain the CPU usage of the process. Add the CPU usage of all the processes included in the application to get the CPU usage of the application.
  • a monitoring log file storing the total CPU usage information can be read in the /proc directory.
  • the /proc directory also contains multiple subfolders, which store the process log files of the CPU usage information corresponding to each process.
  • the file name of the monitoring log file stored in the /proc directory is "stat".
  • the process log file is stored in the subfolder in the /proc directory.
  • the file name of the process log file is "stat”.
  • the stat file in the /proc directory records the total CPU usage information.
  • the stat file in the subfolder under the /proc directory records the CPU usage information of each process.
  • the stat file in the /proc/pid directory records the CPU usage information of the PID process.
  • the electronic device can also count the usage of resources such as memory, hardware, network resources, and IO in real time.
  • resources such as memory, hardware, network resources, and IO
  • the information of the mobile phone can be obtained by reading the file "/proc/meminfo", and the ActivityManager.getMemoryInfo (ActivityManager)
  • the .MemoryInfo method can get the current amount of available memory, and then calculate the current total memory usage by the amount of available memory and the total amount of memory.
  • the awakened target application can run normally.
  • the target application that is awake can be controlled to enter a Resource limit status.
  • the total resource occupancy rate of the electronic device is obtained, and the target application that is awakened is controlled to enter the resource limitation state according to the total resource occupancy rate.
  • the total resource occupancy rate can be compared with the total occupancy threshold. If the total resource occupancy rate exceeds the total occupancy threshold, the available resources of the electronic device are considered to be less, and the awakened target application can be controlled to enter the resource limitation state. .
  • the resource occupancy rate during the running process cannot exceed the occupancy threshold, so that the target application can use the electronic device resources to save resources of the electronic device.
  • the total occupancy threshold is greater than the occupancy threshold. For example, when the total CPU usage exceeds 50%, the CPU usage of the target application that controls the wakeup cannot exceed 5% at runtime to reduce the excessive consumption of the CPU by the awake target application.
  • cgroups control groups can be used to control the CPU, memory, IO and other resource occupancy rates of the awake target application, that is, to control the awake target application to enter the resource restriction state.
  • the occupation of the resource may be controlled according to the application priority of the target application, the correspondence between the application priority of the application and the resource restriction level is established in advance, and then the access resource restriction is controlled according to the application priority of the target application.
  • the application priority of the target application refers to the importance of the target application and can be set in advance. For example, you can set a system-level application to a higher application priority and a third-party application to a lower application priority. Or the application priority of the application can be set according to the type of the application, the application of the instant messaging type is set to a higher application priority, and the application of the utility class is set to a lower application priority.
  • the application priority of the application can also be set according to other standards, and is not specifically limited herein.
  • the resource limit level is the degree to which resources used by the application are restricted. Obtain an application priority corresponding to the target application, obtain a corresponding resource restriction level according to the application priority, and control the awakened target application to enter a resource restriction state corresponding to the resource restriction level.
  • a target application at the system level can be set to a light resource limit
  • a third-party target application can be set to a deep resource limit.
  • different applications may depend on different resources, and the resource restriction type of the application can be controlled according to the resource type on which the application depends. For example, some local applications may use less network resources, while some applications that require network communication use more network resources, which can limit network resources to applications that use more network resources.
  • acquiring resource occupation history data of the awakened target application acquiring a dependent resource type corresponding to the target application according to the resource occupation history data, and controlling the awakened target application to enter the resource limitation according to the dependent resource type and the resource restriction level; status.
  • the resource occupation history data refers to the data occupied by the application history, and the resource type depends on the type of the resource that the application depends on when it runs.
  • a correspondence between a total resource occupancy rate and a resource restriction level may also be established.
  • the resource restriction level is obtained according to the total resource occupancy rate, and then the target application that is awake is controlled to enter the resource restriction state corresponding to the resource restriction level.
  • the total occupancy threshold is 50%
  • the total resource occupancy rate is divided into three occupancy levels: 50% to 60%, 60% to 80%, and 80% to 100%.
  • the corresponding resource limit level can be obtained according to the total resource occupancy rate, and the different resource limit levels corresponding to the occupancy rate thresholds are different.
  • the resource restriction level can also be obtained by combining the total resource occupancy rate and the application priority of the target application that is awakened, which is not limited herein.
  • FIG. 5 is a schematic diagram of a resource restriction state of an application in an embodiment.
  • the resources of the electronic device include a CPU, a memory, an IO, a network resource, and the like, and the state of the application may be classified into a normal running state, a resource limiting state, and a frozen state.
  • the resource restriction state may be further divided into a light resource restriction state, a normal resource restriction state, and a deep resource restriction state.
  • the corresponding available resource 502 and the unavailable resource 504 are different. From the light resource limit state, the normal resource limit state to the deep resource limit state, the available resource 502 is decremented. In normal operation, the application's available resource 502 is 100%.
  • the application processing method provided in the foregoing embodiment acquires the message type and message priority of the to-be-processed message after detecting the to-be-processed message. Then, according to the message type and message priority of the message to be processed, the target application is obtained from the background application in the frozen state, and the target application is awakened. And controlling the awakened target application to enter the resource restriction state according to the total resource occupancy rate of the electronic device. In this way, the pending message will not be woken every time the pending message is detected, which reduces the power consumption of the electronic device.
  • the target application that wakes up is controlled to enter the resource restriction state, thereby preventing the target application from excessively consuming the resources of the electronic device and reducing the power consumption of the electronic device.
  • Wake up the application based on the message type and message priority to ensure that important messages are not ignored, improving the accuracy of the device for data processing.
  • FIGS. 3 and 4 are sequentially displayed as indicated by the arrows, these operations are not necessarily performed in the order indicated by the arrows. Except as explicitly stated herein, the execution of these operations is not strictly limited, and the operations may be performed in other sequences. Moreover, at least some of the operations in FIGS. 3 and 4 may include multiple sub-operations or multiple stages, which are not necessarily performed at the same time, but may be performed at different times, or The order of execution of the stages is also not necessarily sequential, but may be performed alternately or alternately with at least a portion of the sub-operations or stages of other operations or other operations.
  • the architecture system of the electronic device includes a JAVA space layer 61, a local frame layer 62, and a Kernel space layer 63.
  • the JAVA spatial layer 61 can include a policy application 610 through which the electronic device can initiate a freeze and thaw strategy for each application, thereby implementing freezing and thawing operations for each application in the electronic device.
  • the policy application 610 determines the background power consumption application and initiates a freeze operation on the background power consumption application.
  • the local framework layer 62 includes a resource priority and restriction management module 620 and a platform freeze management module 622.
  • the electronic device can maintain the priority of the application and the corresponding resource group in real time through the resource priority and restriction management module 620, and adjust the priority and the resource group of the application according to the requirements of the upper layer, thereby achieving optimized performance and saving power consumption. effect.
  • the electronic device can allocate the tasks that can be frozen in the background to the frozen layer corresponding to the preset level by the platform freeze management module 622.
  • the frozen layer can include: the CPU limits the sleep mode, and the CPU Freeze sleep mode, process deep freeze mode.
  • the kernel space layer 63 includes a UID management module 630, a Cgroup module 632, a timeout freeze exit module 634, a Binder management module 636, and a process memory recovery module 638.
  • the UID management module 630 can manage resources of the third-party application or freeze based on the User Identifier (UID) of the application. Compared with the Process Identifier (PID) for process management and control, it is easier to uniformly manage the resources of a user's application through UID.
  • the Cgroup module 632 is used to provide a complete set of Central Processing Unit (CPU), CPUSET, memory, input/output (I/O), and Net related resource restriction mechanisms.
  • the timeout freeze exit module 634 is configured to resolve an exception generated by the freeze timeout scenario.
  • the Binder management module 636 is used to implement the priority control of the background binder communication.
  • the process memory recovery module 638 is configured to implement a deep freeze mode of the process.
  • the file area of the process can be released, thereby saving the memory module and speeding up the application at the next startup. speed.
  • FIG. 7 is a schematic structural diagram of an application processing apparatus in an embodiment.
  • the application processing apparatus 700 includes a message acquisition module 702, an application acquisition module 704, and an application processing module 706. among them:
  • the message obtaining module 702 is configured to acquire a message type and a message priority of the to-be-processed message if the to-be-processed message is detected in the electronic device.
  • the application obtaining module 704 is configured to obtain the target application from the background application in the frozen state according to the message type and the message priority.
  • the application processing module 706 is configured to wake up the target application.
  • the application processing apparatus acquires the message type and message priority of the to-be-processed message after detecting the to-be-processed message. Then, according to the message type and message priority of the message to be processed, the target application is obtained from the background application in the frozen state, and the target application is awakened. In this way, the pending message will not be woken every time the pending message is detected, which reduces the power consumption of the electronic device. At the same time, the application is awakened according to the message type and the message priority, so that important messages are not ignored, and the accuracy of the data processing of the device is improved.
  • FIG. 8 is a schematic structural diagram of an application processing apparatus in another embodiment.
  • the application processing apparatus 800 includes a message acquisition module 802, an application acquisition module 804, an application processing module 806, and a resource restriction module 808. among them:
  • the message obtaining module 802 is configured to acquire a message type and a message priority of the to-be-processed message if the to-be-processed message is detected in the electronic device.
  • the application obtaining module 804 is configured to obtain the target application from the background application in the frozen state according to the message type and the message priority.
  • the application processing module 806 is configured to wake up the target application.
  • the resource restriction module 808 is configured to acquire a total resource occupancy rate of the electronic device, and control the awakened target application to enter a resource limitation state according to the total resource occupancy rate, where the application in the resource restriction state is running.
  • the resource occupancy rate of the electronic device is less than the occupancy threshold.
  • the application processing apparatus acquires the message type and message priority of the to-be-processed message after detecting the to-be-processed message. Then, according to the message type and message priority of the message to be processed, the target application is obtained from the background application in the frozen state, and the target application is awakened. The target application that is awake is controlled to enter the resource restriction state according to the total resource occupancy rate of the electronic device. In this way, the pending message will not be woken every time the pending message is detected, which reduces the power consumption of the electronic device.
  • the target application that wakes up is controlled to enter the resource restriction state, thereby preventing the target application from excessively consuming the resources of the electronic device and reducing the power consumption of the electronic device.
  • Wake up the application based on the message type and message priority to ensure that important messages are not ignored, improving the accuracy of the device for data processing.
  • the message obtaining module 802 is further configured to monitor a communication interface in the electronic device; if a message to be processed is detected in the communication interface, acquire a message type and a message priority of the to-be-processed message.
  • the application obtaining module 804 is further configured to: if the to-be-processed message is an asynchronous broadcast message type, obtain a target application from a background application that is in a frozen state according to the message priority;
  • the processing message is a synchronous message type, and the target application for processing the to-be-processed message is obtained from the background application in the frozen state.
  • the application obtaining module 804 is further configured to: acquire the background application in a frozen state as the target application if the message priority is greater than the priority threshold.
  • the application obtaining module 804 is further configured to: if the message priority is less than or equal to the priority threshold, use the to-be-processed message as a to-be-stated message; when detecting that the background application is awakened, The statistical message is processed for processing.
  • the application obtaining module 804 is further configured to: when detecting that the background application is awakened, counting the number of messages of the to-be-statisticized message in the electronic device; if the number of messages is greater than a quantity threshold, The statistical message is processed for processing.
  • each module in the above application processing device is for illustrative purposes only. In other embodiments, the application processing device may be divided into different modules as needed to complete all or part of the functions of the application processing device.
  • each module in the application processing apparatus may be in the form of a computer program.
  • the computer program can run on a terminal or server.
  • the program modules of the computer program can be stored on the memory of the terminal or server.
  • the operation of the method described in the embodiments of the present application is implemented when the computer program is executed by the processor.
  • the embodiment of the present application also provides a computer readable storage medium.
  • One or more non-transitory computer readable storage media containing computer executable instructions that, when executed by one or more processors, cause the processor to execute the applications provided by the above embodiments Approach.
  • a computer program product comprising instructions which, when run on a computer, cause the computer to perform the application processing method provided by the above embodiments.
  • FIG. 9 is a block diagram showing a partial structure of a mobile phone related to an electronic device according to an embodiment of the present application.
  • the mobile phone includes: a radio frequency (RF) circuit 910, a memory 920, an input unit 930, a display unit 940, a sensor 950, an audio circuit 960, a wireless fidelity (WiFi) module 970, and a processor 980.
  • RF radio frequency
  • the structure of the handset shown in FIG. 9 does not constitute a limitation to the handset, and may include more or less components than those illustrated, or some components may be combined, or different component arrangements.
  • the RF circuit 910 can be used for receiving and transmitting signals during the transmission or reception of information or during the call.
  • the downlink information of the base station can be received and processed by the processor 980.
  • the uplink data can also be sent to the base station.
  • RF circuits include, but are not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a Low Noise Amplifier (LNA), a duplexer, and the like.
  • LNA Low Noise Amplifier
  • RF circuitry 910 can also communicate with the network and other devices via wireless communication.
  • the above wireless communication may use any communication standard or protocol, including but not limited to Global System of Mobile communication (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (Code Division). Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long Term Evolution (LTE), e-mail, Short Messaging Service (SMS), and the like.
  • GSM Global System of Mobile communication
  • GPRS General Pack
  • the memory 920 can be used to store software programs and modules, and the processor 980 executes various functional applications and data processing of the mobile phone by running software programs and modules stored in the memory 920.
  • the memory 920 may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function (such as an application of a sound playing function, an application of an image playing function, etc.);
  • the data storage area can store data (such as audio data, address book, etc.) created according to the use of the mobile phone.
  • memory 920 can include high speed random access memory, and can also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device.
  • the input unit 930 can be configured to receive input numeric or character information and to generate key signal inputs related to user settings and function control of the handset 900.
  • the input unit 930 may include a touch panel 931 and other input devices 932.
  • the touch panel 931 also referred to as a touch screen, can collect touch operations on or near the user (such as the user using a finger, a stylus, or the like on the touch panel 931 or near the touch panel 931. Operation) and drive the corresponding connection device according to a preset program.
  • the touch panel 931 can include two portions of a touch detection device and a touch controller.
  • the touch detection device detects the touch orientation of the user, and detects a signal brought by the touch operation, and transmits the signal to the touch controller; the touch controller receives the touch information from the touch detection device, converts the touch information into contact coordinates, and sends the touch information.
  • the processor 980 is provided and can receive commands from the processor 980 and execute them.
  • the touch panel 931 can be implemented in various types such as resistive, capacitive, infrared, and surface acoustic waves.
  • the input unit 930 may also include other input devices 932.
  • other input devices 932 may include, but are not limited to, one or more of a physical keyboard, function keys (such as volume control buttons, switch buttons, etc.).
  • the display unit 940 can be used to display information input by the user or information provided to the user as well as various menus of the mobile phone.
  • the display unit 940 can include a display panel 941.
  • the display panel 941 may be configured in the form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), or the like.
  • the touch panel 931 can cover the display panel 941. When the touch panel 931 detects a touch operation on or near it, the touch panel 931 transmits to the processor 980 to determine the type of the touch event, and then the processor 980 is The type of touch event provides a corresponding visual output on display panel 941.
  • touch panel 931 and the display panel 941 are used as two independent components to implement the input and input functions of the mobile phone in FIG. 9, in some embodiments, the touch panel 931 and the display panel 941 may be integrated. Realize the input and output functions of the phone.
  • the handset 900 can also include at least one type of sensor 950, such as a light sensor, motion sensor, and other sensors.
  • the light sensor may include an ambient light sensor and a proximity sensor, wherein the ambient light sensor may adjust the brightness of the display panel 941 according to the brightness of the ambient light, and the proximity sensor may close the display panel 941 and/or when the mobile phone moves to the ear. Or backlight.
  • the motion sensor may include an acceleration sensor, and the acceleration sensor can detect the magnitude of the acceleration in each direction, and the magnitude and direction of the gravity can be detected at rest, and can be used to identify the gesture of the mobile phone (such as horizontal and vertical screen switching), and vibration recognition related functions (such as Pedometer, tapping, etc.; in addition, the phone can also be equipped with gyroscopes, barometers, hygrometers, thermometers, infrared sensors and other sensors.
  • the acceleration sensor can detect the magnitude of the acceleration in each direction, and the magnitude and direction of the gravity can be detected at rest, and can be used to identify the gesture of the mobile phone (such as horizontal and vertical screen switching), and vibration recognition related functions (such as Pedometer, tapping, etc.; in addition, the phone can also be equipped with gyroscopes, barometers, hygrometers, thermometers, infrared sensors and other sensors.
  • Audio circuitry 960, speaker 961, and microphone 962 can provide an audio interface between the user and the handset.
  • the audio circuit 960 can transmit the converted electrical data of the received audio data to the speaker 961, and convert it into a sound signal output by the speaker 961.
  • the microphone 962 converts the collected sound signal into an electrical signal, and the audio circuit 960 After receiving, it is converted into audio data, and after being processed by the audio data output processor 980, it can be sent to another mobile phone via the RF circuit 910, or the audio data can be output to the memory 920 for subsequent processing.
  • WiFi is a short-range wireless transmission technology
  • the mobile phone can help users to send and receive emails, browse web pages, and access streaming media through the WiFi module 970, which provides users with wireless broadband Internet access.
  • FIG. 9 shows the WiFi module 970, it can be understood that it does not belong to the essential configuration of the mobile phone 900 and can be omitted as needed.
  • the processor 980 is the control center of the handset, which connects various portions of the entire handset using various interfaces and lines, by executing or executing software programs and/or modules stored in the memory 920, and invoking data stored in the memory 920, executing The phone's various functions and processing data, so that the overall monitoring of the phone.
  • processor 980 can include one or more processing units.
  • the processor 980 can integrate an application processor and a modem processor, wherein the application processor primarily processes an operating system, a user interface, an application, and the like; the modem processor primarily processes wireless communications. It will be appreciated that the above described modem processor may also not be integrated into the processor 980.
  • the mobile phone 900 also includes a power source 990 (such as a battery) that supplies power to various components.
  • a power source 990 such as a battery
  • the power source can be logically coupled to the processor 980 through a power management system to manage functions such as charging, discharging, and power management through the power management system.
  • the handset 900 can also include a camera, a Bluetooth module, and the like.
  • the processor 980 included in the electronic device implements the operation of the application processing method provided by the foregoing embodiment when executing the computer program stored in the memory.
  • Non-volatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory can include random access memory (RAM), which acts as an external cache.
  • RAM is available in a variety of forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronization.
  • SRAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDR SDRAM dual data rate SDRAM
  • ESDRAM enhanced SDRAM
  • synchronization Link (Synchlink) DRAM (SLDRAM), Memory Bus (Rambus) Direct RAM (RDRAM), Direct Memory Bus Dynamic RAM (DRDRAM), and Memory Bus Dynamic RAM (RDRAM).

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephone Function (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种应用程序处理方法包括:若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;唤醒所述目标应用程序。

Description

应用程序处理方法、电子设备、计算机可读存储介质
相关申请的交叉引用
本申请要求于2017年12月29日提交中国专利局、申请号为201711489057.2、发明名称为“应用程序处理方法和装置、电子设备、计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序处理方法、电子设备、计算机可读存储介质。
背景技术
智能设备可以通过应用程序实现不同的应用操作,比如可以通过购物类应用程序购买商品、通过视频类应用程序查看视频等。应用程序可以被冻结,冻结后的应用程序无法再继续运行,不会占用智能设备中处理器资源。但是由于应用程序还是存在与智能设备中的,因此还会占用智能设备中的内存、硬件等资源。
发明内容
根据本申请的各种实施例,提供一种应用程序处理方法、电子设备、计算机可读存储介质。
一种应用程序处理方法,包括:
若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;
唤醒所述目标应用程序。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下操作:
若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;
唤醒所述目标应用程序。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下操作:
若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;
唤醒所述目标应用程序。
上述应用程序处理方法和装置、电子设备、计算机可读存储介质,在检测到待处理消息之后,会获取待处理消息的消息类型和消息优先级。然后根据待处理消息的消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序,并将目标应用程序唤醒。这样不会在每次检测到待处理消息时,都将待处理消息进行唤醒,降低了电子设备的 功耗。同时根据消息类型和消息优先级来唤醒应用程序,可以保证重要的消息不被忽略,提高了设备对数据处理的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中应用程序处理方法的应用环境示意图。
图2为一个实施例中电子设备的内部结构示意图。
图3为一个实施例中应用程序处理方法的流程图。
图4为另一个实施例中应用程序处理方法的流程图。
图5为一个实施例中应用程序的资源限制状态的示意图。
图6为一个实施例中电子设备的部分架构图。
图7为一个实施例中应用程序处理装置的结构示意图。
图8为另一个实施例中应用程序处理装置的结构示意图。
图9为与本申请实施例提供的电子设备相关的手机的部分结构的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
图1为一个实施例中应用程序处理方法的应用环境示意图。如图1所示,该应用环境包括客户端102和服务器104。客户端102上可以安装应用程序,应用程序之间发送消息。当在客户端102中检测到待处理消息时,则获取待处理消息的消息类型和消息优先级;根据消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;唤醒目标应用程序。服务器104可以用于向客户端102推送应用程序处理算法,客户端102根据该应用程序处理算法对应用程序进行处理。其中,客户端102为处于计算机网络最外围,主要用于输入用户信息以及输出处理结果的电子设备,例如可以是个人电脑、移动终端、个人数字助理、可穿戴电子设备等。服务器104是用于响应服务请求,同时提供计算服务的设备,例如可以是一台或者多台计算机。可以理解的是,本申请提供的其他实施例中,应用程序处理方法的应用环境可以只包含客户端102。
如图2所示,提供了一种电子设备的内部结构示意图。该电子设备包括通过系统总线连接的处理器、存储器和显示屏。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器用于存储数据、程序、和/或指令代码等,存储器上存储至少一个计算机程序,该计算机程序可被处理器执行,以实现本申请实施例中提供的适用于电子设备的应用程序处理方法。存储器可包括磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random-Access-Memory,RAM)等。例如,在一个实施例中,存储器包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现本申请各个实施例所 提供的一种应用程序处理方法。内存储器为非易失性存储介质中的操作系统和计算机程序提供高速缓存的运行环境。显示屏可以是触摸屏,比如为电容屏或电子屏,用于显示前台进程对应的应用的界面信息,还可以被用于检测作用于该显示屏的触摸操作,生成相应的指令,比如进行前后台应用的切换指令等。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如该电子设备还包括通过系统总线连接的网络接口,网络接口可以是以太网卡或无线网卡等,用于与外部的电子设备进行通信,比如可用于同服务器进行通信。
图3为一个实施例中应用程序处理方法的流程图。本实施例中的应用程序处理方法,以运行于图1中的终端或服务器上为例进行描述。如图3所示,该应用程序处理方法包括操作302至操作306。其中:
操作302,若在电子设备中检测到待处理消息,则获取待处理消息的消息类型和消息优先级。
应用程序(Application,APP)是指电子设备中针对某种应用目的所撰写的软体,电子设备可以通过应用程序实现对用户的需求服务。例如,用户可以通过游戏类应用程序玩游戏,也可以通过视频类应用程序看视频,还可以通过音乐类应用程序播放音乐等。应用程序可以根据运行的状态分为前台应用程序和后台应用程序。前台应用程序是指在电子设备的前台运行的应用程序,前台应用程序可以在与在前台显示并与用户实现交互。后台应用程序是指在电子设备的后台运行的应用程序,后台应用程序一般不能在前台显示并与用户实现交互过程。
一般地,应用程序的应用操作是由一个或多个进程(process)来共同完成,进程是是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。同时,一个进程可以对应一个或多个线程,线程是程序中一个单一的顺序控制流程,是进程内一个相对独立的、可调度的执行单元。进程可包括前台进程和后台进程,前台进程即为在电子设备前台运行的进程,后台进程即为在电子设备后台运行的进程。电子设备可以控制前台进程和后台进程的切换,前台进程可切换到后台运行,后台进程也可以切换到前台运行。具体地,可以通过进程池来实现对进程的管理,进程池中可以存放一个或多个进程对应的进程标识。进程标识用于唯一标示一个进程。进程池可以包括前台进程池和后台进程池,前台进程池中包括前台进程对应的进程标识,后台进程池中包括后台进程对应的进程标识。当检测到前台进程和后台进程的运行状态发生改变时,进程池会相应地添加或删除产生变化的进程标识。例如,进程A的进程标识为“0123”,当检测到进程A由后台进程变成前台进程时,可将该进程A的进程标识“0123”从后台进程池中移除,并添加到前台进程池中。
电子设备中的应用程序在运行过程中,应用程序之间需要不断地发送和接收消息,接收到消息之后对消息进行处理。具体地,电子设备的应用层中的应用程序之间发送消息,应用层中发送消息的应用程序会将消息传向内核层,然后内核层接收到消息之后,再将消息发送给应用层中接收消息的应用程序。根据消息的处理时序可以将消息分为同步消息和异步消息。同步是指发送方将消息发送到接收方后,必须等到接收方的回应之后,才会再继续发送其他消息。异步是指发送方将消息发送到接收方之后,不必等到接收方回应,就可以继续发送下一条消息。另外,上层应用程序在发送消息的时候,可以通过一个优先级标签来对消息的重要性进行标识。该优先级标签可以标示消息的优先级,内核层在截获消息之后可以通过该优先级标签来识别该消息的重要性。
操作304,根据消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序。
具体地,应用程序可以被冻结,处于冻结状态的应用程序并没有被关闭,只是暂时不运行。处于冻结状态的应用程序不占用处理器资源进行运行,但是仍然占用电子设备的内存和硬件等资源。电子设备的本地框架层中的资源优先级和限制管理模块可以对应用程序的状态进行标记,通过读取应用程序的状态标记就可以知道应用程序是否处于冻结状态。冻结后的应用程序可以被唤醒,当应用程序被唤醒后,资源优先级和限制管理模块会相应地更改应用程序的状态标记,从而通过对应的状态标记来实现对应用程序冻结状态的管控。
电子设备在检测到待处理消息之后,一般会即刻唤醒应用程序,以及时对待处理消息进行处理,在将待处理消息处理完成之后,再将应用程序进行冻结。但是这样频繁的将应用程序进行冻结和唤醒会极大地消耗电子设备的资源。在本申请实施例中,在检测到待处理消息之后,会根据待处理消息的类型和优先级来决定是否唤醒处于冻结状态的后台应用程序。具体地,可以根据待处理消息的消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序。目标应用程序即为需要从冻结状态唤醒的后台应用程序。例如,同步消息一般都看作是比较重要的消息,在检测到待处理消息为同步消息时,就获取用于处理该待处理消息的后台应用程序作为目标应用程序,并将目标应用程序唤醒。
操作306,唤醒目标应用程序。
在一个实施例中,当目标应用程序从冻结状态被唤醒之后,目标应用程序可以在电子设备中运行,在运行过程中对待处理消息进行处理。目标应用程序在处理完待处理消息之后,可以立刻重新回到冻结状态,也可以等待一段时间,若没有接收到待处理消息再回到冻结状态。
上述实施例中提供的应用程序处理方法,在检测到待处理消息之后,会获取待处理消息的消息类型和消息优先级。然后根据待处理消息的消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序,并将目标应用程序唤醒。这样不会在每次检测到待处理消息时,都将待处理消息进行唤醒,降低了电子设备的功耗。同时根据消息类型和消息优先级来唤醒应用程序,可以保证重要的消息不被忽略,提高了设备对数据处理的准确性。
图4为另一个实施例中应用程序处理方法的流程图。本实施例中的应用程序处理方法,以运行于图1中的终端或服务器上为例进行描述。如图4所示,该应用程序处理方法包括操作402至操作412。其中:
操作402,监听电子设备中的通信接口。
在一个实施例中,通信接口是指用于传输待处理消息的接口,可以但不限于包括Binder通信接口和Socket通信接口。其中Binder通信是Android系统中实现的一种高效的IPC(Inter-Process Communication,进程间通信)机制,是一种client-server(客户端-服务器)的通信结构。客户端与服务器会定义一个对应的代理接口,客户端调用代理接口中的方法时,代理接口的方法会将客户端的参数打包成一个Parcel对象,然后代理接口将Parcel对象发送给内核层中的Binder驱动。服务器可以读取Binder驱动中的请求数据,然后将Parcel对象进行解析并处理,并将处理结果返回。Socket通信可以对两个网络应用程序进行通信连接,从而实现网络上的应用程序的数据交换。具体地,本地进程间通信可以通过PID(Process Identity,进程标识)来唯一标识一个进程,但是在网络进程间通信是没有办法实现的。而在网络通信中IP(Internet Protocol,网络之间互连的协议)地址可以唯一标识网络中的主机,“协议+端口”可以唯一标识主机中的进程,因此在Socket通信中通常是通过“IP地址+协议+端口”的形式来唯一标识一个进程的。
操作404,若在通信接口中检测到待处理消息,则获取待处理消息的消息类型和消息 优先级。
电子设备会实时监控各个通信接口,若在通信接口中接收到待处理消息,则获取该待处理消息的消息类型和消息优先级。具体地,消息可以分为同步消息和异步消息,应用程序在创建消息的时候可以设置消息的消息类型,然后通过类型标签来标记消息的类型。例如,在Android系统中,消息默认为同步消息,可以通过调用Message的setAsynchronous()方法给消息加上异步标签,将消息设置为异步消息。然后通过Message的isAsynchronous()方法可以判断当前Message是否是异步消息。
在一个实施例中,应用程序在发送消息的时候,可以给消息加上优先级标签,通过该优先级标签来标识消息的优先级。消息优先级可以表示该消息的重要级别,电子设备的应用层在发送消息的时候,通过优先级标签对消息的优先级进行设置。内核层在检测到该消息的时候,就可以通过优先级标签来判断消息的优先级。例如,电子设备中的同步消息一般是比较重要的,一般会将同步消息设置为较高的优先级。
操作406,若待处理消息为异步广播消息类型,则根据消息优先级从处于冻结状态的后台应用程序中获取目标应用程序。
具体地,异步消息可以是指异步广播消息,应用程序在发送异步广播消息时,不会指定接收该异步广播消息的接收者,也不关心接收者会如何处理该异步广播消息,而只负责将该异步广播消息发送出去。只有注册了广播接收器(BroadcastReceiver)的应用程序才可以接收到该异步广播消息,而未注册广播接收器的应用程序无法接收到该异步广播消息。内核层在通过通信接口截获到待处理消息之后,可以判断待处理消息的消息类型。若待处理消息为异步广播消息类型,则可以根据待处理消息的消息优先级来获取目标应用程序。例如,若待处理消息为优先级较高的异步广播消息,则将处于冻结状态的后台应用程序进行唤醒;若待处理消息为优先级较低的异步广播消息,则不用唤醒后台应用程序,以降低电子设备的功耗。
具体地,若消息优先级大于优先级阈值,则获取处于冻结状态的后台应用程序作为目标应用程序。消息优先级大于优先级阈值时,说明该待处理消息为比较重要的消息。由于异步广播消息在发送之后,不会指定对应的消息接收者,因此需要将处于冻结状态的后台应用程序都作为目标应用程序,并唤醒目标应用程序以对接收并处理待处理消息。可以理解的是,只有注册广播接收器的应用程序才可以接收异步广播消息,因此在唤醒后台应用程序时,不需要将所有处于冻结状态的后台应用程序都唤醒,可以只将注册了广播接收器的后台应用程序唤醒。则可以获取处于冻结状态且已注册广播接收器的后台应用程序,作为目标应用程序。
另外,若消息优先级小于或等于优先级阈值,说明该待处理消息不是非常重要的消息,则可以暂时不将该消息优先级进行处理,等到处于冻结状态的后台应用程序被唤醒之后,再通过被唤醒的后台应用程序将该待处理消息进行处理。这样可以减少应用程序被唤醒的次数,降低电子设备的功耗。具体地,若消息优先级小于或等于优先级阈值,则将待处理消息作为待统计消息;在检测到后台应用程序被唤醒时,将待统计消息进行处理。
在本申请提供的实施例中,在检测到后台应用程序被唤醒时,则可以统计待统计消息的消息数量,若待统计消息的消息数量较少,则可以暂时不对待统计消息进行处理。等到待统计消息的消息数量大于一定值时,再将待统计消息进行统一地处理。则在检测到后台应用程序被唤醒时,统计电子设备中待统计消息的消息数量;若消息数量大于数量阈值,则将待统计消息进行处理。这样可以减少电子设备处理消息的数量,降低电子设备的功耗。另外,具体可以是检测到注册广播接收器的后台应用被唤醒时,统计电子设备中待统计消息的消息数量,并根据消息数量价格待统计消息进行处理。
在一个实施例中,异步广播消息根据接收规则可以分为有序异步广播消息和非有序异步广播消息,有序异步广播消息在发送后,会按照应用程序的优先级进行顺序接收并处 理消息,而非有序异步广播消息在发送后,应用程序不会按照固定的接收顺序接收消息。因此可以将有序异步广播消息设置为较高的消息优先级,即有序广播消息的消息优先级高于优先级阈值。而非有序异步广播消息则可以设置为较低的消息优先级,即非有序异步广播消息的消息优先级低于优先级阈值。
操作408,若待处理消息为同步消息类型,则从处于冻结状态的后台应用程序中,获取用于处理待处理消息的目标应用程序。
在一个实施例中,若待处理消息为同步消息类型,那么待处理消息中可以但不限于包括消息发送者标识、消息接收者标识、消息内容等信息。消息发送者标识是指发送该待处理消息的应用程序的唯一标识,消息接收者标识是指接收该待处理消息的应用程序的唯一标识,也即处理该待处理消息的应用程序的唯一标识。内核层在截获到待处理消息后,根据待处理消息中的消息接收者标识就可以获取用于处理该待处理消息的目标应用程序。
操作410,唤醒目标应用程序。
可以理解的是,电子设备可以通过冻结列表将每一个应用程序的冻结状态进行记录。冻结列表中包括若干个处于冻结状态的应用程序的应用标识,每一个应用标识用于唯一标示一个应用程序。当应用程序被唤醒时,电子设备会将被唤醒的应用程序的应用标识从冻结列表中移除。当应用程序被冻结时,电子设备又会将被冻结的应用程序的应用标识添加到冻结列表中。被唤醒的目标应用程序会从消息队列中获取待处理消息,并对待处理消息进行处理。
以Android系统中,实现应用程序的冻结和唤醒的方法有多种。以其中一种为例,可以通过pm(package manager,包管理)命令来实现,在pm命令中,可以通过冻结命令pm disable[–user USER_ID]PACKAGE_OR_COMPONENT将应用程序设置为冻结状态,然后还可以通过解冻命令pm enable[–user USER_ID]PACKAGE_OR_COMPONENT将处于冻结状态的应用程序进行唤醒,通过冻结列表查询命令pm list packages–d获取处于冻结状态的应用程序列表,以查看处于冻结状态的应用程序。可以理解的是,本申请中以Android操作系统为例对应用程序处理方法进行说明,但是本申请的应用程序处理方法并不仅限于在Android系统中实现,还可以应用在IOS(IPhone Operating System)、塞班、Windows、MAC OS(Macintosh Operating System)等操作系统中。
在本申请提供的实施例中,可以从目标应用程序被唤醒的时刻开始计时;若计时时长超过时长阈值,或检测到待处理消息处理完成,则将目标应用程序进行冻结。这样在检测到待处理消息处理完成时,可以将目标应用程序进行冻结,防止目标应用程序继续消耗设备资源。同时,为防止由于消息处理出错而导致目标应用程序一直处于运行状态,可以将目标应用程序唤醒的时长进行计时,若计时时长超过时长阈值,则将目标应用程序进行冻结。
电子设备可以对每一个目标应用程序建立一个计时器,预先建立目标应用程序的目标应用标识与计时器的计时标识的对应关系,通过目标应用标识对应的计时标识查找并启动计时器开始计时。以Android系统为例,系统可以预先定义一个计时器,当检测到目标应用程序被唤醒时,目标应用标识查找对应的计时器,并通过timer.setBase(SystemClock.elapsedRealtime())将计时器清零,然后通过timer.start()函数启动计时器,开始计时。
操作412,获取电子设备的资源总占用率,根据资源总占用率控制目标应用程序进入资源限制状态,其中,处于资源限制状态的应用程序在运行时对电子设备的资源占用率小于占用率阈值。
资源是指电子设备在处理应用事件时所必须用到的软件或硬件资源,比如电子设备的CPU(Central Processing Unit,中央处理器)、内存(Memory)、硬件、网络资源、IO(Input-Output,输入输出)等。资源总占用率是指电子设备的资源被占用比例,一般 是指被占用的资源与全部资源的比例,可以通过百分比的形式进行表示。例如,设备的总内存有128GB,已经被占用的内存有56GB,那么该设备的资源总占用率就可以表示为内存占用率,得到的内存占用率即为43.75%。在电子设备运行的过程中可以实时统计各个应用程序的资源占用率,应用程序的资源占用率是指一个应用程序所使用的资源与电子设备的所有资源的比例,将电子设备中所有应用程序的资源占用率的相加得到资源总占用率。
在一个实施例中,电子设备可以在预设存储地址中存储监控日志文件,根据该监控日志文件可以获取CPU总占用率。同时该预设存储地址中还存储了若干个子文件夹,这些子文件夹中存储着各个进程日志文件。进程日志文件记录了进程从开启到当前时刻的具体运行情况的变化,根据这些进程日志文件就可以获取该进程所占用CPU资源的情况,即可获取进程的CPU占用率。将应用程序包含的所有进程的CPU占用率相加,可以得到应用程序的CPU占用率。
例如,在Android系统中,在/proc目录中可以读取到存储CPU总占用信息的监控日志文件。其中,/proc目录下还包含了多个子文件夹,这些子文件夹中存储了各个进程对应的CPU占用信息的进程日志文件。/proc目录中存储的监控日志文件的文件名为“stat”,/proc目录中的子文件夹中存储了进程日志文件,进程日志文件的文件名为“stat”。/proc目录下的stat文件记录了CPU的总占用信息,/proc目录下的子文件夹中的stat文件记录了各个进程的CPU占用信息。比如,/proc/pid目录下的stat文件记录了PID进程的CPU占用信息。
电子设备还可以实时统计内存、硬件、网络资源、IO等资源的占用率,例如,在通过读取文件"/proc/meminfo"的信息能够获取手机的内存总量,而通过ActivityManager.getMemoryInfo(ActivityManager.MemoryInfo)方法可以获取当前的可用内存量,然后通过可用内存量和内存总量可以计算当前的内存总占用率。在Android系统中还可以直接运行top命令来统计CPU、内存、IO等资源的占用率。
被唤醒的目标应用程序能够正常的运行,为防止被唤醒的目标应用程序在运行过程中过多的占用电子设备的资源,影响前台应用程序的操作,则可以控制被唤醒的目标应用程序进入一种资源限制状态。首先获取电子设备的资源总占用率,根据资源总占用率来控制被唤醒的目标应用程序进入资源限制状态。具体地,可以将资源总占用率与总占用率阈值进行比较,若资源总占用率超过总占用率阈值,则认为电子设备的可用资源比较少,可以控制被唤醒的目标应用程序进入资源限制状态。可以理解的是,目标应用程序处于资源限制状态时,运行过程中的资源占用率不能超过占用率阈值,这样可以控制目标应用程序对电子设备资源的使用,从而节省电子设备的资源。可以理解,总占用率阈值是大于占用率阈值的。例如,当CPU总占用率超过50%时,控制被唤醒的目标应用程序在运行时的CPU占用率不能超过5%,以减少被唤醒的目标应用程序对CPU的过度消耗。在手机系统中可以通过cgroups(control groups,控制组)来控制被唤醒的目标应用程序的CPU、内存、IO等资源占用率,即控制被唤醒的目标应用程序进入资源限制状态。
具体地,可以根据目标应用程序的应用优先级来控制对资源的占用情况,预先建立应用程序的应用优先级与资源限制级别的对应关系,然后根据目标应用程序的应用优先级来控制进入资源限制状态的资源限制级别。目标应用程序的应用优先级是指目标应用程序的重要程度,可以预先进行设置。例如,可以将系统级应用程序设置为较高的应用优先级,第三方应用程序设置为较低的应用优先级。或者可以根据应用程序的类型来对应用程序的应用优先级进行设置,即时通讯类的应用程序设置为较高的应用优先级,工具类的应用程序设置为较低的应用优先级。还可以根据其他标准来设置应用程序的应用优先级,在此不进行具体限定。资源限制级别是指对应用程序使用的资源进行限制的程度。获取目标应用程序对应的应用优先级,根据应用优先级获取对应的资源限制级别;控制被唤醒的目标应用程序进入资源限制级别对应的资源限制状态。例如,对应系统级的目标应用程序可以设 置为轻度资源限制,第三方目标应用程序可以设置为深度资源限制。
可以理解的是,不同的应用程序可能依赖的资源会有所不同,则可以根据应用程序所依赖的资源类型来控制应用程序的资源限制类型。例如,一些本地应用程序可能使用的网络资源比较少,而一些需要进行网络通信的应用程序使用的网络资源会比较多,可以对网络资源使用比较多的应用程序进行网络资源的限制。具体地,获取被唤醒的目标应用程序的资源占用历史数据,根据资源占用历史数据获取目标应用程序对应的依赖资源类型,并根据依赖资源类型和资源限制级别控制被唤醒的目标应用程序进入资源限制状态。其中,资源占用历史数据是指应用程序历史占用资源的数据,依赖资源类型即为应用程序运行时所依赖的资源的类型。
在一个实施例中,还可以建立资源总占用率和资源限制级别的对应关系。当资源总占用率超过总占用率阈值时,根据资源总占用率获取资源限制级别,然后控制被唤醒的目标应用程序进入资源限制级别对应的资源限制状态。例如,总占用率阈值为50%,则当资源总占用率超过50%时,将资源总占用率划分为50%~60%、60%~80%、80%~100%等三个占用级别,然后分别对应轻度资源限制级别、普通资源限制级别和深度资源限制级别等三个等级,根据资源总占用率可以获取对应的资源限制级别,不同的资源限制级别对应的占用率阈值不同。可以理解的是,还可以结合资源总占用率和被唤醒的目标应用程序的应用优先级,来获取资源限制级别,在此不做限定。
图5为一个实施例中应用程序的资源限制状态的示意图。如图5所示,电子设备的资源包括CPU、内存、IO、网络资源等,应用程序的状态可以分为正常运行状态、资源限制状态和冻结状态。其中,资源限制状态又可以分为轻度资源限制状态、普通资源限制状态和深度资源限制状态。在不同资源限制状态下,对应的可用资源502和不可用资源504不相同。从轻度资源限制状态、普通资源限制状态到深度资源限制状态,可用资源502递减。在正常运行状态下,应用程序的可用资源502为100%。
上述实施例中提供的应用程序处理方法,在检测到待处理消息之后,会获取待处理消息的消息类型和消息优先级。然后根据待处理消息的消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序,并将目标应用程序唤醒。并根据电子设备的资源总占用率控制被唤醒的目标应用程序进入资源限制状态。这样不会在每次检测到待处理消息时,都将待处理消息进行唤醒,降低了电子设备的功耗。同时控制被唤醒后的目标应用程序进入资源限制状态,防止目标应用程序对电子设备的资源的过度消耗,减低了电子设备的功耗。根据消息类型和消息优先级来唤醒应用程序,可以保证重要的消息不被忽略,提高了设备对数据处理的准确性。
应该理解的是,虽然图3和图4的流程图中的各个操作按照箭头的指示依次显示,但是这些操作并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些操作的执行并没有严格的顺序限制,这些操作可以以其它的顺序执行。而且,图3和图4中的至少一部分操作可以包括多个子操作或者多个阶段,这些子操作或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子操作或者阶段的执行顺序也不必然是依次进行,而是可以与其它操作或者其它操作的子操作或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种电子设备的部分架构图。其中,该电子设备的架构系统中包括JAVA空间层61、本地框架层62以及内核(Kernel)空间层63。JAVA空间层61上可包含策略应用程序610,电子设备可通过该策略应用程序610来发起对各个应用程序的冻结和解冻策略,从而实现对电子设备中的各个应用程序实现冻结和解冻的操作。例如,通过策略应用程序610来判断后台耗电的应用程序,并发起对该后台耗电的应用程序做冻结操作。本地框架层62中包含资源优先级和限制管理模块620及平台冻结管理 模块622。电子设备可通过资源优先级和限制管理模块620来实时维护应用程序的优先级和对应的资源组,根据上层的需求来调整应用程序的优先级和资源组,从而达到优化性能,节省功耗的作用。电子设备可通过平台冻结管理模块622将后台可以冻结的任务按照进入冻结时间的长短,分配到对应预设的不同层次的冻结层,可选地,该冻结层可包括:CPU限制睡眠模式、CPU冻结睡眠模式、进程深度冻结模式。内核空间层63中包括UID管理模块630、Cgroup模块632、超时冻结退出模块634、Binder管控模块636、进程内存回收模块638。其中,UID管理模块630可以基于应用程序的用户身份标识(User Identifier,UID)来管理第三方应用程序的资源或进行冻结。相比较于基于进程身份标识(Process Identifier,PID)来进行进程管控,通过UID更便于统一管理一个用户的应用的资源。Cgroup模块632用于提供一套完善的中央处理器(Central Processing Unit,CPU)、CPUSET、内存(memory)、输入/输出(input/output,I/O)和Net相关的资源限制机制。超时冻结退出模块634用于解决出现冻结超时场景产生的异常。Binder管控模块636用于实现后台binder通信的优先级的控制。进程内存回收模块638用于实现进程的深度冻结模式,当第三方应用程序长期处于冻结状态的时候,可以释放进程的文件区,从而达到节省内存的模块,也加快该应用程序在下次启动时的速度。通过上述的架构,可实现本申请各个实施例中的应用程序处理方法。
图7为一个实施例中应用程序处理装置的结构示意图。如图7所示,该应用程序处理装置700包括消息获取模块702、应用获取模块704和应用处理模块706。其中:
消息获取模块702,用于若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级。
应用获取模块704,用于根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序。
应用处理模块706,用于唤醒所述目标应用程序。
上述实施例中提供的应用程序处理装置,在检测到待处理消息之后,会获取待处理消息的消息类型和消息优先级。然后根据待处理消息的消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序,并将目标应用程序唤醒。这样不会在每次检测到待处理消息时,都将待处理消息进行唤醒,降低了电子设备的功耗。同时根据消息类型和消息优先级来唤醒应用程序,可以保证重要的消息不被忽略,提高了设备对数据处理的准确性。
图8为另一个实施例中应用程序处理装置的结构示意图。如图8所示,该应用程序处理装置800包括消息获取模块802、应用获取模块804、应用处理模块806和资源限制模块808。其中:
消息获取模块802,用于若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级。
应用获取模块804,用于根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序。
应用处理模块806,用于唤醒所述目标应用程序。
资源限制模块808,用于获取所述电子设备的资源总占用率,根据所述资源总占用率控制被唤醒的目标应用程序进入资源限制状态,其中,处于所述资源限制状态的应用程序在运行时对电子设备的资源占用率小于占用率阈值。
上述实施例中提供的应用程序处理装置,在检测到待处理消息之后,会获取待处理消息的消息类型和消息优先级。然后根据待处理消息的消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序,并将目标应用程序唤醒。并根据电子设备的资 源总占用率控制被唤醒的目标应用程序进入资源限制状态。这样不会在每次检测到待处理消息时,都将待处理消息进行唤醒,降低了电子设备的功耗。同时控制被唤醒后的目标应用程序进入资源限制状态,防止目标应用程序对电子设备的资源的过度消耗,减低了电子设备的功耗。根据消息类型和消息优先级来唤醒应用程序,可以保证重要的消息不被忽略,提高了设备对数据处理的准确性。
在一个实施例中,消息获取模块802还用于监听电子设备中的通信接口;若在所述通信接口中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级。
在一个实施例中,应用获取模块804还用于若所述待处理消息为异步广播消息类型,则根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序;若所述待处理消息为同步消息类型,则从处于冻结状态的后台应用程序中,获取用于处理所述待处理消息的目标应用程序。
在一个实施例中,应用获取模块804还用于若所述消息优先级大于优先级阈值,则获取处于冻结状态的后台应用程序作为目标应用程序。
在一个实施例中,应用获取模块804还用于若所述消息优先级小于或等于优先级阈值,则将所述待处理消息作为待统计消息;在检测到后台应用程序被唤醒时,将所述待统计消息进行处理。
在一个实施例中,应用获取模块804还用于在检测到后台应用程序被唤醒时,统计所述电子设备中所述待统计消息的消息数量;若所述消息数量大于数量阈值,则将所述待统计消息进行处理。
上述应用程序处理装置中各个模块的划分仅用于举例说明,在其他实施例中,可将应用程序处理装置按照需要划分为不同的模块,以完成上述应用程序处理装置的全部或部分功能。
本申请实施例中提供的应用程序处理装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述方法的操作。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行上述实施例提供的应用程序处理方法。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的应用程序处理方法。
本申请实施例还提供了一种电子设备。如图9所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该电子设备可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、穿戴式设备等任意终端设备,以电子设备为手机为例:
图9为与本申请实施例提供的电子设备相关的手机的部分结构的框图。参考图9,手机包括:射频(Radio Frequency,RF)电路910、存储器920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(wireless fidelity,WiFi)模块970、处理器980、以及电源990等部件。本领域技术人员可以理解,图9所示的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,RF电路910可用于收发信息或通话过程中,信号的接收和发送,可将基站 的下行信息接收后,给处理器980处理;也可以将上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路910还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器920可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能的应用程序、图像播放功能的应用程序等)等;数据存储区可存储根据手机的使用所创建的数据(比如音频数据、通讯录等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元930可用于接收输入的数字或字符信息,以及产生与手机900的用户设置以及功能控制有关的键信号输入。具体地,输入单元930可包括触控面板931以及其他输入设备932。触控面板931,也可称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板931上或在触控面板931附近的操作),并根据预先设定的程式驱动相应的连接装置。在一个实施例中,触控面板931可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器980,并能接收处理器980发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板931。除了触控面板931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)等中的一种或多种。
显示单元940可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元940可包括显示面板941。在一个实施例中,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板941。在一个实施例中,触控面板931可覆盖显示面板941,当触控面板931检测到在其上或附近的触摸操作后,传送给处理器980以确定触摸事件的类型,随后处理器980根据触摸事件的类型在显示面板941上提供相应的视觉输出。虽然在图9中,触控面板931与显示面板941是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板931与显示面板941集成而实现手机的输入和输出功能。
手机900还可包括至少一种传感器950,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板941的亮度,接近传感器可在手机移动到耳边时,关闭显示面板941和/或背光。运动传感器可包括加速度传感器,通过加速度传感器可检测各个方向上加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换)、振动识别相关功能(比如计步器、敲击)等;此外,手机还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器等。
音频电路960、扬声器961和传声器962可提供用户与手机之间的音频接口。音 频电路960可将接收到的音频数据转换后的电信号,传输到扬声器961,由扬声器961转换为声音信号输出;另一方面,传声器962将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据输出处理器980处理后,经RF电路910可以发送给另一手机,或者将音频数据输出至存储器920以便后续处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块970,但是可以理解的是,其并不属于手机900的必须构成,可以根据需要而省略。
处理器980是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在一个实施例中,处理器980可包括一个或多个处理单元。在一个实施例中,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等;调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
手机900还包括给各个部件供电的电源990(比如电池),优选的,电源可以通过电源管理系统与处理器980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
在一个实施例中,手机900还可以包括摄像头、蓝牙模块等。
在本申请实施例中,该电子设备所包括的处理器980执行存储在存储器上的计算机程序时实现上述实施例提供的应用程序处理方法的操作。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (21)

  1. 一种应用程序处理方法,包括:
    当在电子设备中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级;
    根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;及
    唤醒所述目标应用程序。
  2. 根据权利要求1所述的方法,其特征在于,所述当在电子设备中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级包括:
    监听电子设备中的通信接口;及
    当在所述通信接口中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级。
  3. 根据权利要求1所述的方法,其特征在于,所述根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序包括:
    当所述待处理消息为异步广播消息类型时,根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序;及
    当所述待处理消息为同步消息类型时,从处于冻结状态的后台应用程序中,获取用于处理所述待处理消息的目标应用程序。
  4. 根据权利要求3所述的方法,其特征在于,所述根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序包括:
    当所述消息优先级大于优先级阈值时,获取处于冻结状态的后台应用程序作为目标应用程序。
  5. 根据权利要求4所述的方法,其特征在于,所述方法还包括:
    当所述消息优先级小于或等于优先级阈值时,将所述待处理消息作为待统计消息;及
    在检测到后台应用程序被唤醒时,将所述待统计消息进行处理。
  6. 根据权利要求5所述的方法,其特征在于,所述在检测到后台应用程序被唤醒时,将所述待统计消息进行处理包括:
    在检测到后台应用程序被唤醒时,统计所述电子设备中所述待统计消息的消息数量;及
    当所述消息数量大于数量阈值时,将所述待统计消息进行处理。
  7. 根据权利要求1至6中任一项所述的方法,其特征在于,所述唤醒所述目标应用程序之后还包括:
    获取所述电子设备的资源总占用率,根据所述资源总占用率控制被唤醒的目标应用程序进入资源限制状态,其中,处于所述资源限制状态的应用程序在运行时对电子设备的资源占用率小于占用率阈值。
  8. 一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下操作:
    当在电子设备中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级;
    根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;及
    唤醒所述目标应用程序。
  9. 根据权利要求8所述的电子设备,其特征在于,所述处理器执行所述当在电子设备中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级时,还执行如下 操作:
    监听电子设备中的通信接口;及
    当在所述通信接口中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级。
  10. 根据权利要求8所述的电子设备,其特征在于,所述处理器执行所述根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序时,还执行如下操作:
    当所述待处理消息为异步广播消息类型时,根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序;及
    当所述待处理消息为同步消息类型时,从处于冻结状态的后台应用程序中,获取用于处理所述待处理消息的目标应用程序。
  11. 根据权利要求10所述的电子设备,其特征在于,所述处理器执行所述根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序时,还执行如下操作:
    当所述消息优先级大于优先级阈值时,获取处于冻结状态的后台应用程序作为目标应用程序。
  12. 根据权利要求11所述的电子设备,其特征在于,所述处理器还执行如下操作:
    当所述消息优先级小于或等于优先级阈值时,将所述待处理消息作为待统计消息;及
    在检测到后台应用程序被唤醒时,将所述待统计消息进行处理。
  13. 根据权利要求12所述的电子设备,其特征在于,所述处理器执行所述在检测到后台应用程序被唤醒时,将所述待统计消息进行处理时,还执行如下操作:
    在检测到后台应用程序被唤醒时,统计所述电子设备中所述待统计消息的消息数量;及
    当所述消息数量大于数量阈值时,将所述待统计消息进行处理。
  14. 根据权利要求8至13中任一项所述的电子设备,其特征在于,所述处理器执行所述唤醒所述目标应用程序之后,还执行如下操作:
    获取所述电子设备的资源总占用率,根据所述资源总占用率控制被唤醒的目标应用程序进入资源限制状态,其中,处于所述资源限制状态的应用程序在运行时对电子设备的资源占用率小于占用率阈值。
  15. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下操作:
    当在电子设备中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级;
    根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;及
    唤醒所述目标应用程序。
  16. 根据权利要求15所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行所述当在电子设备中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级时,还执行如下操作:
    监听电子设备中的通信接口;及
    当在所述通信接口中检测到待处理消息时,获取所述待处理消息的消息类型和消息优先级。
  17. 根据权利要求15所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行所述根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序时,还执行如下操作:
    当所述待处理消息为异步广播消息类型时,根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序;及
    当所述待处理消息为同步消息类型时,从处于冻结状态的后台应用程序中,获取用于处理所述待处理消息的目标应用程序。
  18. 根据权利要求17所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行所述根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序时,还执行如下操作:
    当所述消息优先级大于优先级阈值时,获取处于冻结状态的后台应用程序作为目标应用程序。
  19. 根据权利要求18所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器时还执行如下操作:
    当所述消息优先级小于或等于优先级阈值时,将所述待处理消息作为待统计消息;及
    在检测到后台应用程序被唤醒时,将所述待统计消息进行处理。
  20. 根据权利要求19所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行所述在检测到后台应用程序被唤醒时,将所述待统计消息进行处理时,还执行如下操作:
    在检测到后台应用程序被唤醒时,统计所述电子设备中所述待统计消息的消息数量;及
    当所述消息数量大于数量阈值时,将所述待统计消息进行处理。
  21. 根据权利要求14至20中任一项所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行所述唤醒所述目标应用程序之后,还执行如下操作:
    获取所述电子设备的资源总占用率,根据所述资源总占用率控制被唤醒的目标应用程序进入资源限制状态,其中,处于所述资源限制状态的应用程序在运行时对电子设备的资源占用率小于占用率阈值。
PCT/CN2018/117408 2017-12-29 2018-11-26 应用程序处理方法、电子设备、计算机可读存储介质 WO2019128586A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201711489057.2A CN109992309B (zh) 2017-12-29 2017-12-29 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN201711489057.2 2017-12-29

Publications (1)

Publication Number Publication Date
WO2019128586A1 true WO2019128586A1 (zh) 2019-07-04

Family

ID=67063002

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/117408 WO2019128586A1 (zh) 2017-12-29 2018-11-26 应用程序处理方法、电子设备、计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN109992309B (zh)
WO (1) WO2019128586A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4057140A4 (en) * 2019-12-17 2022-12-07 Huawei Technologies Co., Ltd. PROCESS MANAGEMENT METHOD AND APPARATUS, AND ELECTRONIC DEVICE

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908870B (zh) * 2019-11-28 2023-11-21 中国银行股份有限公司 一种大型机的资源监控方法、装置、存储介质及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102726104A (zh) * 2010-01-26 2012-10-10 摩托罗拉移动公司 用于保持应用连续性的移动计算设备和方法
CN103842934A (zh) * 2011-09-30 2014-06-04 英特尔公司 用于降低功耗的基于优先级的应用事件控制(paec)
CN103857019A (zh) * 2012-11-30 2014-06-11 辉达公司 一种在移动终端中用于省电的方法
CN104539672A (zh) * 2014-12-19 2015-04-22 南京工业大学 一种基于云计算的移动应用程序消息推送代理系统
CN105912096A (zh) * 2016-04-28 2016-08-31 乐视控股(北京)有限公司 终端及进程处理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681475A (zh) * 2016-12-12 2017-05-17 北京珠穆朗玛移动通信有限公司 降低移动终端功耗的方法及移动终端
CN106844029B (zh) * 2017-01-19 2020-06-30 努比亚技术有限公司 一种自管理的Android进程冻结和解冻的装置及方法
CN106686557B (zh) * 2017-03-10 2019-05-03 Oppo广东移动通信有限公司 广播处理方法、装置和终端设备
CN107277902B (zh) * 2017-06-19 2021-05-21 努比亚技术有限公司 终端功耗控制方法、移动终端及计算机可读存储介质
CN107231679B (zh) * 2017-06-20 2020-04-14 维沃移动通信有限公司 一种数据包处理方法及移动终端
CN107423064B (zh) * 2017-07-26 2020-12-08 Oppo广东移动通信有限公司 消息处理方法、装置、终端设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102726104A (zh) * 2010-01-26 2012-10-10 摩托罗拉移动公司 用于保持应用连续性的移动计算设备和方法
CN103842934A (zh) * 2011-09-30 2014-06-04 英特尔公司 用于降低功耗的基于优先级的应用事件控制(paec)
CN103857019A (zh) * 2012-11-30 2014-06-11 辉达公司 一种在移动终端中用于省电的方法
CN104539672A (zh) * 2014-12-19 2015-04-22 南京工业大学 一种基于云计算的移动应用程序消息推送代理系统
CN105912096A (zh) * 2016-04-28 2016-08-31 乐视控股(北京)有限公司 终端及进程处理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4057140A4 (en) * 2019-12-17 2022-12-07 Huawei Technologies Co., Ltd. PROCESS MANAGEMENT METHOD AND APPARATUS, AND ELECTRONIC DEVICE

Also Published As

Publication number Publication date
CN109992309A (zh) 2019-07-09
CN109992309B (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
WO2019128546A1 (zh) 应用程序处理方法、电子设备、计算机可读存储介质
WO2020024732A1 (zh) 进程处理方法、电子设备、计算机可读存储介质
WO2019128540A1 (zh) 资源管理方法、移动终端及计算机可读存储介质
WO2020093208A1 (zh) 应用程序处理方法和装置、计算机设备、计算机可读存储介质
CN110018901B (zh) 内存回收方法、装置、计算机设备和计算机可读存储介质
CN107577508B (zh) 应用程序处理方法、装置、可读存储介质和移动终端
CN110032267B (zh) 信息处理方法、装置、移动终端及计算机可读存储介质
CN110032266B (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
WO2019128573A1 (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
WO2019128588A1 (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
CN109992399B (zh) 资源管理方法、装置、移动终端及计算机可读存储介质
WO2019137173A1 (zh) 资源管理方法、移动终端及计算机可读存储介质
WO2019128537A1 (zh) 应用冻结方法、计算机设备和计算机可读存储介质
WO2019128574A1 (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
CN109992323B (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
CN109992380B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN110018905B (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
WO2019128553A1 (zh) 应用程序处理方法、电子设备、计算机可读存储介质
CN109992360B (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
WO2019128569A1 (zh) 应用程序冻结方法、装置、存储介质和终端
WO2019128586A1 (zh) 应用程序处理方法、电子设备、计算机可读存储介质
CN110046033B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN110032397B (zh) 应用处理方法和装置、电子设备、计算机可读存储介质
CN109992369B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
WO2019128570A1 (zh) 应用程序冻结方法、装置、存储介质和终端

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18895112

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18895112

Country of ref document: EP

Kind code of ref document: A1