一种应用的管理方法及终端技术领域
本发明涉及计算机领域,尤其涉及一种应用的管理方法及终端。
背景技术
内存管理,是指应用程序运行时对计算机内存资源的分配和使用的技术。其最主
要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。
目前,Android系统有一套lowmemorykiller的内存管理机制,Android系统是一个
多任务系统,也就是说可以同时运行多个应用程序。启动运行一个应用是有一定的时间开
销的,因此为了加快运行速度,当用户退出一个程序时,Android系统并不会立即杀掉它,这
样下次再运行该程序时,可以很快的启动。随着系统中保留的程序越来越多,内存肯定会出
现不足,low memory killer就是在系统内存低于某阈值时,清除相关的应用程序,保障系
统保持拥有一定数量的空闲内存。
lowmemorykiller的内存管理机制也会有一些弊端,例如,系统在清除相关应用程
序时,用户使用频率高的一些应用可能被“杀掉”,当用户再次点击打开应用就出现很长加
载时间,浪费时间,用户体验变差。
发明内容
本发明实施例提供了一种应用的管理方法及终端,用于避免用户常用的应用被
“杀掉”或降低用户常用的应用被“杀掉”的概率,缩短常用的目标应用加载的时间。
第一方面,本发明提供了一种应用的管理方法,包括:
对多个应用的运行参数进行统计,确定目标应用,所述目标应用为所述运行参数
的值大于预设门限值的应用;及
根据所述目标应用的运行参数的值设置所述目标应用的优先级,所述目标应用的
运行参数的值越大,其优先级被设置得越高。
在一种可能的实现方式中,每个应用的运行参数的值是运行频率、运行时长、或对
运行频率和运行时长进行加权运算而得到的值;所述运行频率是预设的统计时间内该应用
启动的次数,所述运行时长是预设的统计时间内该应用运行时长。
在一种可能的实现方式中,所述对多个应用的运行参数进行统计,确定目标应用,
具体包括:
确定一第一目标应用及一第二目标应用,所述第一目标应用的运行参数的值大于
所述第二目标应用的运行参数的值;
所述根据所述目标应用的运行参数的值设置所述目标应用的优先级,具体包括:
设置所述第一目标应用为第一优先级,设置所述第二目标应用为第二优先级,所
述第一优先级的级别高于所述第二优先级的级别。
在一种可能的实现方式中,所述根据所述目标应用的运行参数的值设置所述目标
应用的优先级,包括:根据所述目标应用的运行参数的值设置所述目标应用的OOM ADJ值,
OOM ADJ值越小,对应的优先级越高。
在一种可能的实现方式中,所述方法还包括:
缓存所述目标应用的进程;
当接收到运行所述目标应用的指令时,调取缓存的所述目标应用的进程。
第二方面,本发明实施例提供了一种终端,包括:
确定模块,对多个应用的运行参数进行统计,确定目标应用,所述目标应用为所述
运行参数的值大于预设门限值的应用;及
设置模块,用于根据所述确定模块确定的所述目标应用的运行参数的值设置所述
目标应用的优先级,所述目标应用的运行参数的值越大,其优先级被设置得越高。
在一种可能的实现方式中,每个应用的运行参数的值是运行频率、运行时长、或对
运行频率和运行时长进行加权运算而得到的值;所述运行频率是预设的统计时间内该应用
启动的次数,所述运行时长是预设的统计时间内该应用运行时长。
在一种可能的实现方式中,所述确定模块,还用于确定一第一目标应用及一第二
目标应用,所述第一目标应用的运行参数的值大于所述第二目标应用的运行参数的值;
所述设置模块,还用于设置所述确定模块确定的所述第一目标应用为第一优先
级,设置所述第二目标应用为第二优先级,所述第一优先级的级别高于所述第二优先级的
级别。
在一种可能的实现方式中,所述设置模块,还用于根据所述确定模块确定的所述
目标应用的运行参数的值设置所述目标应用的OOM ADJ值,OOM ADJ值越小,对应的优先级
越高。
在一种可能的实现方式中,还包括缓存模块和调取模块;
所述缓存模块,用于缓存所述确定模块确定的所述目标应用的进程;
所述调取模块,用于当接收到运行所述目标应用的指令时,调取所述缓存模块缓
存的所述目标应用的进程。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,通过对多个应用的运行参数进行统计,确定目标应用,该应用可
以为一个应用,也可以为一个应用的集合。所述目标应用为所述运行参数的值大于预置门
限的应用。例如,手机里包括多个应用QQ、微信、网易云音乐、百度云网盘等等,可以对这些
应用进行统计,确定出那些用户常用的应用程序。根据所述目标应用的运行参数的值设置
所述目标应用的优先级,所述目标应用的运行参数的值越大,其优先级被设置得越高。由于
设置了目标应用为较高的优先级,避免了现有方式中,系统将常用的应用程序“杀掉”的风
险,从而极大了节省了加载时间,提高用户体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,还可
以根据这些附图获得其他的附图。
图1为本发明提供的一种应用的管理方法的一个实施例的步骤示意图;
图2为本发明提供的一种应用的管理方法的另一个实施例的步骤示意图;
图3为本发明提供的一种终端的一个实施例的结构示意图;
图4为本发明提供的一种终端的另一个实施例的结构示意图;
图5为本发明提供的一种终端的另一个实施例的结构示意图;
图6为本发明提供的一种终端的另一个实施例的结构示意图。
具体实施方式
本发明实施例提供了一种应用的管理方法及终端,用于避免用户常用的应用被
“杀掉”或降低用户常用的应用被“杀掉”的概率,缩短常用的目标应用加载的时间。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的
附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是
本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例所获得的所有其他
实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第
四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理
解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示
或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于
覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限
于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产
品或设备固有的其它步骤或单元。
本发明提供了一种应用的管理方法,该方法应用于一种终端,该终端可以为手机、
平板电脑、个人数字助理(Personal Digital Assistant,缩写:PDA)等,本发明实施例中该
终端可以以手机为例进行说明。例如,该手机中装载了多个应用,该应用可以为游戏应用,
例如“神庙逃亡”;可以为社交应用,例如“微信”;可以为购物类的应用,如“淘宝”;可以为学
习类应用,如“大学慕课”等等。
请参阅图1所示,本发明提供的一种应用的管理方法的一个实施例包括:
步骤101、对多个应用的运行参数进行统计,确定目标应用,所述目标应用为所述
运行参数的值大于预设门限值的应用。
首先,该终端装载了多个应用,该多个应用可以为微博,微信,QQ,网易云音乐,百
度云网盘等。通过对多个应用的运行参数进行统计,确定出目标应用。该运行参数可以为运
行频率,其中,所述运行频率是预设的统计时间内该应用启动的次数。下面对运行频率进行
举例说明,该运行频率为单位时间内该应用被切换到前台的次数。
该运行频率也可以理解为该应用的被用户使用的频率。每个用户对于每个应用的
使用习惯不同。例如,用户A在预置时长内使用“微信”的频率非常高,在四个小时内,点击
“微信”24次,也就是说“微信”平均每个小时被切换到前台的次数为6次,用户A平均每10分
钟刷一次朋友圈。该用户A的终端上“微信”的运行频率为6。运行频率的第一预置门限为3,
对该用户A的终端中的多个应用的运行频率进行统计,若运行频率大于3,则确定该应用为
目标应用,可以理解的是,当该应用为目标应用,也就表明,该目标应用为用户经常使用或
使用频率高的应用。
在另一种可能的实现方式中,该运行参数也看可以为运行时长,所述运行时长是
预设的统计时间内该应用运行时长。可以理解的是,该运行时长为预置时间段内应用被切
换到前台的累计时长。例如,运行时长的第二预置门限可以为2小时。例如,在一天24小时
内,“微博”被切换到前台的累计时长达到5个小时,“微博”的运行时长大于第二预置门限,
确定“微博”为目标应用。
需要说明的是,上述对于目标应用及预设门限值只是举例说明,并不造成对本发
明的限定性说明。目标应用可以为至少一个应用,并不限定应用的具体的数量,只要是运行
参数的值大于预设门限的应用均为目标应用。
优选的,在另一种可能的实现方式中,每个应用的运行参数的值是对运行频率和
运行时长进行加权运算而得到的值,当该应用的运行参数的值大于第三预设门限,则确定
该应用为目标应用。
其次,确定第一目标应用和第二目标应用。该目标应用可以包括第一目标应用和
第二目标应用等。其中,第一目标应用可以为一个应用,也可以为一个应用集合。例如,第一
目标应用可以为“微信”,或者,该第一目标应用也可以为社交类的应用,第一目标应用包括
“微信”和“QQ”。同理,第二目标应用可以为一个应用,也可以为一个目标应用的集合,此处
不赘述。
本发明实施例中,该第一目标应用可以包括“微信”和“微博”,第二目标应用为“邮
箱”为例进行说明。
然后,可选的,可以根据运行参数的参数值由大到小对第一目标应用和第二目标
应用进行排序。例如,“微信”的运行频率的值为5,“微博”的运行频率为5,而第二目标应用
“邮箱”的运行频率为3。第一目标应用的运行参数的值大于所述第二目标应用的运行参数
的值。
步骤102、根据所述目标应用的运行参数的值设置所述目标应用的优先级,所述目
标应用的运行参数的值越大,其优先级被设置得越高。
根据目标应用的运行参数的值设置目标应用的优先级,例如,请参阅表1所示:
表1
![]()
如上表1所示,设置所述第一目标应用为第一优先级,设置所述第二目标应用为第
二优先级,所述第一优先级的级别高于所述第二优先级的级别。
可选的,根据所述目标应用的运行参数的值设置所述目标应用的OOM ADJ值,OOM
ADJ值越小,对应的优先级越高。该OOM ADJ值与优先级具有映射关系。需要说明的是,每个
程序都会有一个OOM ADJ值,这个值越小,这个程序越重要,为了方便理解,下面对于该OOM
ADJ值通过举例进行简要说明。例如,当该OOM ADJ值为“0”,表示该程序为前台程序,用户正
在使用的程序;若OOM ADJ值为“1”,表示该程序为用户可见的程序;若OOM ADJ值为“2”,表
示该程序为后台程序,等等。OOM ADJ的数值越小,则被杀掉的概率越小。
本发明实施例中,可以根据目标应用的运行参数的值设置该OOM ADJ值,该OOM
ADJ值与优先级具有映射关系。例如,以“微信”为例,即使该“微信”即时已经退入后台,则可
以将该“微信”的OOM ADJ值设置为1,若该OOM ADJ值设置为1,该“微信”的优先级为第一级
别。以使“微信”不会被“杀掉”。
本发明实施例中,通过对终端中的多个应用的运行参数进行统计,确定目标应用,
该目标应用为用户常用的应用,设置该目标应用的优先级,将该目标应用设置为较高的优
先级,所述目标应用的运行参数的值越大,其优先级被设置得越高。从而避免用户常用的目
标应用被“杀掉”或降低用户常用的应用被“杀掉”的概率,缩短常用的目标应用加载的时
间。
步骤103、缓存所述目标应用的进程。
例如,开机时可以拉起目标应用的进行,并将该目标应用的进程缓存。
例如,“微信”的优先级别最高,表明“微信”为用户常用的应用,则缓存“微信”的进
程。
步骤104、当接收到运行所述目标应用的指令时,调取缓存的所述目标应用的进
程。
本发明实施例中,将用户常用的目标应用进行缓存,当目标应用被用户主动结束
进程(被“杀掉”)后或异常崩溃后,当接收到运行该目标应用的指令时,系统可以调取缓存
的该目标应用的进程,从而使应用可以更快被打开,节省用户的时间。
需要说明的是,步骤103和步骤104为可选步骤,可以不执行。
请参阅图2所示,本发明实施例提供了一种应用的管理方法的另一个实施例包括:
步骤201、对多个应用的运行参数进行统计,确定目标应用,所述目标应用为所述
运行参数的参数值大于预置门限的应用。
其中,所述运行参数包括运行频率和/或运行时长。所述运行频率是预设的统计时
间内该应用启动的次数。所述运行时长是预设的统计时间内该应用运行时长。
优选的,对所述多个应用中的每个应用的运行频率和运行时长进行加权计算,得
到每个应用的运行参数的值。确定所述统计值大于预置门限的应用为目标应用。
本步骤可以结合图1对应的实施例中的步骤101进行理解,此处不赘述。
步骤202、将所述目标应用的优先级别设置为高优先级。
所述优先级别为:OOM ADJ值的优先级,将该目标引用的OOM ADJ值设置为高优先
级,当OOM ADJ值为高优先级时,例如,该OOM ADJ值可以为“0”,或者也可以为“1”,或者也可
以设置为“2”,或者,主线程的进程优先级。可以理解的是,当该OOM ADJ值设置为“0”,
lowmemorykiller的内存管理机制会“认为”目标应用程序为用户正在使用的程序;若OOM
ADJ值设置为“1”,lowmemorykiller的内存管理机制“认为”该目标应用程序为用户可见的
程序;若OOM ADJ值设置为“2”,表示该程序为后台程序。OOM ADJ的数值越小,则被杀掉的概
率越小。
需要说明是,该目标应用的优先级的设置方法具体可以参阅图1对应的实施例中
的步骤101进行理解,该目标应用可以包括第一目标应用和第二目标应用,该第一目标应用
可以为至少一个引用,该第二目标应用可以为至少应用。通过比较第一目标应用和第二目
标应用的运行参数的值来设置目标应用的优先级,或者也可以根据运行参数的值按照从大
到小的顺序进行排序,该优先级与运行参数的值具有对应关系。
通常方法中,当终端内存不足时,lowmemorykiller的内存管理机制会将OOM ADJ
值的优先级较低的应用程序杀掉。而本发明中,将OOM ADJ值为高优先级,lowmemorykiller
的内存管理机制会“认为”该目标应用程序为当前正在运行的程序。因此,lowmemorykiller
不会将该目标应用的进程“杀掉”。避免了当用户再次点击打开应用时会出现很长的加载时
间,提高运行该目标应用的速度,节省用户时间,提高用户体验。
在另一种可能的实现方式中,该优先级为主线程的进程优先级,将该目标应用的
进程优先级设置为高优先级,从而降低该目标应用的进程被“杀掉”的概率,并可以使该应
用可以更快的被打开。
需要说明的是,步骤202为可选步骤,可以不执行,而直接执行步骤203。
步骤203、缓存所述目标应用的进程。
缓存该目标应用的进程。
可选的,可以根据该目标应用的优先级别缓存该目标应用的进程。例如,将优先级
别为高优先级或者将OOM ADJ值大于或者等于3的目标应用的进程进行缓存。
步骤204、当接收到运行所述目标应用的指令时,调取缓存的所述目标应用的进
程。本步骤可以参阅图1对应的实施例中的步骤104进行理解,此处不赘述。本发明实施例
中,通过对多个应用的运行参数进行统计,确定目标应用,该应用可以为一个应用,也可以
为一个应用的集合。所述目标应用为所述运行参数的参数值大于预置门限的应用。例如,手
机里包括多个应用QQ、微信、网易云音乐、百度云网盘等等,可以对这些应用进行统计,确定
出那些用户常用的应用程序。缓存这些用户常用的应用程序的进程。当用户需要再次运行
该目标应用时,系统就可以快速调取缓存的所述目标应用的进程。避免了现有方式中,系统
将常用的应用程序“杀掉”的风险,从而极大了节省了加载时间,提高用户体验。
上面对一种应用的管理方法进行了描述,下面对该应用的管理方法所应用的终端
进行描述,请参阅图3所示,本发明提供了一种终端300的一个实施例包括:
确定模块301,对多个应用的运行参数进行统计,确定目标应用,所述目标应用为
所述运行参数的值大于预设门限值的应用;及
设置模块302,用于根据所述确定模块301确定的所述目标应用的运行参数的值设
置所述目标应用的优先级,所述目标应用的运行参数的值越大,其优先级被设置得越高。
可选的,每个应用的运行参数的值是运行频率、运行时长、或对运行频率和运行时
长进行加权运算而得到的值;所述运行频率是预设的统计时间内该应用启动的次数,所述
运行时长是预设的统计时间内该应用运行时长。
可选的,所述确定模块301,还用于确定一第一目标应用及一第二目标应用,所述
第一目标应用的运行参数的值大于所述第二目标应用的运行参数的值。
所述设置模块302,还用于设置所述确定模块301确定的所述第一目标应用为第一
优先级,设置所述第二目标应用为第二优先级,所述第一优先级的级别高于所述第二优先
级的级别。
所述设置模块302,还用于根据所述确定模块301确定的所述目标应用的运行参数
的值设置所述目标应用的OOM ADJ值,OOM ADJ值越小,对应的优先级越高。
在图3对应的实施例的基础上,请参阅图4所示,本发明实施例还提供了一种终端
400的另一个实施例包括:
可选的,还包括缓存模块303和调取模块304;
所述缓存模块303,用于缓存所述设置模块302设置优先级后的所述目标应用的进
程;
所述调取模块304,用于当接收到运行所述目标应用的指令时,调取所述缓存模块
303缓存的所述目标应用的进程。
请参阅图5所示,本发明实施例提供了一种终端500的另一个实施例包括:
确定模块301,用于对多个应用的运行参数进行统计,确定目标应用,所述目标应
用为所述运行参数的参数值大于预置门限的应用。
其中,所述运行参数包括运行频率和/或运行时长。所述运行频率是预设的统计时
间内该应用启动的次数。所述运行时长是预设的统计时间内该应用运行时长。
缓存模块303,用于缓存所述确定模块301确定的目标应用。
调取模块304,用于当接收到运行所述目标应用的指令时,调取所述缓存模块303
缓存的所述目标应用的进程。
在图5对应的基础上,请参阅图6所示,本发明实施例还提供了一种终端600的另一
个实施例包括:
设置模块302,用于将确定模块301确定的所述目标应用的优先级别设置为高优先
级。
所述缓存模块303,还用于根据目标应用的优先级别缓存目标应用。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,
装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以
通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的
划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上
或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式
体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全
部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only
Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程
序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前
述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前
述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些
修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。