掌桥专利:专业的专利平台
掌桥专利
首页

应用程序运行方法、装置、存储介质以及终端

文献发布时间:2023-06-19 11:52:33


应用程序运行方法、装置、存储介质以及终端

技术领域

本申请涉及应用程序技术开发技术领域,尤其涉及一种应用程序运行方法、装置、存储介质以及终端。

背景技术

随着科学技术的发展,终端也越来越多地出现在人们生活中,人们可以运行终端中的各种应用程序去实现各种功能,因此关于终端中应用程序的运行方法也成为本领域技术人员研究的重点之一。

发明内容

本申请提供一种应用程序运行方法、装置、存储介质以及终端,可以解决相关技术中应用程序处于后台之后,很容易就被系统清理、退出,当用户再次打开这类应用程序时用户需要等待较长时间的技术问题。

第一方面,本申请提供一种应用程序运行方法,该所述方法包括:

监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单;

对处于所述保护名单中的目标应用程序进行后台运行保护。

第二方面,本申请提供一种应用程序运行装置,该装置包括:

名单获取模块,用于监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单;

程序保护模块,用于对处于所述保护名单中的目标应用程序进行后台运行保护。

第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法的步骤。

第四方面,本申请实施例提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

本申请提供一种应用程序运行方法,首先监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单,然后对处于保护名单中的目标应用程序进行后台运行保护。当监测到有应用程序处于后台之后,可以生成当前处于后台的所有应用程序对应的保护名单,那么可以对处于保护名单中的目标应用程序进行后台运行保护,当对目标应用程序进行后台运行保护之后,目标应用程序不会被系统清理、退出,当用户再次打开目标应用程序时可以实现热启动,大大减少了用户启动目标应用程序的时间。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种应用程序运行方法的示例性系统架构图;

图2为本申请实施例提供的一种应用程序运行方法的系统交互图;

图3为本申请实施例提供的一种应用程序运行方法的流程示意图;

图4为本申请另一实施例提供的一种应用程序运行方法的流程示意图;

图5为本申请另一实施例提供的保护名单的生成示意图;

图6为本申请另一实施例提供的一种应用程序运行方法的流程示意图;

图7为本申请另一实施例提供的一种用户输入后台保护启动指令的示意图;

图8为本申请另一实施例提供的一种应用程序运行装置的结构示意图;

图9为本申请另一实施例提供的一种应用程序运行装置的结构示意图;

图10为本申请另一实施例提供的一种应用程序运行装置的结构示意图;

图11为本申请实施例提供了一种终端的结构示意图。

具体实施方式

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

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

图1为本申请实施例提供的一种应用程序运行方法的示例性系统架构图。

如图1所示,系统架构可以包括终端101、网络102和服务器103。网络102用于在终端101和服务器103之间提供通信链路的介质。网络102可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(Wireless-Fidelity,Wi-Fi)通信链路或微波通信链路等。

终端101可以通过网络102与服务器103交互,以接收来自服务器103的消息或向服务器103发送消息。终端101可以是硬件,也可以是软件。当终端101为硬件时,可以是各种电子设备,包括但不限于智能手表、智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当终端101为软件时,可以是安装在上述所列举的电子设备中,其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。

服务器103可以是提供各种服务的业务服务器。需要说明的是,服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。

应理解,图1中的终端、网络以及服务器的数目仅是示意性的,根据实现需要,可以是任意数量的终端、网络以及服务器。

请参阅图2,图2为本申请实施例提供的一种应用程序运行方法的系统交互图,可以理解的,在本申请实施例中,执行主体可以终端或者终端中的处理器,还可以是终端中执行应用程序运行的相关服务,为方便描述下面以执行主体为终端中的处理器为例,结合图1和图2介绍一种应用程序运行方法中系统交互过程。

S201、用户将应用程序退入至后台。

S202、监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

可选地,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单,包括:获取当前处于后台的所有应用程序的使用数据,以及根据使用数据确定所有应用程序各自对应的使用偏好值;根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单。

可选地,根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单,包括:按照使用偏好值由高到低的优先级排列规则,对所有应用程序进行优先级排序并得到排序表;基于所有应用程序各自对应的优先级顺序、所有应用程序各自对应的当前占用运行内存以及预设运行内存阈值实时生成保护名单;其中,保护名单中的各目标应用程序对应的当前占用运行内存总和小于预设运行内存阈值,且保护名单中的任一目标应用程序在排序表中的优先级大于不处于保护名单中的任一应用程序的优先级。

S203、对处于保护名单中的目标应用程序进行后台运行保护。

可选地,对处于保护名单中的目标应用程序进行后台运行保护,包括:在后台将处于保护名单中的目标应用程序锁定为运行状态,以及对目标应用程序的目标功能进行后台冻结;开启目标应用程序对应的网络防火墙,其中,防火墙用于控制目标应用程序的网络连接状态,且防火墙开启时目标应用程序的网络连接状态为断开状态;向目标应用程序对应服务器发送异常数据包,异常数据包携带有目标应用程序的网络连接状态,异常数据包用于指示服务器在目标应用程序的网络连接状态为连通状态时,与目标应用程序建立通信。

可选地,对处于保护名单中的目标应用程序进行后台运行保护,包括:监测终端的实时可用运行内存;当实时可用运行内存大于第一清理运行内存阈值且小于第二清理运行内存阈值时,退出预设清理名单中处于后台的至少一个待清理应用程序,直至实时占用运行内存小于或者等于第一清理运行内存阈值;当实时可用运行内存大于第二清理运行内存阈值时,退出保护名单中优先级最小的至少一个待清理目标应用程序,直至实时占用运行内存小于或者等于第二清理运行内存阈值;从保护名单中删除待清理目标应用程序,以及基于当前处于后台的所有应用程序的历史使用数据更新保护名单。

可选地,对处于保护名单中的目标应用程序进行后台运行保护,包括:将处于保护名单中的目标应用程序在运行内存中占用的内存转移预设容量的内存至只读内存中,以及在目标应用程序处于前台时将预设容量的内存恢复至运行内存中。

可选地,在后台中对第一目标应用程序进行运行保护之后,还包括:监测处于保护名单中的目标应用程序的运行状态,若监测到目标应用程序中的异常目标应用程序退出之后,基于当前处于后台的所有应用程序的历史使用数据更新保护名单。

可选地,获取当前处于后台的所有应用程序的使用数据,以及根据使用数据确定所有应用程序各自对应的使用偏好值,包括:获取当前处于后台的所有应用程序的使用数据,使用数据至少包括距离当前时间的预设周期内应用程序的打开次数以及在前台运行的总时长;根据使用数据以及使用偏好值公式计算所有应用程序各自对应的使用偏好值;

其中,使用偏好值公式为:

y为应用程序的使用偏好值,x为预设时间段内距离当前时间的某一时间,t

可选地,监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单之前,还包括:接收用户输入的后台保护启动指令,基于后台保护启动指令执行监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

可选地,应用程序为预设类型的应用程序,预设类型的应用程序冷启动时间大于预设启动时间。

在本申请实施例中,首先监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单,然后对处于保护名单中的目标应用程序进行后台运行保护。当监测到有应用程序处于后台之后,可以生成当前处于后台的所有应用程序对应的保护名单,那么可以对处于保护名单中的目标应用程序进行后台运行保护,当对目标应用程序进行后台运行保护之后,目标应用程序不会被系统清理、退出,当用户再次打开目标应用程序时可以实现热启动,大大减少了用户启动目标应用程序的时间。

请参阅图3,图3为本申请实施例提供的一种应用程序运行方法的流程示意图。

如图3所示,应用程序运行方法包括:

S301、监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

在相关技术中,对于一些启动时间较长的应用程序,例如,游戏类应用程序,这类应用程序启动时由于要加载动画、游戏资源,启动时长较长;而且这类应用程序由于其本身的特殊性(占用较多的运行内存),当这类型应用程序处于后台之后,很容易就被系统清理、退出,当用户再次打开这类应用程序时无法热启动,造成用户等待较长时间的问题。

针对上述技术问题,可以在终端启动之后,通过预设组件或者函数监测应用程序的在前台以及后台之间的运行状态,当监测到应用程序处于后台之后,可以先获取当前处于后台的所有应用程序的历史使用数据,应用程序的历史使用数据反映了用户在一段时间内对该应用程序的使用情况,如果该应用程序使用情况较为频繁,那么可以认为在该应用程序处于后台之后,需要对该应用程序进行后台保护,避免该应用程序被系统后台退出或者清理掉。

因此在获取当前处于后台的所有应用程序的历史使用数据之后,可以根据预设规则、算法或者公式判断需要保护的应用程序并实时生成保护名单。其中,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单的方式可以多样的,例如,可以根据用户在预设时间内对应用程序的使用习惯或者使用偏好值确定保护名单,还可以根据当前终端的使用场景确定保护名单,此处不限定实时生成保护名单的依据。

S302、对处于保护名单中的目标应用程序进行后台运行保护。

在基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单之后,可以确定保护名单中所有的应用程序为目标应用程序,并对目标应用程序进行后台运行保护,以使得目标应用程序不被系统退出或者清理,目标应用程序的重要组件或者数据处于运行状态,那么当用户需要将处于后台的一个或者多个目标应用程序启动至前台时,可以直接将处于后台的目标应用程序进行热启动,可以大大节约目标应用程序的启动时间。

可选地,由于游戏类型的应用程序或者设计类型的应用程序,其冷启动时间较长,那么可以仅仅针对上述类型的应用程序进行后台保护,也即上述应用程序为预设类型的应用程序,可以定义预设类型的应用程序冷启动时间大于预设启动时间,那么可以监测到预设类型的应用程序处于后台之后,基于当前处于后台的所有预设类型的应用程序的历史使用数据实时生成保护名单,以及对处于保护名单中的预设类型的目标应用程序进行后台运行保护。这样操作的好处是,可以不必对一些冷启动较快的应用程序也进行后台保护,仅仅对冷启动时间较长的预设类型的应用程序进行后台保护,可以大大降低终端的数据处理量,减少功耗。

在本申请实施例中,首先监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单,然后对处于保护名单中的目标应用程序进行后台运行保护。当监测到有应用程序处于后台之后,可以生成当前处于后台的所有应用程序对应的保护名单,那么可以对处于保护名单中的目标应用程序进行后台运行保护,当对目标应用程序进行后台运行保护之后,目标应用程序不会被系统清理、退出,当用户再次打开目标应用程序时可以实现热启动,大大减少了用户启动目标应用程序的时间。

请参阅图4,图4为本申请另一实施例提供的一种应用程序运行方法的流程示意图。

如图4所示,应用程序运行方法包括:

S401、监测到应用程序处于后台之后,获取当前处于后台的所有应用程序的使用数据,以及根据使用数据确定所有应用程序各自对应的使用偏好值。

在本申请实施例中,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单的方式可以多样的,一种可行的方式是,基于用户对各应用程序的使用偏好值确定保护名单,其中应用程序的使用偏好值代表了预设时间内用户对该应用程序的爱好程度或者使用频繁度,应用程序的使用偏好值越高,那么代表在预设时间内用户对该应用程序的爱好程度越高或者使用频繁度越高。

可选的,可以在监测到应用程序处于后台之后,获取当前处于后台的所有应用程序的使用数据,以及根据使用数据确定所有应用程序各自对应的使用偏好值。其中,获取当前处于后台的所有应用程序的使用数据的方法可以是,通过预设组件或者函数周期性记录所有应用程序的使用数据,并保存在制定位置,以便于在监测到应用程序处于后台之后,可以快速获取处于后台的所有应用程序的使用数据。关于根据使用数据确定所有应用程序各自对应的使用偏好值的方法可以是,根据预设偏好值计算公式确定各应用程序的使用偏好值。

具体的,获取当前处于后台的所有应用程序的使用数据,其中使用数据至少包括距离当前时间的预设周期内应用程序的打开次数以及在前台运行的总时长,那么根据使用数据以及使用偏好值公式计算所有应用程序各自对应的使用偏好值,其中,使用偏好值公式为:

y为应用程序的使用偏好值,x为预设时间段内距离当前时间的某一时间,t

其中,n对应的数值可以根据用户需要进行自由设置,还可以通过机器学习算法根据用户日常使用中应用程序的打开次数与应用程序在前台运行的总时长的数据,计算出符合用户使用习惯的数值。例如,当针对某一应用程序,在预设时间内,用户打开该应用程序的次数较多,但是每次打开之后在前台的运行时间较短,代表用户可能只是误触应用程序的次数较多,那么可以减少n的数值,以减少应用程序的打开次数相较于在前台运行的总时长的权重。

S402、根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单。

在获取当前处于后台的所有应用程序各自对应的使用偏好值之后,还可以获取预设运行内存阈值,其中预设运行内存阈值为专门为保护后台中的某一些应用程序而设置的阈值,因为在实际应用中,终端中最大运行内存对应的容量是一定的,运行内存对应的容量也即随机存取存储器(Random Access Memory,RAM)的容量,例如,某一终端其最大运行内存为8G。那么为了保证终端系统中其它必要应程序的运行,不可能将所有的运行内存都用来保护处于后台的应用程序,因此只能在预设运行内存阈值对应的范围以内,对处于后台的应用程序进行保护。

那么可以根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单,具体的,首先按照使用偏好值由高到低的优先级排列规则,对所有应用程序进行优先级排序并得到排序表,其中在上述步骤中,已经根据使用数据确定所有应用程序各自对应的使用偏好值,因此这里可以直接获取所有应用程序各自对应的使用偏好值。

然后基于所有应用程序各自对应的优先级顺序、所有应用程序各自对应的当前占用运行内存以及预设运行内存阈值实时生成保护名单,其中,保护名单中的各目标应用程序对应的当前占用运行内存总和小于预设运行内存阈值,且保护名单中的任一目标应用程序在排序表中的优先级大于不处于保护名单中的任一应用程序的优先级。

其中,保护名单中的各目标应用程序对应的当前占用运行内存总和小于预设运行内存阈值,代表了在预设运行内存阈值对应的范围内,最多可以容纳的一定数量的目标应用程序;保护名单中的任一目标应用程序在排序表中的优先级大于不处于保护名单中的任一应用程序的优先级,代表了在可以最多可以容纳的一定数量的目标应用程序的前提下,保护名单中的目标应用程序均为排序靠前的应用程序,以满足用户的使用偏好。关于具体获取保护名单的过程,可以参阅图5中保护名单的生成过程。

请参阅图5,图5为本申请另一实施例提供的保护名单的生成示意图。

如图5所示,排序表510中列出了所有应用程序对应的优先级顺序,其中第一应用程序的在排序表510中序号为1,其对应的优先级为1(优先级对应的数值越低,其对应的优先级越高),第二应用程序的在排序表510中序号为2,其对应的优先级为2,第三应用程序的在排序表510中序号为3,其对应的优先级为3,第四应用程序的在排序表510中序号为4,其对应的优先级为4,第五应用程序的在排序表510中序号为5,其对应的优先级为5。

分别获取各排序表中各应用程序在后台的当前占用运行内存,分别为第一应用程序的当前占用运行内存为200M,第二应用程序的当前占用运行内存为300M,第三应用程序的当前占用运行内存为500M,第四应用程序的当前占用运行内存为100M,第五应用程序的当前占用运行内存为900M,其中预设运行内存阈值为15000M,那么可以按照各应用程序在排序表510中的排序,先计算第一应用程序的当前占用运行内存是否小于预设运行内存阈值,若符合,则计算第一应用程序的当前占用运行内存加上第二应用程序的当前占用运行内存是否小于预设运行内存阈值,...,直至一定数量的应用程序的当前占用运行内存累加值大于预设运行内存阈值时停止累加,获取当前占用运行内存累加值小于或者等于预设运行内存阈值对应的所有目标应用程序,根据各目标应用程序实时生成保护名单。在图5中,第一应用程序至第五应用程序的当前占用运行内存累加值大于预设运行内存阈值,且第一应用程序至第四应用程序的当前占用运行内存累加值小于预设运行内存阈值,因此可以确定保护名单520中的目标应用程序为第一应用程序、第二应用程序、第三应用程序以及第四应用程序,且第一应用程序、第二应用程序、第三应用程序以及第四应用程序的优先级,均大于不处于保护名单520中的第五应用程序的优先级。

在上述实施例中描述了根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单,在一些实施例中,还可以根据当前的环境参数确定保护名单,例如,首先通过预设系统接口获取终端当前的环境参数,环境参数至少包括当前位置参数、当前时间参数以及当前使用场景参数中的一种或者多种,终端当前的环境参数代表了用户所处环境,那么在不同的环境参数下用户需要启动的应用程序也不一样,也即终端当前的环境参数可以一定程度上反应用户使用某一些应用程序的习惯或者喜好。

还可以通过预设系统接口获取现在处于后台的所有应用程序的预设参数,预设参数至少包括预设时间内的启动时间、累积运行时间、启动次数、启动地点以及使用场景中的一种或者多种,预设参数可以反映预设时间内各应用程序在某些时刻的实际运行情况,那么可以根据环境参数以及预设参数计算终端当前处于后台的所有应用程序的保护优先级,各应用程序的保护优先级反映了当前时刻用户持续使用应用程序或者随时启动应用程序的程度,保护优先级越高,那么用户持续使用应用程序或者随时启动应用程序的程度越高,因此可以按照各应用程序的保护优先级实时生成保护名单。

S403、在后台将处于保护名单中的目标应用程序锁定为运行状态,以及对目标应用程序的目标功能进行后台冻结。

在实时生成保护名单之后,可以对处于保护名单中的目标应用程序进行后台运行保护,其中目标应用程序可以认为是保护名单中对应的所有应用程序,目标应用程序的数量可以一个或者多个。在对目标应用程序进行后台保护的时候可以从多个层面进行保护,为方便描述,本申请实施例中通过冻结层面、通信层面、清理层面以及内存管理层面进行后台保护。

首先在确定目标应用程序之后,可以在后台将处于保护名单中的目标应用程序锁定为运行状态,以保证目标应用程序可以不被系统退出或者杀掉,在将目标应用程序锁定为运行状态的过程中,具体可以将目标应用程序的核心组件保持运行状态,并将一些外围组件禁用,保证目标应用程序具备最低的运行条件。

进一步地,还可以对目标应用程序的目标功能进行后台冻结,其中目标功能在运行时会调用非必要资源,在对目标功能进行冻结之后可以以控制目标应用程序禁止调用一些非必要资源,而目标应用程序中的必要资源调用不受影响,使得目标应用程序不会因为缺少必要资源而异常退出,其中目标应用程序的目标功能可以根据需要自由设定,这样可以降低目标应用程序的数据处理过程,降低对目标应用程序后台保护的功耗。

S404、开启目标应用程序对应的网络防火墙,其中,防火墙用于控制目标应用程序的网络连接状态,且防火墙开启时目标应用程序的网络连接状态为断开状态。

进一步地,在本申请实施例中,防火墙用于控制目标应用程序的网络连接状态,因此还可以开启目标应用程序对应的网络防火墙,以使得目标应用程序对应的防火墙开启时,目标应用程序的网络连接状态为断开状态,这样操作的目的是防止目标应用程序与服务器或者其他应用程序之间的网络通信包,将已经冻结的目标应用程序唤醒解冻,提高对目标应用程序的目标功能进行后台冻结的稳定性。

S405、向目标应用程序对应服务器发送异常数据包,异常数据包携带有目标应用程序的网络连接状态,异常数据包用于指示服务器在目标应用程序的网络连接状态为连通状态时,与目标应用程序建立通信。

进一步地,还可以向目标应用程序对应服务器发送异常数据包,例如,当目标应用程序为游戏类应用程序时,异常数据包可以reset包,异常数据包携带有目标应用程序的网络连接状态,异常数据包用于指示服务器在目标应用程序的网络连接状态为连通状态时,与目标应用程序建立通信,也即服务器可以根据异常数据包确认目标应用程序的网络状态,因此可以服务器可以根据异常数据包的指示,通过相关组件或者线程实时监控目标服务器的网络状态,以使得目标应用程序在网络连接状态为连通状态的同时,服务器可以主动与目标服务器建立通信,以便于目标服务器可以快速启动以及进行正常运行状态。可选地,也可以控制目标应用程序处于前台之后,主动与服务器建立通信,以防止服务器没有主动建立连接时,也可以实现目标应用程序与服务器之间的通信。

S406、监测终端的实时可用运行内存。

可以理解的,目标应用程序处于后台之后,目标应用程序被限定在预设内存阈值对应的内存范围内运行,那么在终端中其他运行内存范围内还运行一些应用程序,那么这些应用程序可能是用户正在使用的应用程序,不能直接退出这些应用程序,因此在终端的使用过程中,可能会导致终端的可用运行内存减少。

为了保证用户的正常使用,可以首先监测终端的实时可用运行内存,其中关于监测终端的实时可用运行内存的方法,可以是通过预设组件或者预设函数以固定的周期获取终端的实时可用运行内存,还可以是通过预设组件或者预设函数按照运行内存占用比例,确定对应的周期以获取终端的实时可用运行内存,例如,可以在运行内存占用比例较大时,以较快的周期获取终端的实时可用运行内存,以提高获取数据的时效性;还可以在运行内存占用比例较小时,以较慢的周期获取终端的实时可用运行内存,以降低获取数据的功耗。

S407、当实时可用运行内存大于第一清理运行内存阈值且小于第二清理运行内存阈值时,退出预设清理名单中处于后台的至少一个待清理应用程序,直至实时占用运行内存小于或者等于第一清理运行内存阈值。

可选地,可以预先设置预设清理名单,其中预设清理名单中的应用程序可以是一些不影响用户正常使用终端或者不影响系统运行的应用程序,例如,预设清理名单中的应用程序可以是日历、闹钟、记事本等。还可以预先设置第一清理运行内存阈值以及第二清理运行内存阈值,其中第二清理运行内存阈值对应的数值大于第一清理运行内存阈值对应的数值,例如,终端的中运行内存为8G,那么可设置第一清理运行内存阈值为6G,第二清理运行内存阈值为7G,那么当实时可用运行内存大于第一清理运行内存阈值且小于第二清理运行内存阈值时,可以认为终端的可用运行内存存在压力,终端的可用运行内存较小,那么可以确定同时处于预设清理名单以及后台的至少一个应用程序,将该应用程序确定待清理应用程序,并退出待清理应用程序,其中待清理应用程序的数量可以根据待清理应用程序退出后,实时占用运行内存是否小于或者等于第一清理运行内存阈值确定,以减少终端当前的运行内存的占用,扩大终端的可用运行内存。

S408、当实时可用运行内存大于第二清理运行内存阈值时,退出保护名单中优先级最小的至少一个待清理目标应用程序,直至实时占用运行内存小于或者等于预设运行内存阈值。

当实时可用运行内存大于第二清理运行内存阈值时,可以认为终端的可用运行内存存在较大的压力,终端的可用运行内存极小,仅仅通过退出待清理应用程序不能有效减少终端当前的运行内存的占用,那么此时可以确定保护名单中优先级最小的至少一个目标应用程序,将该目标应用程序确认为待清理目标应用程序,并退出该待清理目标应用程序,其中待清理目标应用程序的数量可以根据待清理目标应用程序退出之后,实时占用运行内存是否小于或者等于第二清理运行内存阈值确定。

S409、从保护名单中删除待清理目标应用程序,以及基于当前处于后台的所有应用程序的历史使用数据更新保护名单。

在从保护名单中删除待清理目标应用程序之后,那么专门为保护名单中目标应用程序设置的预设运行内存阈值对应的内存范围内可能存在空闲的内存,那么可以基于当前处于后台的所有应用程序的历史使用数据更新保护名单,以便于对名单之外的应用程序进行保护,其中基于当前处于后台的所有应用程序的历史使用数据更新保护名单的方法,与上述基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单的方法类似,此处不在赘述。

S4010、将处于保护名单中的目标应用程序在运行内存中占用的内存转移预设容量的内存至只读内存中,以及在目标应用程序处于前台时将预设容量的内存恢复至运行内存中。

可以理解的,当对处于保护名单中的目标应用程序进行后台运行保护时,还可以将处于保护名单中的目标应用程序在运行内存中占用的内存转移预设容量的内存至只读内存中,其中只读内存也即只读存储器(Read-Only Memory,ROM)对应的内存,由于终端中只读内存的容量远大于终端中的运行内存,因此可以目标应用程序在运行内存中占用的内存转移预设容量的内存至只读内存中,以减少终端中运行内存的占用,缓解终端中运行内存的占用压力。

可选地,目标应用程序在运行内存中占用的内存转移预设容量对应的具体数值,可以根据目标应用程序具体在运行内存中占用的内存容量进行确定,还可以根据用户自己需要手动进行设定。例如,可以设置目标应用程序在运行内存中占用的内存转移预设容量为百分之五十,那么当目标应用程序在运行内存中占用的内存为1G时,可以目标应用程序在运行内存中占用的内存转移0.5G的内存至只读内存中。再具体的实践中,可以采用类似过swap技术扩充内存,缓解运行内存压力。

进一步地,还可以设置在目标应用程序处于前台时将预设容量的内存恢复至运行内存中,以便于当目标应用程序处于前台时可以快速启动目标应用程序。

在本申请实施例中,主要介绍了如何实时生成保护名单,以及如何对保护名单中的目标应用程序进行后台运行保护,可以实现将保护名单中的目标应用程序暂存至后台,不造成功耗、内存风险,也可以使用户快速启动目标应用程序。

请参阅图6,图6为本申请另一实施例提供的一种应用程序运行方法的流程示意图。

如图6所示,应用程序运行方法包括:

S601、接收用户输入的后台保护启动指令,基于后台保护启动指令执行监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

可选地,由于在执行应用程序运行时,可能会导致一些应用程序被退出或者保护,可以在终端的系统中设置相关选项,用户通过设置相关选项自由选择是否执行应用程序运行方法,因此当用户针对相关选项输入后台保护启动指令之后,那么终端可以接收到用户输入的后台保护启动指令,基于后台保护启动指令执行监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单步骤,也即执行后续应用程序运行方法的具体过程。

请参阅图7,图7为本申请另一实施例提供的一种用户输入后台保护启动指令的示意图。

如图7所示,在终端700的设置界面710中,可以单独设置一个“后台保护”选项720,当用户730点击或者勾选“后台保护”选项720之后,相当于用户730针对后台保护”选项720输入了后台保护启动指令,那么终端700可以接收到用户输入的后台保护启动指令,执行后续应用程序运行方法的具体过程。

S602、监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

S603、对处于保护名单中的目标应用程序进行后台运行保护。

关于步骤S602以及步骤S603,请参阅上述实施例中的具体记载,此处不在赘述。

S604、监测处于保护名单中的目标应用程序的运行状态,若监测到目标应用程序中的异常目标应用程序退出之后,基于当前处于后台的所有应用程序的历史使用数据更新保护名单。

可以理解的,在对对处于保护名单中的目标应用程序进行后台运行保护之后,可以在后台将处于保护名单中的目标应用程序锁定为运行状态,但是在实际情况中,目标应用程序处于后台之后可能会因此低内存、低电量、通信环境异常或者其他异常情况出现异常退出的情况,因此可以监测处于保护名单中的目标应用程序的运行状态,其中监测处于保护名单中的目标应用程序的运行状态的方法,可以通过预设组件或者预设函数进行监测,若监测到目标应用程序中的异常目标应用程序异常退出之后,可以从保护名单中删除异常目标应用程序,还可以自动拉起并运行异常目标应用程序,并基于当前处于后台的所有应用程序的历史使用数据更新保护名单,以便于重新对异常目标应用程序进行保护和/或对名单之外的应用程序进行保护,其中基于当前处于后台的所有应用程序的历史使用数据更新保护名单的方法,与上述基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单的方法类似,此处不在赘述。

在本申请实施例中,通过在终端的系统中设置相关选项,用户通过设置相关选项自由选择是否执行应用程序运行方法,提升了用户对终端中应用程序的管控自由度,还可以在监测到目标应用程序中的异常目标应用程序退出之后,基于当前处于后台的所有应用程序的历史使用数据更新保护名单,扩大了终端中应用程序的保护范围。

请参阅图8,图8为本申请另一实施例提供的一种应用程序运行装置的结构示意图。

如图8所示,应用程序运行装置800包括:

名单获取模块810,用于监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

程序保护模块820,用于对处于保护名单中的目标应用程序进行后台运行保护。

请参阅图9,图9为本申请另一实施例提供的一种应用程序运行装置的结构示意图。

如图9所示,应用程序运行装置900包括:

使用偏好值获取模块910,用于监测到应用程序处于后台之后,获取当前处于后台的所有应用程序的使用数据,以及根据使用数据确定所有应用程序各自对应的使用偏好值。

保护名单生成模块920,用于根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单。

其中,根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单,包括:按照使用偏好值由高到低的优先级排列规则,对所有应用程序进行优先级排序并得到排序表;基于所有应用程序各自对应的优先级顺序、所有应用程序各自对应的当前占用运行内存以及预设运行内存阈值实时生成保护名单;其中,保护名单中的各目标应用程序对应的当前占用运行内存总和小于预设运行内存阈值,且保护名单中的任一目标应用程序在排序表中的优先级大于不处于保护名单中的任一应用程序的优先级。

冻结模块930,用于在后台将处于保护名单中的目标应用程序锁定为运行状态,以及对目标应用程序的目标功能进行后台冻结。

网络控制模块940,用于开启目标应用程序对应的网络防火墙,其中,防火墙用于控制目标应用程序的网络连接状态,且防火墙开启时目标应用程序的网络连接状态为断开状态。

通信模块950,用于向目标应用程序对应服务器发送异常数据包,异常数据包携带有目标应用程序的网络连接状态,异常数据包用于指示服务器在目标应用程序的网络连接状态为连通状态时,与目标应用程序建立通信。

内存监测模块960,用于监测终端的实时可用运行内存。

第一清理模块970,用于当实时可用运行内存大于第一清理运行内存阈值且小于第二清理运行内存阈值时,退出预设清理名单中处于后台的至少一个待清理应用程序,直至实时占用运行内存小于或者等于第一清理运行内存阈值。

第二清理模块980,用于当实时可用运行内存大于第二清理运行内存阈值时,退出保护名单中优先级最小的至少一个待清理目标应用程序,直至实时占用运行内存小于或者等于第二清理运行内存阈值。

第一名单更新模块990,用于从保护名单中删除待清理目标应用程序,以及基于当前处于后台的所有应用程序的历史使用数据更新保护名单。

内存转移模块9100,用于将处于保护名单中的目标应用程序在运行内存中占用的内存转移预设容量的内存至只读内存中,以及在目标应用程序处于前台时将预设容量的内存恢复至运行内存中。

请参阅图10,图10为本申请另一实施例提供的一种应用程序运行装置的结构示意图。

如图10所示,应用程序运行装置1000包括:

保护启动模块1010,用于接收用户输入的后台保护启动指令,基于后台保护启动指令执行监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

名单获取模块1020,用于监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

程序保护模块1030,用于对处于保护名单中的目标应用程序进行后台运行保护。

第二名单更新模块1040,用于监测处于保护名单中的目标应用程序的运行状态,若监测到目标应用程序中的异常目标应用程序退出之后,基于当前处于后台的所有应用程序的历史使用数据更新保护名单。

在本申请实施例中,应用程序运行装置包括:名单获取模块,用于监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单;程序保护模块,用于对处于保护名单中的目标应用程序进行后台运行保护。当监测到有应用程序处于后台之后,可以生成当前处于后台的所有应用程序对应的保护名单,那么可以对处于保护名单中的目标应用程序进行后台运行保护,当对目标应用程序进行后台运行保护之后,目标应用程序不会被系统清理、退出,当用户再次打开目标应用程序时可以实现热启动,大大减少了用户启动目标应用程序的时间。

本申请实施例还提供了一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行如上述实施例中的任一项的方法的步骤。

进一步地,请参见图11,图11为本申请实施例提供了一种终端的结构示意图。如图11所示,终端1100可以包括:至少一个中央处理器1101,至少一个网络接口1104,用户接口1103,存储器1105,至少一个通信总线1102。

其中,通信总线1102用于实现这些组件之间的连接通信。

其中,用户接口1103可以包括显示屏(Display)、摄像头(Camera),可选用户接口1103还可以包括标准的有线接口、无线接口。

其中,网络接口1104可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。

其中,中央处理器1101可以包括一个或者多个处理核心。中央处理器1101利用各种接口和线路连接整个终端1100内的各个部分,通过运行或执行存储在存储器1105内的指令、程序、代码集或指令集,以及调用存储在存储器1105内的数据,执行终端1100的各种功能和处理数据。可选的,中央处理器1101可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。中央处理器1101可集成中央中央处理器(Central Processing Unit,CPU)、图像中央处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到中央处理器1101中,单独通过一块芯片进行实现。

其中,存储器1105可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1105包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1105可用于存储指令、程序、代码、代码集或指令集。存储器1105可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1105可选的还可以是至少一个位于远离前述中央处理器1101的存储装置。如图11所示,作为一种计算机存储介质的存储器1105中可以包括操作系统、网络通信模块、用户接口模块以及应用程序运行程序。

在图11所示的终端1100中,用户接口1103主要用于为用户提供输入的接口,获取用户输入的数据;而中央处理器1101可以用于调用存储器1105中存储的应用程序运行程序,并具体执行以下操作:

监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单;

对处于保护名单中的目标应用程序进行后台运行保护。

在一个实施例中,处理器1101在执行基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单时,具体执行以下步骤:获取当前处于后台的所有应用程序的使用数据,以及根据使用数据确定所有应用程序各自对应的使用偏好值;根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单。

在一个实施例中,处理器1101在执行根据所有应用程序各自对应的的使用偏好值以及预设运行内存阈值实时生成保护名单时,具体执行以下步骤:按照使用偏好值由高到低的优先级排列规则,对所有应用程序进行优先级排序并得到排序表;基于所有应用程序各自对应的优先级顺序、所有应用程序各自对应的当前占用运行内存以及预设运行内存阈值实时生成保护名单;其中,保护名单中的各目标应用程序对应的当前占用运行内存总和小于预设运行内存阈值,且保护名单中的任一目标应用程序在排序表中的优先级大于不处于保护名单中的任一应用程序的优先级。

在一个实施例中,处理器1101在执行对处于保护名单中的目标应用程序进行后台运行保护时,具体执行以下步骤:在后台将处于保护名单中的目标应用程序锁定为运行状态,以及对目标应用程序的目标功能进行后台冻结;开启目标应用程序对应的网络防火墙,其中,防火墙用于控制目标应用程序的网络连接状态,且防火墙开启时目标应用程序的网络连接状态为断开状态;向目标应用程序对应服务器发送异常数据包,异常数据包携带有目标应用程序的网络连接状态,异常数据包用于指示服务器在目标应用程序的网络连接状态为连通状态时,与目标应用程序建立通信。

在一个实施例中,处理器1101在执行对处于保护名单中的目标应用程序进行后台运行保护时,具体执行以下步骤:监测终端的实时可用运行内存;当实时可用运行内存大于第一清理运行内存阈值且小于第二清理运行内存阈值时,退出预设清理名单中处于后台的至少一个待清理应用程序,直至实时占用运行内存小于或者等于第一清理运行内存阈值;当实时可用运行内存大于第二清理运行内存阈值时,退出保护名单中优先级最小的至少一个待清理目标应用程序,直至实时占用运行内存小于或者等于第二清理运行内存阈值;从保护名单中删除待清理目标应用程序,以及基于当前处于后台的所有应用程序的历史使用数据更新保护名单。

在一个实施例中,处理器1101在执行对处于保护名单中的目标应用程序进行后台运行保护时,具体执行以下步骤:将处于保护名单中的目标应用程序在运行内存中占用的内存转移预设容量的内存至只读内存中,以及在目标应用程序处于前台时将预设容量的内存恢复至运行内存中。

在一个实施例中,处理器1101在执行在后台中对第一目标应用程序进行运行保护之后,还具体执行以下步骤:监测处于保护名单中的目标应用程序的运行状态,若监测到目标应用程序中的异常目标应用程序退出之后,基于当前处于后台的所有应用程序的历史使用数据更新保护名单。

在一个实施例中,处理器1101在执行获取当前处于后台的所有应用程序的使用数据,以及根据使用数据确定所有应用程序各自对应的使用偏好值时,具体执行以下步骤:获取当前处于后台的所有应用程序的使用数据,使用数据至少包括距离当前时间的预设周期内应用程序的打开次数以及在前台运行的总时长;根据使用数据以及使用偏好值公式计算所有应用程序各自对应的使用偏好值;

其中,使用偏好值公式为:

y为应用程序的使用偏好值,x为预设时间段内距离当前时间的某一时间,t

在一个实施例中,处理器1101在执行监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单之前,还具体执行以下步骤:接收用户输入的后台保护启动指令,基于后台保护启动指令执行监测到应用程序处于后台之后,基于当前处于后台的所有应用程序的历史使用数据实时生成保护名单。

在一个实施例中,应用程序为预设类型的应用程序,预设类型的应用程序冷启动时间大于预设启动时间。

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

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

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

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

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上为对本申请所提供的一种应用程序运行方法、装置、存储介质以及终端的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

相关技术
  • 智能终端上应用程序的运行方法、智能终端和存储介质
  • 智能终端上应用程序的运行方法、智能终端和存储介质
技术分类

06120113084407