一种应用程序的清理方法和装置与流程

文档序号:12270991阅读:334来源:国知局
一种应用程序的清理方法和装置与流程

本发明涉及智能终端技术领域,尤其涉及一种应用程序的清理方法和装置。



背景技术:

随着通讯技术的发展,移动终端被越来越广泛的使用,用户可以在移动终端上安装各类应用程序,并通过安装的应用程序执行对应的操作。目前,应用程序的类型涉及生活的方方面面,一台移动终端中往往安装有十几个或数十个应用程序。移动终端在使用过程中,后台运行着大量的应用程序,占用了移动终端的大量内存,使得移动终端运行不流畅以及增加了电量消耗。

目前,现有技术在清理这些后台应用程序时直接关闭所有后台应用程序,容易将用户需要的后台应用程序清理掉,严重影响了用户的使用。



技术实现要素:

本发明实施例提供了一种应用程序的清理方法和装置,能够将用户最近打开的应用程序从需要清理的应用程序中剔除并进行清理,避免直接关闭所有应用程序而导致影响用户使用的情况。

本发明实施例提供的一种应用程序的清理方法,包括:

确定所述终端上用户打开的应用程序中使用时间最接近当前系统时间的N个应用程序,N为预设的正整数;

将所述N个应用程序从后台程序集合中剔除,所述后台程序集合包括所述终端上所有在后台运行的应用程序;

对所述后台程序集合中的应用程序进行清理。

可选地,在将所述N个应用程序从后台程序集合中剔除之后,且在对所述后台程序集合中的应用程序进行清理之前,还包括:

获取所述后台程序集合中各个应用程序的预设优先级;

将优先级满足预设的优先级条件的应用程序从所述后台程序集合中剔除。

可选地,在将优先级满足预设的优先级条件的应用程序从所述后台程序集合中剔除之后,且在对所述后台程序集合中的应用程序进行清理之前,还包括:

将所述终端上受保护的应用程序从所述后台程序集合中剔除。

可选地,所述获取所述后台程序集合中各个应用程序的预设优先级具体为:

获取所述各个应用程序的IMPORTANCE等级;

所述将优先级满足预设的优先级条件的应用程序从所述后台程序集合中剔除具体为:

将IMPORTANCE等级的值小于预设的等级阈值的应用程序从所述后台程序集合中剔除。

可选地,所述后台程序集合由以下步骤得到:

获取所述终端上正在后台运行的所有应用程序;

将获取到的所述所有应用程序确定为所述后台程序集合。

本发明实施例提供的一种应用程序的清理装置,包括:

最近打开程序确定模块,用于确定所述终端上用户打开的应用程序中使用时间最接近当前系统时间的N个应用程序,N为预设的正整数;

最近打开程序剔除模块,用于将所述N个应用程序从后台程序集合中剔除,所述后台程序集合包括所述终端上所有在后台运行的应用程序;

清理模块,用于对所述后台程序集合中的应用程序进行清理。

可选地,所述清理装置还包括:

程序优先级获取模块,用于获取所述后台程序集合中各个应用程序的预设优先级;

满足条件剔除模块,用于在所述最近打开程序剔除模块触发之后,将优先级满足预设的优先级条件的应用程序从所述后台程序集合中剔除。

可选地,所述清理装置还包括:

受保护程序剔除模块,用于在所述满足条件剔除模块触发之后,将所述终端上受保护的应用程序从所述后台程序集合中剔除。

可选地,所述程序优先级获取模块具体用于获取所述各个应用程序的IMPORTANCE等级;

所述满足条件剔除模块具体用于将IMPORTANCE等级的值小于预设的等级阈值的应用程序从所述后台程序集合中剔除。

可选地,所述后台程序集合由触发以下模块得到:

后台程序获取模块,用于获取所述终端上正在后台运行的所有应用程序;

程序集合确定模块,用于将获取到的所述所有应用程序确定为所述后台程序集合。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例中,首先,确定所述终端上用户打开的应用程序中使用时间最接近当前系统时间的N个应用程序,N为预设的正整数;然后,将所述N个应用程序从后台程序集合中剔除,所述后台程序集合包括所述终端上所有在后台运行的应用程序;最后,对所述后台程序集合中的应用程序进行清理,从而可以将用户最近打开的应用程序从需要清理的应用程序中剔除并进行清理,避免直接关闭所有应用程序而导致影响用户使用的情况。

附图说明

图1为本发明实施例中一种应用程序的清理方法一个实施例流程图;

图2为本发明实施例中一种应用程序的清理方法一个应用场景下的终端处理流程示意图;

图3为本发明实施例中一种应用程序的清理装置一个实施例结构图。

具体实施方式

本发明实施例提供了一种应用程序的清理方法和装置,用于解决在清理后台应用程序时直接关闭所有后台应用程序,容易将用户需要的后台应用程序清理掉的问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例中一种应用程序的清理方法一个实施例包括:

101、确定所述终端上用户打开的应用程序中使用时间最接近当前系统时间的N个应用程序,N为预设的正整数;

102、将所述N个应用程序从后台程序集合中剔除,所述后台程序集合包括所述终端上所有在后台运行的应用程序;

103、对所述后台程序集合中的应用程序进行清理。

上述的应用程序是指所述终端上运行的程序或进程,例如手机的应用APP,其还可以包括终端系统的后台服务(SERVICE)。

对于上述步骤101和102,可以获取所述终端上用户最近打开的N个应用程序,然后将所述N个应用程序从所述各个应用程序中剔除。其中,N为预设的正整数。

其中,“用户最近打开的N个应用程序”是指用户主动使用的应用程序中,其使用时间最靠近当前系统时间的N个应用程序。比如,用户最近打开了的应用程序依次为A、B、C、D和E,A的打开时间最晚,E的打开时间最早,假设N取3,则确定所述N个应用程序为A、B和C。其中,上述“使用时间”可以指的是用户使用某个应用程序的时间,这里说的使用可以是指应用程序从未启动到启动,也可以是指应用程序从后台运行切换至前台运行。

在实际应用中,所述终端上用户最近打开的N个应用程序往往会被用户再次打开,为了保证应用程序再次打开的速度,提高终端带给用户的使用体验,应当不对这些最近打开的应用程序进行清理。另外一个原因是,这些最近打开的应用程序很可能正在后台完成一些比较重要的工作,例如文件的下载、网页的缓存等等,此时若清理掉这部分应用程序,将给用户的使用带来不便,因此将这些最近打开的N个应用程序从各个应用程序中剔除掉,以避免其被清理。其中,剔除掉应用程序指的是将指定的应用程序从所述各个应用程序的“集合”中排除,例如若所述各个应用程序加入至清理列表中,则将上述N个应用程序从清理列表中移除;若所述各个应用程序打上了标记,则将上述N个应用程序的标记清除。下面关于“剔除”的表达与本部分同理,不再对此进行赘述。

另外,对于上述步骤101,N的大小可以根据实际使用情况来设定,比如可以设定为5,因为对于一般用户来说,最近执行的前5个应用程序的保留,足以不影响用户的使用。

上述步骤101中,对于安卓系统而言,安卓系统可以打开的Activity都会以任务栈的形式存储起来,系统服务ActivityManager中getRecentTasks可以通过检索任务栈按时间顺序排序出最近任务(也即用户最近打开的应用程序),从而取其中排行前N个应用程序进行剔除。需要说明的是,上述“用户最近打开的应用程序”与最近执行的应用程序不同。用户最近打开的应用程序是指该终端上用户最近通过“点击”、触摸、滑动等操作打开的应用程序,而最近执行的应用程序不仅包括了用户打开的应用程序,也包括终端后台自启动的应用程序。可以理解的是,在最近执行的应用程序中,只有用户打开的应用程序才能确定为用户需要的应用程序,而后台自启动的应用程序往往是用户希望清理掉的应用程序。

对于上述步骤102,所述后台程序集合由以下步骤得到:获取所述终端上正在后台运行的所有应用程序,将获取到的所述所有应用程序确定为所述后台程序集合。本实施例中,可以获取终端上正在后台运行的各个应用程序,其触发条件可以是:监听所述终端上清理应用程序的清理事件,当监听到清理事件被触发时,执行获取所述终端上正在后台运行的所有应用程序的步骤;或者,在预设时间间隔内触发一次,例如每10分钟执行一次本实施例中应用程序的清理方法,则每10分钟执行一次获取所述终端上正在后台运行的所有应用程序的步骤以及后续步骤;对此本实施例不作具体限定。

在本实施例中,具体地,可以通过系统服务ActivityManager中getRunningAppProcesses命令获取终端当前运行的应用程序。优选地,上述的后台程序集合也可以为后台程序列表,以列表的形式将获取到的所述所有应用程序保存起来。

进一步地,在将所述N个应用程序从后台程序集合中剔除之后,可以获取所述后台程序集合中各个应用程序的预设优先级,将优先级满足预设的优先级条件的应用程序从所述后台程序集合中剔除。可以理解的是,各个应用程序可以预设有不同的优先级,在对比各个应用程序之间的优先级之后,可以将满足优先级条件的应用程序剔除,比如可以将优先级高于某个预置优先级阈值的应用程序剔除,也可以优先级排行前M(M为正整数)个应用程序剔除,从而保证优先级较高的部分应用程序不被清理掉。

具体地,所述优先级可以是各个应用程序的IMPORTANCE等级。在系统中,应用程序的IMPORTANCE等级的分级情况如下:

IMPORTANCE_FOREGROUND,值为100,表示应用程序前台可见,比如用户当前打开的应用;

IMPORTANCE_PERCEPTIBLE,值为130,表示应用程序可被感知,比如后台音乐播放;

IMPORTANCE_VISIBLE,值为200,表示应用程序无焦点,但对用户可见,比如被新窗口遮住部分的应用程序;

IMPORTANCE_SERVICE,值为300,表示应用程序有后台服务在运行;

IMPORTANCE_BACKGROUND,值为400,表示应用程序处于后台运行,但没有做事情;

IMPORTANCE_EMPTY,值为500,表示空进程。

上述IMPORTANCE等级的值越小,代表应用程序的重要性越高。因此IMPORTANCE等级的排序为:IMPORTANCE_FOREGROUND>IMPORTANCE_PERCEPTIBLE>IMPORTANCE_VISIBLE>IMPORTANCE_SERVICE>IMPORTANCE_BACKGROUND>IMPORTANCE_EMPTY。

因此,所述将所述各个应用程序中满足预设的优先级条件的应用程序剔除具体可以为:将IMPORTANCE等级的值小于预设的等级阈值的应用程序从所述各个应用程序中剔除。IMPORTANCE等级大于或等于IMPORTANCE_VISIBLE的应用程序为用户能够感知到的,为了避免出现清理掉这些能被感知的应用程序而使得用户感觉到异常的情况,对这些能被感知的应用程序不予清理。所以,所述等级阈值可以参考IMPORTANCE_VISIBLE的值进行取值,例如201,从而使得IMPORTANCE_FOREGROUND、IMPORTANCE_PERCEPTIBLE和IMPORTANCE_VISIBLE均满足条件而从各个应用程序中剔除。

更进一步地,在将优先级满足预设的优先级条件的应用程序从所述后台程序集合中剔除之后,可以将所述终端上受保护的应用程序从所述后台程序集合中剔除。可以理解的是,在终端的系统上,可能存在受保护的应用程序,这些受保护的应用程序可以记录在终端的受保护应用列表中,也可以记录在常用应用列表中。另外,受保护的应用程序还可以包括与终端的操作系统相关的核心进程。对于受保护的应用程序,用户可以根据自己的需要自行添加或删除。用户添加后,受保护的应用程序可以以数据库或者文件的形式存储起来,在遍历受保护应用列表或者常用应用列表的时候读取出来。此类应用是用户想一直保持状态的应用程序,应当不予清除,因此将此类应用从各个应用程序中移除剔除。

需要说明的是,本实施例中,先从各个应用程序中将用户最近打开的应用程序剔除,然后将优先级较高的应用程序剔除,最后将受保护的应用程序剔除,从而保证了剩下来的应用程序并非以上这些用户必须的或可能需要的应用程序,而是用户不需要的或者用户想要清理的应用程序。利用排除法的思想,在尽可能保留用户所需的应用程序的同时,也尽最大能力地将其余的应用程序清理掉,既不会影响用户的使用,又能达到彻底清理后台应用的目的。

对于上述步骤103,在对后台程序集合进行程序的剔除,剩下的应用程序即为待清理的应用程序,可以对所述后台程序集合中的应用程序进行清理。具体地,可以通过系统forceStopPackage命令来强制停止这些后台程序集合中的应用程序,强制停止的应用程序在用户主动启动之前不会自行启动。

进一步地,对所述后台程序集合中的应用程序进行清理具体可以包括:

1)筛选出所述后台程序集合的应用程序中携带有自启参数的应用程序;

2)强制停止所述携带有自启参数的应用程序;

3)关闭所述后台程序集合中的应用程序中未携带有自启参数的应用程序。

其中,上述步骤1)可以根据所述应用程序的进程信息筛选出所述后台程序集合的应用程序中携带有自启参数的应用程序。上述步骤2)中,可以先查找出携带有自启参数的应用程序对应的应用安装包,然后强制停止应用安装包中能够用于自启进程的安装包。

可以理解的是,对后台程序集合的应用程序进行分类清理,可以自启动的应用程序采用强制停止,不可以自启动的应用程序采用常用的关闭操作进行清理,可以在提高释放后台内存效果的前提下,减少系统资源的消耗。

进一步地,本实施例中,在对所述后台程序集合的应用程序进行清理之后,检测所述后台程序集合的应用程序是否自启动,若是,则上报所述应用程序的自启动信息。由于强制停止的应用程序一般不会在用户启动之前自启动,因此当发现强制清理后的所述后台程序集合的应用程序中存在自启动的应用程序时,可以认为该自启动的应用程序存在异常,甚至该应用程序可能为“病毒”,此时应当上报该自启动的应用程序的自启动信息至用户或服务器,起到提醒用户的作用或者为服务器提供分析数据,以便于后续的操作或异常应用程序的清理。

本实施例中,首先,确定所述终端上用户打开的应用程序中使用时间最接近当前系统时间的N个应用程序,N为预设的正整数;然后,将所述N个应用程序从后台程序集合中剔除,所述后台程序集合包括所述终端上所有在后台运行的应用程序;最后,对所述后台程序集合中的应用程序进行清理,从而可以将用户最近打开的应用程序从需要清理的应用程序中剔除并进行清理,避免直接关闭所有应用程序而导致影响用户使用的情况。

为便于理解,根据图1所描述的实施例,下面以一个实际应用场景对本发明实施例中的一种应用程序的清理方法进行描述:

图2示出了本发明实施例中一种应用程序的清理方法一个应用场景下的终端处理流程示意图。

本应用场景下,该终端可以为智能手机、平板电脑、个人计算机等智能设备。终端采用该应用程序的清理方法,具体步骤包括:

1、开始时,获取终端上正在运行的应用程序;

2、将这些获取到的应用程序加入清理列表;

3、获取终端最近执行的5个应用程序;

4、判断这5个应用程序是否在清理列表中,若是,则执行步骤5,若否,则执行步骤6;

5、将清理列表中属于这5个应用程序的应用程序剔除,执行步骤6;

6、判断清理列表中是否存在高优先级的应用程序,若是,则执行步骤7,若否,则执行步骤8;

7、将清理列表中高优先级的应用程序剔除,执行步骤8;

8、获取终端上的受保护应用列表;

9、判断受保护应用列表中的应用程序是否在所述清理列表中,若是,在执行步骤10,若否,则执行步骤11;

10、将清理列表中属于受保护应用列表中的应用程序剔除,执行步骤11;

11、强制停止清理列表中的应用程序,结束。

上面主要描述了一种应用程序的清理方法,下面将对一种应用程序的清理装置进行详细描述。

图3示出了本发明实施例中一种应用程序的清理装置一个实施例结构图。

本实施例中,一种应用程序的清理装置包括:

最近打开程序确定模块301,用于确定所述终端上用户打开的应用程序中使用时间最接近当前系统时间的N个应用程序,N为预设的正整数;

最近打开程序剔除模块302,用于将所述N个应用程序从后台程序集合中剔除,所述后台程序集合包括所述终端上所有在后台运行的应用程序;

清理模块303,用于对所述后台程序集合中的应用程序进行清理。

进一步地,所述清理装置还可以包括:

程序优先级获取模块,用于获取所述后台程序集合中各个应用程序的预设优先级;

满足条件剔除模块,用于在所述最近打开程序剔除模块触发之后,将优先级满足预设的优先级条件的应用程序从所述后台程序集合中剔除。

进一步地,所述清理装置还可以包括:

受保护程序剔除模块,用于在所述满足条件剔除模块触发之后,将所述终端上受保护的应用程序从所述后台程序集合中剔除。

进一步地,所述程序优先级获取模块具体可以用于获取所述各个应用程序的IMPORTANCE等级;

所述满足条件剔除模块具体可以用于将IMPORTANCE等级的值小于预设的等级阈值的应用程序从所述后台程序集合中剔除。

进一步地,所述后台程序集合可以由触发以下模块得到:

后台程序获取模块,用于获取所述终端上正在后台运行的所有应用程序;

程序集合确定模块,用于将获取到的所述所有应用程序确定为所述后台程序集合。

进一步地,所述清理模块具体可以包括:

自启应用筛选单元,用于筛选出所述待清理的应用程序中携带有自启参数的应用程序;

自启应用停止单元,用于强制停止所述携带有自启参数的应用程序;

非自启应用关闭单元,用于关闭所述待清理的应用程序中未携带有自启参数的应用程序。

进一步地,所述清理装置还可以包括:

自启动检测模块,用于在触发所述清理模块之后,检测所述待清理的应用程序是否自启动;

上报模块,用于当所述自启动检测模块的检测结果为是时,上报所述应用程序的自启动信息。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1