应用控制方法、装置、电子设备以及计算机可读介质与流程

文档序号:20486608发布日期:2020-04-21 21:43阅读:156来源:国知局
应用控制方法、装置、电子设备以及计算机可读介质与流程

本申请涉及移动终端技术领域,更具体地,涉及一种应用控制方法、装置、电子设备以及计算机可读介质。



背景技术:

现有的对于智能设备后台优化的策略大多是统计设备中还剩余的内存和应用启动或者使用时需要多少内存,然后根据这两个值来调整设备后台的优化策略,优化策略过于单一。



技术实现要素:

本申请提出了一种应用控制方法、装置、电子设备以及计算机可读介质,以改善上述缺陷。

第一方面,本申请实施例提供了一种应用控制方法,包括:当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长;确定当前在后台运行的后台应用程序;根据所述预计执行时长控制所述后台应用程序中满足指定条件的应用程序暂停运行。

第二方面,本申请实施例还提供了一种应用控制装置,包括:获取单元、确定单元和处理单元。获取单元,用于当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长。确定单元,用于确定当前在后台运行的后台应用程序。处理单元,用于根据所述预计执行时长控制所述后台应用程序中满足指定条件的应用程序暂停运行。

第三方面,本申请实施例还提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述方法。

第四方面,本申请实施例还提供了一种计算机可读介质,所述可读存储介质存储有处理器可执行的程序代码,所述程序代码被所述处理器执行时使所述处理器执行上述方法。

本申请提供的应用控制方法、装置、电子设备以及计算机可读介质,当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长,从而能够预测得到指定时间可能执行的时间长度,然后,确定当前在后台运行的后台应用程序,根据所述预计执行时长控制所述后台应用程序中满足指定条件的应用程序暂停运行,从而,暂停运行的应用程序的资源能够得到释放,即其运行时所占用的内存和系统资源就会被释放,以便为指定事件的运行提供更加丰富的内存和系统资源。因此,本申请能够根据指定事件的预计执行时长而对后台应用程序运行是占用的资源释放,更加灵活,更加适用设备当前的运行状况。

附图说明

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

图1示出了本申请一实施例提供的应用控制方法的方法流程图;

图2示出了本申请另一实施例提供的应用控制方法的方法流程图;

图3示出了本申请又一实施例提供的应用控制方法的方法流程图;

图4示出了本申请实施例提供的视频列表界面的示意图;

图5示出了本申请实施例提供的视频播放界面的示意图;

图6示出了图3中的s310的流程图;

图7示出了本申请再一实施例提供的应用控制方法的方法流程图;

图8示出了本申请一实施例提供的应用控制装置的模块框图;

图9示出了本申请另一实施例提供的应用控制装置的模块框图;

图10示出了本申请实施例提供的电子设备的结构框图;

图11示出了本申请实施例的用于保存或者携带实现根据本申请实施例的内存管理方法的程序代码的存储单元。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

电子设备中,内存是重要的部件之一,内存是与cpu进行沟通的桥梁。电子设备中所有程序的运行都是在内存中进行的,因此内存的性能对电子设备的影响较大。内存一般由dram(dynamicrandomaccessmemory,动态随机访问存储器)构成,由于dram集成度低,容量有限。

随着科技水平的发展,以及人们的需求不断增多,电子设备上安装的应用程序(application,app)越来越丰富。然而,各种应用程序的缓存以及无用进程的后台运行,会使电子设备的可用内存变得越来越少,出现内存不足的问题。

以android系统为例,android系统的进程和内存管理机制与传统的windows等操作系统的内存管理机制不同,应用被退到后台后,还处于存活状态,并没有完全释放其所占用的内存。这导致当用户将越来越多的应用挂到后台后,或者系统剩余可用内存紧张时,会出现由于内存分配慢导致的系统响应慢或者界面滑动卡顿的现象。

目前在一些应用程序启动的时候,会释放一定的内存以便该应用程序的运行顺畅。具体地,游戏启动时判断游戏应用是否已驻存于内存中确定启动所述游戏应用的方式,在采用冷启动方式时,触发游戏应用上报当前的内存需求量,根据该内存需求量和当前的内存使用情况,确定是否可以满足游戏应用的运行需要,如果不满足,通过对后台应用进行清理冻结,以满足该运行需要,则可以有效缩短游戏应用的启动时间。

另外,还有一些释放内存的方式为,获取所述android系统中运行的进程信息和驱动信息;根据所述进程信息确定内存中运行的各个进程;根据所述驱动信息确定内存中加载的各个驱动程序;识别在预设时间内不被使用的无用进程;将所述无用进程从所述内存中删除;识别在预设时间内不被使用的无用驱动程序;将所述无用驱动程序从所述内存中删除。

然而,发明人在研究中发现,现有的对于电子设备的后台优化的策略大多是,统计电子设备中还剩余的内存和应用启动或者使用时需要多少内存,然后根据这两个值来调整电子设备后台的优化策略。现有的策略大多是人为的预先设置一些阈值,这些策略往往对于所有的应用都是一样的,不能做到因应用不同而采用不同的策略。还有无法动态的调整应用运行时的参数,只能预先设置好参数,不能智能的动态调整。例如,上述的只是在游戏启动时判断内存需求,不足时才会对后台进行清理,这样只是加快了游戏启动的时间,对于游戏运行的体验并没有起到作用。

因此,为了克服上述缺陷,本申请实施例提供了一种应用控制方法,如图1所示,该方法包括:s101至s103。

s101:当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长。

其中,指定事件可以是用户根据需求而设定的,例如,该指定事件为用户感兴趣的事件,还可以是用户认为在运行的时候需要较多的内存和系统资源的事件。于本申请实施例中,该指定事件可以是在运行的时候需要较多的内存和系统资源的事件,并且剩余的内存和系统资源越多,该指定事件的运行流畅度越高。作为一种实施方式,可以是用户为该指定事件标记一个指定标识,该指定标识用于指示该指定事件在运行的时候需要较多的内存和系统资源,则当检测到当前开始执行的事件的标识为指定标识的时候,就可以确定当监测到指定事件开始执行。作为另一种实施方式,该指定标识可以是该指定事件的程序开发者在开发的时候,为该指定事件设置上述指定标识。

在一些实施例中,判断电子设备当前开始执行的事件是否为指定事件的实施方式可以是,确定执行该事件的应用程序,确定该应用程序是否为指定应用程序,如果是指定应用程序,则判定当前开始执行的事件为指定事件。其中,指定应用程序可以是应用程序的应用标识为指定应用标识,其中,指定应用标识的应用程序在运行的时候需要较高的内存和系统资源。另外,还可以根据应用程序的类别确定事件是否为指定事件,具体地在后续实施例中介绍。

在确定指定事件执行的时候,确定该指定事件的预计执行时长。其中,预计执行时长为指定事件在开始执行之后可能会执行的时间长度,以指定时间为视频播放为例,在用户开始播放视频的时候,预计用户本次播放视频的时间长度,则该所预计的时间长度为预计执行时长。也就是说,预计执行时长是一个估计值,用于估计该指定事件的可能执行时间长度。作为一种实施方式,该预计执行时长可以根据该指定事件的历史数据而确定,由于历史数据能够反应该指定事件的历史执行时所产生的数据,则可以包括历史执行时间长度,从而能够根据该历史数据估算出当前的预计执行时长,具体的实施方式可以参考后续实施例,在此不再赘述。

另外,在一些实施例中,上述的指定时间的执行可以是在前台执行的,而预计执行时长可以是在前台的执行时长,因为,则在前台运行的时候,该指定事件的运行对系统资源和内存的要求更高。因此,当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长的具体实施方式可以是,当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长。

s102:确定当前在后台运行的后台应用程序。

其中,应用程序的状态包括前台运行状态、后台运行状态和未运行状态。前台运行状态,是指应用程序在屏幕上由界面运行,用户能够通过界面与该应用程序互动,例如,输入执行指令或由界面观察到一些信息等。后台运行状态,是指应用程序在系统的资源管理器里运行,但是一般没有界面。用户在首次启动应用程序的时候,该应用程序在第一屏幕的屏幕上运行,即处于前台运行状态,在用户点击home键的时候,或者将其他应用切换至前台或者将电子设备锁屏时,该应用程序的状态变更为后台运行状态。未运行状态是指该应用程序未启动,即不处于前台运行状态,也不处于后台运行状态,具体地,可以是当应用程序在前台或者后台运行的时候,该应用程序的进程被杀死,则此时应用程序处于未运行状态,也称为关闭状态。

作为一种实施方式,电子设备存储有应用程序运行状态表,该表内包括电子设备当前所安装的所有应用程序的标识和每个应用程序的标识对应的状态。通过监测该应用程序运行状态表,能够监测电子设备当前安装的每个应用程序的状态,从而能够确定电子设备的当前在后台运行的应用程序,即后台应用程序。

另外,上述的指定事件在前台运行,也可以是当监测到有应用程序在前台运行的时候,该应用程序的某个操作对应的事件被执行的时候,确定该事件是否为指定事件。

s103:根据所述预计执行时长控制所述后台应用程序中满足指定条件的应用程序暂停运行。

在确定了指定事件的预计执行时长的时候,就能够确定该指定事件有可能被执行的时间长度,即预计执行时长。则作为一种实施方式,可以根据该预计执行时长确定应用程序暂停运行的时间长度,即在预计执行时长内,控制所述后台应用程序中满足指定条件的应用程序暂停运行。作为另一种实施方式,还可以在预计执行时长不同的时候,控制所述后台应用程序中满足指定条件的应用程序暂停运行的控制策略是不同的。具体地个,该控制策略可以包括冻结、杀死或者关闭应用程序的指定功能等。例如,限制应用程序在后台连接网络,或者限制应用程序在后台使用位置信息等。具体地,请参阅后续实施例。

请参阅图2,图2示出了本申请实施例提供的一种应用控制方法,该方法包括:s201至s204。

s201:当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长。

s202:确定当前在后台运行的后台应用程序。

s203:若所述预计执行时长大于第一时间阈值且小于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序冻结。

作为一种实施方式,将后台应用程序中满足指定条件的应用程序暂停运行的方式的实施方式,可以是将应用程序冻结,也可以是将应用程序杀死。

具体地,将应用程序冻结是指将应用程序变为假死状态,假死状态即指冻结后的应用程序不能启动,也不会再进行后台启动等操作,从而可以阻止该应用程序产生非法的行为数据,避免发生不利于电子设备安全的操作行为,同时可以减少电子设备运行内存资源的消耗,但该应用程序仍然存在于电子设备,会占据电子设备的部分内置存储,若冻结的应用程序未解冻,将一直处于假死状态。对应的,若用户需要使用该冻结的应用程序,也可对该冻结的应用程序进行解冻,解冻即指冻结后的应用程序从假死状态中被唤醒,恢复正常使用,可以产生相关的行为数据,并可以在后台占据电子设备的运行内存资源。

其中,将应用程序杀死是将应用程序的所有进程全部杀死,则不仅该应用程序被关闭,而且那些在关闭后依然在后台运行的进程也会被杀死,应用程序的所有进程所占用的所有内存均被释放。

s204:若所述预计执行时长大于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序杀死。

预先设置两个时间阈值,分别为第一时间阈值和第二时间阈值,其中,第二时间阈值大于第一时间阈值,且第一时间阈值和第二时间阈值均为时间长度,例如,第一时间阈值为15分钟,第二时间阈值为30分钟。如果预计执行时长大于第一时间阈值且小于第二时间阈值,即预计执行时长位于第一时间阈值和第二时间阈值之间的时候,可以采用比较保守的清理策略,即将所述后台应用程序中满足指定条件的应用程序冻结,该应用程序被暂停运行,而进程被挂起,例如,进程处于死循环的状态,不响应操作,则暂停该应用程序在后台活动,但是由于进程并没有被杀死,则在指定事件完成的时候,该应用程序可以被解冻,进程恢复运行,从而虽然进程依然占用了部分内存空间,但是,应用程序可以被快速恢复,即被快速解冻。

也就是说,由于预计执行时长大于第一时间阈值且小于第二时间阈值,即预计执行时长不算太长,则表示该指定事件的运行时间可能不会太久。为了方便用户在运行该指定事件之后,能够快速使用后台应用程序,则可以仅仅将后台应用程序冻结,而不是杀死,以便能够在指定事件结束之后,可以快速恢复应用程序。

而如果预计执行时长大于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序杀死。即预计执行时长大于第二时间阈值的时候,可以使用比较激进的清理策略,将所述后台应用程序中满足指定条件的应用程序杀死,同时记录杀死的应用程序的标识,存入在一个列表中,其中,该应用程序的标识可以是应用程序的包名。

也就是说,由于预计执行时长大于第二时间阈值,即预计执行时长较长,即相比上述的预计执行时长大于第一时间阈值且小于第二时间阈值来说,当预计执行时长大于第二时间阈值的时候,预计执行时长的执行时间比较长,则表示该指定事件的运行时间可能会比较久,则表示电子设备可能会长时间的运行指定事件,即长时间的处于需求较高的内存和系统资源的情况下,则可以将后台应用程序中满足指定条件的应用程序杀死,以便能够释放资源给指定事件的较长时间的运行。

作为一种实施方式,该后台应用程序中满足指定条件的应用程序可以是用户设定的一个白名单之外的应用程序,具体地,该白名单的应用程序可是用户根据需求而设定的,例如,根据使用习惯或者使用需求而设定的。也就是说,可以将后台应用程序中,属于白名单之外的应用程序冻结或杀死,以便暂停运行,而对于属于白名单内的应用程序不做暂停处理,保持其在后台正常运行。

作为一种实施方式,满足指定条件的应用程序为预设时间段内的使用次数低于指定数值的应用程序。具体地,获取电子设备内安装的所有应用程序中每个应用程序对应的历史数据,该历史数据包括启动次数、启动时间、操作对象和操作时间等,其中,该操作对象为应用程序内的某个功能,则操作时间为该操作对象被操作的时间点和时长等。通过该历史数据能够确定每个应用程序的使用次数,在将使用次数低于指定数值的应用程序作为指定条件的应用程序,而将使用次数高于或等于指定数值的应用程序作为白名单内的应用程序。其中,该指定数值可以是根据实际使用需求而设定,即使用次数高于或等于指定数值的应用程序可以看作是用户重度使用的应用程序。

作为一种实施方式,可以将电子设备所安装的所有的应用程序的使用次数按照由高到低的顺序排序,以得到次数序列,将次数序列内排名靠前的n个次数对应的应用程序作为白名单内的应用程序,而其他的应用程序作为黑名单内的应用程序,则在确定当前在后台运行的后台应用程序之后,将所有后台应用程序中,属于黑名单内的应用程序作为满足指定条件的应用程序。其中,n为正整数,例如,n可以是5,具体地,可以根据实际使用而设定,在此不做限定。另外,属于白名单内的应用程序可以命名为超级应用,则以上述的第一时间阈值为15分钟,第二时间阈值为30分钟为例,假设预计执行时长为t,当15min<t<30min,清理策略比保守些,将不是超级应用的后台应用进行冻结,将进程挂起,暂停其后台活动。当30min<t,清理模块执行较为激进的清理策略,将不是超级应用的后台应用进行杀死,同时记录杀死的包名,存入在一个列表list中。

请参阅图3,图3示出了本申请实施例提供的一种应用控制方法,该方法包括:s310至s350。

s310:监测指定事件是否开始执行。

作为一种实施方式,该指定事件对应有指定操作,该指定操作用于输入开始执行该指定事件的开始指令。在一些实施例中,该指定事件对应指定应用程序,则该指定应用程序运行的时候,在该指定应用程序的预设界面上显示有指定操作按键,用户在触发该指定操作按键的时候,能够输入指定操作,即输入开始执行该指定事件的开始指令。因此,可以监测是否能够接收到该指定事件的开始指令,即判断该指定操作按键是否被触发,从而判断指定事件是否开始执行。

作为另一种实施方式,该指定事件可以是指定类别的应用程序在前台运行。其中,指定类别可以包括游戏类、视频类和直播类的至少一种,于本申请实施例中,指定类别可以包括游戏类、视频类和直播类。

应用程序的类别,可以是应用程序的开发商在开发的时候为应用程序设定的类别,也可以是应用程序在安装在电子设备上之后,用户为应用程序设定的类别,例如,用户在电子设备上安装某个应用程序,在安装完成并进入该应用程序之后,会显示一个对话框,指示用户为应用程序设定类别。则应用程序具体属于哪个类别,可以由用户根据需求而设定,例如,用户可以将某社交软件设置为音频类,或者设置为视频类,或者设置为社交类。

另外,电子设备内安装有应用程序安装软件,例如ios系统内的appstore。则在该应用程序安装软件内设置有应用程序列表,在该列表内用户能够下载应用程序并且能够更新和打开应用程序,而且该应用程序安装软件可以将不同的应用程序按照类别现实,比如,音频类、视频类或者游戏类等。因此,用户在使用该应用程序安装软件安装应用程序的时候,就已经能够知道该应用程序的类别。

另外,考虑到有些应用程序可以播放视频也可以播放音频,则如果该应用程序支持视频播放的功能,就将该应用程序的类型设置为视频类型,如果不支持视频播放的功能,而仅仅支持音频播放的功能,则就将该应用程序的类型设置为音频类型。而具体地,应用程序是否支持视频播放功能,可以通过该应用程序的功能描述信息中,所包含的功能描述,例如,所支持的播放格式来判断是否支持视频格式的播放,也可以通过检测该应用程序的程序模块内是否播放视频播放模块,例如,某个视频播放的编解码算法等,从而能够确定该应用程序是否支持视频播放功能。

再者,如果有些应用程序的功能多样化,则需要根据应用程序的具体操作行为而确定该应用程序的类别,例如,如果有些应用程序能够播放视频,也能够播放音频,例如一些视频播放软件,可以播放纯音频文件,也可以播放视频,则该应用程序的类别可以根据应用程序的使用记录而确定,即根据该应用程序的一定时间段内的使用记录,确定用户使用该应用程序是倾向于播放视频还是更倾向于播放音频。

具体地,获取该应用程序在预设时间段内的所有用户的操作行为数据,其中,所有用户是指安装过该应用程序的所有用户,则该操作行为数据可以由应用程序对应的服务器内获取,也就是说,用户在使用该应用程序的时候会使用用户对应的用户账号登录该应用程序,而用户账号对应的操作行为数据会发送至应用程序对应的服务器,则服务器将所获取的操作行为数据与用户账号对应存储。在一些实施例中,电子设备发送针对应用程序的操作行为查询请求发送至该应用程序对应的服务器,服务器将一定预设时间段内的所有用户的操作行为数据发送至电子设备。

该操作行为数据包括所播放的音频文件的名称和时间、以及所播放的视频文件的名称和时间,通过分析该操作行为数据就能够确定在一定预设时间段内该应用程序播放的音频文件的数量以及总的时间,也可以得到该应用程序播放的视频文件的数量以及总的时间,则根据音频和视频文件的播放总时长在该预定时间段内的占比,确定应用程序的类别,具体地,获取音频和视频文件的播放总时长在该预定时间段内的占比,为方便描述,将音频文件的播放总时长在该预定时间段内的占比记为音频播放占比,将视频文件的播放总时长在该预定时间段内的占比记为视频播放占比,如果视频播放占比大于音频播放占比,则将应用程序的类别设定为视频类型,如果音频播放占比大于视频播放占比,则将应用程序的类别设定为音频类型。例如,预设时间段为30天,即720小时,而音频文件的播放总时长为200小时,则音频播放占比为27.8%,视频文件的播放总时长为330小时,则视频播放占比为45.8%,则视频播放占比大于音频播放占比,则将应用程序的类别设定为视频类型。

作为另一种实施方式,电子设备内的应用程序的uid是由一串数字构成的,且该数字的排列存在一定的规律性,不同的类别的应用程序的uid所对应的数字分段区域是不同的,例如,uid为00000至09999的应用程序同属于一个类别,因此,根据该应用程序的uid能够确定该应用程序对应的类别。

则在一些实施例中,获取当前在前台运行的应用程序的应用类别,如果该应用类别是指定类别,则判定指定事件开始执行。

另外,考虑到指定类别可以包括游戏类、视频类和直播类的时候,该类别的应用程序在播放视频内容的时候,所占用的内容和系统资源比较大,因此,可以将该指定类别的应用程序开始播放视频的时候,作为指定事件开始执行的时候,即监测到指定类别的应用程序开始播放视频时,确定指定事件开始执行。则指定事件可以是运行游戏类应用程序、播放视频或播放直播内容的至少一种。于本申请实施例中,该指定事件包括运行游戏类应用程序、播放视频和播放直播内容,也就是说,当电子设备监测到运行游戏类应用程序、播放视频或播放直播内容发生的时候,就确定指定事件开始执行。

然而,考虑到如果在确定该指定类别的应用程序在前台运行的时候,就确定指定事件开始执行的话,则有可能应用程序只是在前台运行但是没有播放视频。如图4所示,图4示出了视频类应用程序的视频列表界面,在该界面内视频类应用程序并没有在播放时视频,则如果在该视频列表界面被显示在电子设备的显示屏上的时候,就判定该指定事件开始执行是不够准确的。则该视频列表界面显示有多个视频对应的视频标识,例如,图4中的预览图1,可以作为视频标识,用户点击该视频标识,能够进入到该视频标识对应的视频的播放界面,如图5所示的界面为视频播放界面,在视频播放界面内包括播放按钮,用户点击该视频播放界面的播放按钮,则该应用程序开始播放视频。因此,确定指定事件开始执行的实施方式可以是,判断是否获取到视频播放请求,如果获取到视频播放请求,则判定指定事件开始执行。作为一种实施方式,在确定指定类别的应用程序在前台运行的时候,判断指定视频按钮是否被触发,如果被触发,则判定获取到视频播放请求,从而能够判定指定事件开始执行。其中,指定视频按钮可以是用于播放视频的按钮,每个应用程序的指定视频按钮可能不相同,例如,图5所示的播放按钮为视频类应用程序的指定视频按钮。

另外,由于在播放视频的时候,该应用程序会请求播放音频,则可以通过音频状态变化来确定指定事件是否发生。具体地,请参阅图6,该s310包括s311至s313。

s311:当监测到音频状态变化信息时,确定该音频状态变化信息内所包含的目标应用程序的应用标识。

具体地,在应用程序播放音频或者视频的时候,电子设备的系统会改变电子设备的音频状态,例如在播放视频的时候,会将音频状态设置为播放状态,而在停止播放视频的时候,会将音频状态设置为暂停状态,然后,电子设备的系统为广播一个音频状态变化信息,则该音频状态变化信息内所包含的目标应用程序的应用标识,以便相应的程序模块能够监听到该广播,其中,该相应的程序模块可以是目标应用程序之外的应用程序,以便其他的应用程序能够获知目标应用程序正在播放音频,其中,所述目标应用程序在前台运行,也就是说,监测到音频状态变化信息时,确定该音频状态变化信息内所包含的应用程序且该应用程序需要在前台运行,才能够看作是目标应用程序。

作为一种实施方式,电子设备内设置有事件监听模块,s310的步骤可以由事件监听模块执行。具体地,当电子设备开始播放音频的时候,电子设备的系统会广播音频状态变化信息,具体地,系统会发送id_audio_playback_state_changed音频变化触发广播。

事件监听模块截取到该音频状态变化信息,则该音频状态变化信息内包含目标应用程序的应用标识,则该目标应用程序为请求播放音频的应用程序,通过截取到该音频状态变化信息,就能够确定该音频状态变化信息内所包含的目标应用程序的应用标识,从而能够确定当前请求播放音频的应用程序。

s312:根据所述应用标识确定所述目标应用程序的类别。

作为一种实施方式,预先获取到应用类别对应关系,该应用类别对应关系包括多个应用标识和每个应用标识对应的类别,其中,应用的类别的获取方式可以参考前述实施例,在此不再赘述。

然后,电子设备在获取到目标应用程序的应用标识的时候,在应用类别对应关系中,查找该目标应用程序的应用标识对应的类别,从而就能够确定当前请求播放音频的应用程序的类别。

s313:若所述目标应用程序的类别为指定类别,则确定监测到指定事件开始执行,其中,所述指定类别的应用程序用于执行所述指定事件。

其中,指定类别可以是上述的游戏类、视频类和直播类,则该指定事件为运行游戏类应用程序、播放视频或播放直播内容,因此,指定类别的应用程序用于执行所述指定事件可以理解为,当指定事件为运行游戏类应用程序的时候,指定类别为游戏类,当指定事件为播放视频的时候,指定类别为视频类,当指定事件为播放直播内容的时候,指定类别为直播类。

因此,在监测到音频状态变化信息的时候,确定当前有目标应用程序请求播放音频,然后,确定目标应用程序的类别是否为指定类别,如果是,则确定指定事件开始执行。

s320:当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长。

作为一种实施方式,电子设备内包括预测模块,该预测模块用于获取所述指定事件的预计执行时长,具体的实施方式在后续实施例中介绍。

s330:确定当前在后台运行的后台应用程序。

s340:若所述预计执行时长大于第一时间阈值且小于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序冻结。

s350:若所述预计执行时长大于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序杀死。

作为一种实施方式,电子设备内包括清理模块,该清理模块用于执行上述的若所述预计执行时长大于第一时间阈值且小于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序冻结,以及若所述预计执行时长大于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序杀死,具体的实施方式请参考前述实施例。

另外,在指定事件执行结束的时候,电子设备还可以执行恢复操作,具体地,可以由清理模块执行。

具体地,恢复操作可以包括,控制所述后台应用程序中满足指定条件的应用程序恢复运行。具体地,若所述预计执行时长大于第一时间阈值且小于第二时间阈值,则在指定事件结束的时候,将所述后台应用程序中满足指定条件的应用程序解冻,若所述预计执行时长大于第二时间阈值,则在指定事件结束的时候,将所述后台应用程序中满足指定条件的应用程序的进程重新启动。

以上述的满足指定条件的应用程序为上述的预设时间段内的使用次数低于指定数值的应用程序,即上述的黑名单内的应用程序,并且,以第一时间阈值为15分钟,第二时间阈值为30分钟为例,假设预计执行时长为t,当15min<t<30min,将不是超级应用的后台应用进行冻结,将进程挂起,暂停其后台活动,当指定事件结束的时候,将后台冻结的应用进行解冻,恢复其系统资源,使其存活在后台。当30min<t,清理模块执行较为激进的清理策略,将不是超级应用的后台应用进行杀死,同时记录杀死的包名,存入在一个列表list中,当指定事件结束的时候,将后台杀死的应用重新启动其进程,使其仍然存活在后台,这样就可以使得指定事件结束的时候,能够快速的启动其后台应用,使得无感智能查杀后台应用成为可能。

其中,作为一种实施方式,指定事件的结束的判定方式可以是,在预计执行时长结束的时候,判定指定事件结束。作为另一种实施方式,指定事件的结束的判定方式与前述判定指定事件的开始执行的方式相似,具体地,上述s311内的音频状态变化信息可以是第一音频状态变化信息,则该第一音频状态变化信息用于指示播放音频,电子设备监测到第二音频状态变化信息,确定该第二音频状态变化信息内所包含的目标应用程序的应用标识,其中,第二音频状态变化信息用于指示停止播放音频。根据所述应用标识确定所述目标应用程序的类别;若所述目标应用程序的类别为指定类别,则确定监测到指定事件结束。

具体地,以指定事件为运行游戏类应用程序、播放视频和播放直播内容为例,当游戏,观看视频,直播事件结束,系统发送id_audio_playback_state_changed音频变化触发广播,结合前台应用是不是游戏,视频,直播类型,判定游戏,观看视频,直播事件结束,把这些事件结果传递给清理模块。

因此,在整个游戏,观看视频,直播的场景中,后台只有一些超级应用存活,这样系统资源cpu,内存,io接口读取得到充分的利用,使得用户游戏的体验得到最大程度的提升,玩游戏的流畅度得到很大的提升。

请参阅图7,图7示出了本申请实施例提供的一种应用控制方法,该方法包括:s701至s706。

s701:当监测到指定事件在前台开始执行时,确定所述指定事件开始执行的起始时刻之后的多个时间点。

作为一种实施方式,将监测到指定时间开始执行的时刻作为指定事件开始执行的起始时刻。以上述的第一音频状态变化信息为例,在获取到该第一音频状态变化信息的时候,能够获取到该目标应用程序的标识,例如,该目标应用程序的标识为该目标应用程序的包名packagename,然后,记录此时的系统时间,作为指定事件开始执行的起始时刻,记为systemtime,将包名,开始时间作为输入,导入训练好的预测事件使用时长的模型中,预测得到此次指定事件的预计执行时长。

具体地,在获取到指定事件开始执行的起始时刻的时候,以该起始时刻为起点,确定多个时间点。作为一种实施方式,该多个时间点可以是随机设置的。作为另一种实施方式,该多个时间点可以是成等差或等比的多个数值,例如,该多个时间点包括t1、t2、t3、t4、t5、、、tn。其中,t1、t2、t3、t4、t5、、、tn的值依次增大,即t1最小,tn最大,则t1、t2、t3、t4、t5、、、tn与起始时刻systemtime之间的两个相邻的时间点之间的时间差,依次为d1、d2、d3、d4、d5、、、dn,则其中,d1为t1与systemtime之间的时间差,d2为t2与t1之间的时间差,依次类推,其中,d1、d2、d3、d4、d5、、、dn相同,则该多个时间点是等差的关系。当然,也可以是等比的关系,在此不做限定。

s702:确定所述指定事件对应的目标应用程序。

具体地,确定指定时间对应的目标应用程序的实施方式可以是,采用上述的对指定操作的监测来确定指定事件对应的目标应用程序。具体地,该指定操作为目标应用程序的预设界面上显示的指定操作按键对应的操作,则通过监测该指定操作按键能够确定该指定事件对应的应用程序,即目标应用程序。另外,还可以根据上述包名确定指定事件对应的目标应用程序,具体地,请参阅上述实施例。

s703:根据预先获取的所述目标应用程序的历史操作数据,确定多个时间点中每个时间点对应的概率值,所述时间点的概率值用于表示所述指定事件在该时间点仍然在执行的可能性。

具体地,历史操作数据能够反应在当前时间点之前的一定时间内,该指定事件的运行情况,则该运行情况包括指定事件的历史运行时长,则根据该历史运行时长,能够预测出以该指定事件开始执行的起始时刻开始执行指定事件,然后,到达多个时间点中每个时间点的时候,指定事件依然在执行的可能性,即每个时间点对应的概率值。

具体地,以该指定事件为观看视频为例,使用用户过往两个月的应用使用数据,即观看视频的记录进行统计,比如在观看视频[x]秒之后的[n]秒后继续还在观看视频的概率值value,就认为此次观看视频预测的时间是n。x是开始观看视频的时间,n是预测时间predict_time,则x至n之间的时间长度为预计执行时长,概率值value设定为0.7-0.9之间的一系列的值。

s704:根据所述概率值大于指定数值的所有时间点确定所述预计执行时长。

其中,指定数值为预先设定的一个数值,如果某个时间点的概率值大于该指定数值,就认为在该时间点下,指定事件会继续被执行,即在该时间点的时候,指定事件并没有执行完成,还会继续执行。当概率值大于指定数值的时间点为多个的时候,可以从多个里面确定一个时间点,具体地,将所述概率值大于指定数值的所有时间点中,与所述起始时刻之间的差值最大的时间点作为终止时刻;根据所述起始时刻和所述终止时刻确定所述预计执行时长。

比如,观看视频x=5分钟之内,查找在接下来n=【10,20,30,40,50,60,70,80,90,。。。180】等差数列的一系列取值的n分钟内还在观看视频的的概率大于0.8的数值,则建立的模型中x=5分钟(300000毫秒)。若多个数值对应的概率值均大于0.8,则取n最大的值作为模型的预测值,其原理是一个应用若10分钟还在观看视频,那5分钟时一定也在看视频。

s705:确定当前在后台运行的后台应用程序。

s706:根据所述预计执行时长控制所述后台应用程序中满足指定条件的应用程序暂停运行。

请参阅图8,其示出了本申请实施例提供的一种应用控制装置800的结构框图,该装置可以包括:获取单元801、确定单元802和处理单元803。

获取单元801,用于当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长。

确定单元802,用于确定当前在后台运行的后台应用程序。

处理单元803,用于根据所述预计执行时长控制所述后台应用程序中满足指定条件的应用程序暂停运行。

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

请参阅图9,其示出了本申请实施例提供的一种应用控制装置900的结构框图,该装置可以包括:获取单元、确定单元和处理单元。

监测单元901,用于当监测到音频状态变化信息时,确定该音频状态变化信息内所包含的目标应用程序的应用标识;根据所述应用标识确定所述目标应用程序的类别;若所述目标应用程序的类别为指定类别,则确定监测到指定事件开始执行,其中,所述指定类别的应用程序用于执行所述指定事件。

获取单元902,用于当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长。

所述指定事件包括运行游戏类应用程序、播放视频或播放直播内容的至少一种。

获取单元902还用于当监测到指定事件开始执行时,确定所述指定事件开始执行的起始时刻之后的多个时间点;确定所述指定事件对应的目标应用程序;根据预先获取的所述目标应用程序的历史操作数据,确定多个时间点中每个时间点对应的概率值,所述时间点的概率值用于表示所述指定事件在该时间点仍然在执行的可能性;根据所述概率值大于指定数值的所有时间点确定所述预计执行时长。

确定单元903,用于确定当前在后台运行的后台应用程序。

处理单元904,用于根据所述预计执行时长控制所述后台应用程序中满足指定条件的应用程序暂停运行。

进一步地,处理单元904还用于若所述预计执行时长大于第一时间阈值且小于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序冻结。

进一步地,处理单元904还用于若所述预计执行时长大于第二时间阈值,则将所述后台应用程序中满足指定条件的应用程序杀死。其中,满足指定条件的应用程序为预设时间段内的使用次数低于指定数值的应用程序。

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

在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。

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

请参考图10,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。

处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。

存储器120可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。

请参考图11,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质1100可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non-transitorycomputer-readablestoragemedium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码1110的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。

综上所述,本申请提供的应用控制方法、装置、电子设备以及计算机可读介质,当监测到指定事件在前台开始执行时,获取所述指定事件在前台的预计执行时长,从而能够预测得到指定时间可能执行的时间长度,然后,确定当前在后台运行的后台应用程序,根据所述预计执行时长控制所述后台应用程序中满足指定条件的应用程序暂停运行,从而,暂停运行的应用程序的资源能够得到释放,即其运行时所占用的内存和系统资源就会被释放,以便为指定事件的运行提供更加丰富的内存和系统资源。因此,本申请能够根据指定事件的预计执行时长而对后台应用程序运行是占用的资源释放,更加灵活,更加适用设备当前的运行状况。可以根据具体事件实现精准的后台清理,使得系统资源cpu,内存,io接口读取得到充分的利用,使得用户游戏的体验得到最大程度的提升,用户玩游戏的流畅度得到很大的提升。

另外,本申请实施例可以实时,精准的识别用户事件,比如游戏,观看视频,直播等用户较长时间使用电子设备的事件,有效的结合预计执行时长和指定事件,给出动态合理的后台清理策略,可以在自定义的事件发生时,比如游戏,视频等事件发生的时候进行后台清理,保证系统资源最有效的给予用户正在关心的应用,提升系统的流畅性,提升用户的使用体验。

另外,需要说明的是,上述指定事件还可以是视频通话,驾驶模式,看电影等等一系列的事件。

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

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