CN109992309B - 应用程序处理方法和装置、电子设备、计算机可读存储介质 - Google Patents
应用程序处理方法和装置、电子设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN109992309B CN109992309B CN201711489057.2A CN201711489057A CN109992309B CN 109992309 B CN109992309 B CN 109992309B CN 201711489057 A CN201711489057 A CN 201711489057A CN 109992309 B CN109992309 B CN 109992309B
- Authority
- CN
- China
- Prior art keywords
- message
- application program
- priority
- processed
- acquiring
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 103
- 238000003672 processing method Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 58
- 238000004891 communication Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 14
- 230000000670 limiting effect Effects 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000002618 waking effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 84
- 238000010586 diagram Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 14
- 230000002829 reductive effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008014 freezing Effects 0.000 description 8
- 238000007710 freezing Methods 0.000 description 8
- 239000011230 binding agent Substances 0.000 description 7
- 230000036961 partial effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序处理方法和装置、电子设备、计算机可读存储介质。
背景技术
智能设备可以通过应用程序实现不同的应用操作,比如可以通过购物类应用程序购买商品、通过视频类应用程序查看视频等。应用程序可以被冻结,冻结后的应用程序无法再继续运行,不会占用智能设备中处理器资源。但是由于应用程序还是存在与智能设备中的,因此还会占用智能设备中的内存、硬件等资源。
发明内容
本申请实施例提供一种应用程序处理方法和装置、电子设备、计算机可读存储介质,可以降低设备的功耗。
一种应用程序处理方法,包括:
若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;
唤醒所述目标应用程序。
一种应用程序处理装置,包括:
消息获取模块,用于若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
应用获取模块,用于根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;
应用处理模块,用于唤醒所述目标应用程序。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;
唤醒所述目标应用程序。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
根据所述消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序;
唤醒所述目标应用程序。
上述应用程序处理方法和装置、电子设备、计算机可读存储介质,在检测到待处理消息之后,会获取待处理消息的消息类型和消息优先级。然后根据待处理消息的消息类型和消息优先级,从处于冻结状态的后台应用程序中获取目标应用程序,并将目标应用程序唤醒。这样不会在每次检测到待处理消息时,都将待处理消息进行唤醒,降低了电子设备的功耗。同时根据消息类型和消息优先级来唤醒应用程序,可以保证重要的消息不被忽略,提高了设备对数据处理的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图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命令中,可以通过冻结命令pmdisable[–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 ofMobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband CodeDivision 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。在一个实施例中,可以采用液晶显示器(LiquidCrystal 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 (10)
1.一种应用程序处理方法,其特征在于,包括:
若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
若所述待处理消息为异步广播消息类型,若所述异步广播消息的消息优先级大于优先级阈值,则根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序;
若所述待处理消息为同步消息类型,则从处于冻结状态的后台应用程序中,获取用于处理所述待处理消息的目标应用程序;
唤醒所述目标应用程序;
获取资源总占用率,若所述资源总占用率大于总占用率阈值,则获取唤醒的所述目标应用程序的应用优先级;
根据所述应用优先级获取资源限制级别;
获取被唤醒的目标应用程序的资源占用历史数据;
根据所述资源占用历史数据获取所述目标应用程序对应的依赖资源类型;
根据所述依赖资源类型和所述资源限制级别控制所述被唤醒的所述目标应用程序进入资源限制状态。
2.根据权利要求1所述的方法,其特征在于,所述若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级包括:
监听电子设备中的通信接口;
若在所述通信接口中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述消息优先级小于或等于优先级阈值,则将所述待处理消息作为待统计消息;
在检测到后台应用程序被唤醒时,将所述待统计消息进行处理。
4.根据权利要求3所述的方法,其特征在于,所述在检测到后台应用程序被唤醒时,将所述待统计消息进行处理包括:
在检测到后台应用程序被唤醒时,统计所述电子设备中所述待统计消息的消息数量;
若所述消息数量大于数量阈值,则将所述待统计消息进行处理。
5.一种应用程序处理装置,其特征在于,包括:
消息获取模块,用于若在电子设备中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级;
应用获取模块,用于若所述待处理消息为异步广播消息类型,若所述异步广播消息的消息优先级大于优先级阈值,则根据所述消息优先级从处于冻结状态的后台应用程序中获取目标应用程序;若所述待处理消息为同步消息类型,则从处于冻结状态的后台应用程序中,获取用于处理所述待处理消息的目标应用程序;
应用处理模块,用于唤醒所述目标应用程序;
资源限制模块,用于获取资源总占用率,若所述资源总占用率大于总占用率阈值,则获取唤醒的所述目标应用程序的应用优先级;根据所述应用优先级获取资源限制级别;获取被唤醒的目标应用程序的资源占用历史数据;根据所述资源占用历史数据获取所述目标应用程序对应的依赖资源类型;根据所述依赖资源类型和所述资源限制级别控制所述被唤醒的所述目标应用程序进入资源限制状态。
6.根据权利要求5所述的装置,其特征在于,
所述消息获取模块,还用于监听电子设备中的通信接口;若在所述通信接口中检测到待处理消息,则获取所述待处理消息的消息类型和消息优先级。
7.根据权利要求5所述的装置,其特征在于,
应用获取模块,还用于若所述消息优先级小于或等于优先级阈值,则将所述待处理消息作为待统计消息;在检测到后台应用程序被唤醒时,将所述待统计消息进行处理。
8.根据权利要求7所述的装置,其特征在于,
所述应用获取模块,还用于在检测到后台应用程序被唤醒时,统计所述电子设备中所述待统计消息的消息数量;若所述消息数量大于数量阈值,则将所述待统计消息进行处理。
9.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至4中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711489057.2A CN109992309B (zh) | 2017-12-29 | 2017-12-29 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
PCT/CN2018/117408 WO2019128586A1 (zh) | 2017-12-29 | 2018-11-26 | 应用程序处理方法、电子设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711489057.2A CN109992309B (zh) | 2017-12-29 | 2017-12-29 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992309A CN109992309A (zh) | 2019-07-09 |
CN109992309B true CN109992309B (zh) | 2021-03-12 |
Family
ID=67063002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711489057.2A Expired - Fee Related CN109992309B (zh) | 2017-12-29 | 2017-12-29 | 应用程序处理方法和装置、电子设备、计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109992309B (zh) |
WO (1) | WO2019128586A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908870B (zh) * | 2019-11-28 | 2023-11-21 | 中国银行股份有限公司 | 一种大型机的资源监控方法、装置、存储介质及设备 |
CN112988375B (zh) * | 2019-12-17 | 2024-04-09 | 华为技术有限公司 | 进程管理方法和装置、电子设备 |
CN113076202B (zh) * | 2020-01-06 | 2024-09-24 | 北京沃东天骏信息技术有限公司 | 消息状态确定方法、装置、计算机可读介质及电子设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8904206B2 (en) * | 2010-01-26 | 2014-12-02 | Motorola Mobility Llc | Mobile computing device and method for maintaining application continuity |
TWI556092B (zh) * | 2011-09-30 | 2016-11-01 | 英特爾公司 | 用以減少電力消耗之基於優先順序的應用程式事件控制技術 |
CN103857019B (zh) * | 2012-11-30 | 2018-01-02 | 辉达公司 | 一种在移动终端中用于省电的方法 |
CN104539672A (zh) * | 2014-12-19 | 2015-04-22 | 南京工业大学 | 一种基于云计算的移动应用程序消息推送代理系统 |
CN105912096A (zh) * | 2016-04-28 | 2016-08-31 | 乐视控股(北京)有限公司 | 终端及进程处理方法 |
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广东移动通信有限公司 | 消息处理方法、装置、终端设备及存储介质 |
-
2017
- 2017-12-29 CN CN201711489057.2A patent/CN109992309B/zh not_active Expired - Fee Related
-
2018
- 2018-11-26 WO PCT/CN2018/117408 patent/WO2019128586A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2019128586A1 (zh) | 2019-07-04 |
CN109992309A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992398B (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN112703714B (zh) | 应用程序处理方法和装置、计算机设备、计算机可读存储介质 | |
WO2019128546A1 (zh) | 应用程序处理方法、电子设备、计算机可读存储介质 | |
WO2020024732A1 (zh) | 进程处理方法、电子设备、计算机可读存储介质 | |
CN110032321B (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN107577508B (zh) | 应用程序处理方法、装置、可读存储介质和移动终端 | |
CN108541013B (zh) | 信息处理方法、装置、移动终端和计算机可读存储介质 | |
CN109992399B (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN110032266B (zh) | 信息处理方法、装置、计算机设备和计算机可读存储介质 | |
CN109992380B (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN108334345B (zh) | 应用程序处理方法、装置、可读存储介质和移动终端 | |
CN109992309B (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992323B (zh) | 进程处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992425B (zh) | 信息处理方法、装置、计算机设备和计算机可读存储介质 | |
CN109992360B (zh) | 进程处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992363B (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN110046033B (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN110046032A (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN110018886B (zh) | 应用状态切换方法和装置、电子设备、可读存储介质 | |
CN110018885B (zh) | 应用程序冻结方法、装置、存储介质和终端 | |
CN110032397B (zh) | 应用处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992369B (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN110045811B (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN109375995B (zh) | 应用冻结方法和装置、存储介质、电子设备 | |
CN109511139B (zh) | Wifi控制方法、装置、移动设备、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210312 |
|
CF01 | Termination of patent right due to non-payment of annual fee |