一种应用管理方法、应用管理装置及智能设备与流程

文档序号:20163326发布日期:2020-03-24 21:14阅读:172来源:国知局
一种应用管理方法、应用管理装置及智能设备与流程

本申请属于数据处理技术领域,尤其涉及一种应用管理方法、应用管理装置、智能设备及计算机可读存储介质。



背景技术:

安卓(android)系统是支持多应用进程运行的操作系统,为了管理好各个应用进程的运行资源,减少不必要的应用进程占用内存资源,同时也要保证重要的应用进程不被终止,安卓系统会对每个应用进程进行优先级评分,该优先级评分越低,则安卓系统可以越长时间的保留该应用进程所占用的资源。当前,安卓系统对各个特定类型的应用进程的优先级评分往往是固定的,这将导致某些进程被安卓系统错误的回收,影响应用的正常使用。



技术实现要素:

有鉴于此,本申请提供了一种应用管理方法、应用管理装置、智能设备及计算机可读存储介质,可以实现对各个应用进程的优先级的有效管理,避免重要应用的资源被过早的释放。

本申请的第一方面提供了一种应用管理方法,包括:

确定目标应用,并将与上述目标应用关联的进程确定为目标应用进程;

根据预设的优先级评分策略,计算上述目标应用进程的第一优先级评分;

通过预设的接口获取上述目标应用进程所期望的第二优先级评分;

基于上述第一优先级评分及上述第二优先级评分,更新上述目标应用进程的目标优先级评分;

根据上述目标优先级评分管理上述目标应用,以确定上述目标应用所占用的资源是否能够被释放。

本申请的第二方面提供了一种应用管理装置,包括:

确定单元,用于确定目标应用,并将与上述目标应用关联的进程确定为目标应用进程;

计算单元,用于根据预设的优先级评分策略,计算上述目标应用进程的第一优先级评分;

获取单元,用于通过预设的接口获取上述目标应用进程所期望的第二优先级评分;

更新单元,用于基于上述第一优先级评分及上述第二优先级评分,更新上述目标应用进程的目标优先级评分;

管理单元,用于根据上述目标优先级评分管理上述目标应用,以确定上述目标应用所占用的资源是否能够被释放。

本申请的第三方面提供了一种智能设备,上述智能设备包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。

本申请的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。

本申请的第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。

由上可见,在本申请方案中,首先确定目标应用,并将与上述目标应用关联的进程确定为目标应用进程,随后根据预设的优先级评分策略,计算上述目标应用进程的第一优先级评分,接着再通过预设的接口获取上述目标应用进程所期望的第二优先级评分,最后基于上述第一优先级评分及上述第二优先级评分,更新上述目标应用进程的目标优先级评分,并根据上述目标优先级评分管理上述目标应用,以确定上述目标应用所占用的资源是否能够被释放。通过本申请方案,不再固定设置应用进程的优先级,而是动态更新各个应用进程的优先级,实现对各个应用进程优先级的有效管理,避免重要应用的资源被过早的释放。

附图说明

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

图1是本申请实施例提供的应用管理方法的实现流程示意图;

图2是本申请实施例提供的应用管理装置的结构框图;

图3是本申请实施例提供的智能设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

为了说明本申请上述的技术方案,下面通过具体实施例来进行说明。

实施例一

本申请实施例中的应用管理方法应用于智能手机、平板电脑、机器人等智能设备,此处不作限定。下面对本申请实施例提供的一种应用管理方法进行描述,请参阅图1,包括:

步骤101,确定目标应用,并将与上述目标应用关联的进程确定为目标应用进程;

在本申请实施例中,可以由用户确定需要进行管理的应用作为目标应用;或者,也可以由智能设备中所安装的任一应用自主发起相应的管理请求,以使得智能设备所安装的应用可以实现对其自身的自主管理;或者,还可以是对智能设备当前正在前台运行的应用程序进行监控,当监控到该应用程序从退出前台运行时,即可将该应用确定为目标应用,此处不对上述目标应用的确定方法作出限定。在确定了目标应用后,可以将与上述目标应用关联的进程确定为目标应用进程,也即,将上述目标应用所创建的应用进程确定为目标应用进程。

步骤102,根据预设的优先级评分策略,计算上述目标应用进程的第一优先级评分;

在本申请实施例中,可以根据智能设备所预先设定好的优先级评分策略,计算上述目标应用进程的第一优先级评分。可以认为,上述第一优先级评分为对目标应用进程进行优先级管理之前,目标应用进程在上述智能设备中的默认优先级评分。需要注意的是,在安卓系统中,应用进程的优先级评分越低,则该应用进程的优先级等级越高,也即,该应用进程所占用的资源可以被越晚释放。其中,上述优先级评分策略与该目标应用进程的进程类型以及该目标应用进程与其它应用进程的联系相关,则上述步骤102可以具体表现为:

a1、获取上述目标应用进程的进程类型,基于上述进程类型确定上述目标应用进程的第一优先级评分;

其中,各个应用进程可以根据其运行状态划分为不同的进程类型,上述进程类型包括有前台进程、可见进程、可感知进程、服务进程、后台进程及空进程等,此处不作限定。这些不同类型的应用进程的第一优先级评分互不相同,其中,前台进程的第一优先级评分最低,空进程的第一优先级评分最高,且基于前台进程-可见进程-可感知进程-服务进程-后台进程-空进程的顺序,上述第一优先级评分依次提高,也即,前台进程的第一优先级评分低于可见进程,可见进程的第一优先级评分低于可感知进程,以此类推。因而,通过上述目标应用进程的进程类型,可以先确定该目标应用进程初始的第一优先级评分。

a2、检测上述目标应用进程是否存在与其它应用进程的组件联系;

其中,不仅仅是进程类型会影响到应用进程的第一优先级评分,实际上,一个应用进程与其它应用进程在组件上的联系也会影响到应用进程的第一优先级评分。因而,可以是在基于进程类型确定了目标应用进程初始的第一优先级评分后,再检测上述目标应用进程是否存在与其它应用进程的组件联系,上述组件联系包括组件service联系以及组件contentprovider联系。

a3、若上述目标应用进程存在与上述其它应用进程的组件联系,则基于上述其它应用进程的优先级评分对上述目标应用进程的第一优先级评分进行更新。

其中,若检测到上述目标应用进程并不存在与上述其它应用进程的组件联系,则认为当前没有其它应用进程对上述目标应用进程有影响,基于此,可以将基于进程类型所确定的该目标应用进程的初始的第一优先级评分作为该目标应用进程最终的第一优先级评分;反之,若检测到上述目标应用进程存在与上述其它应用进程的组件联系,则可以基于上述其它应用进程的优先级评分对上述目标应用进程的第一优先级评分进行更新,具体为b1、若上述目标应用进程存在与上述其它应用进程的组件联系,则获取上述其它应用进程的优先级评分;

其中,当检测到目标应用进程存在与上述其它应用进程的组件联系时,不管该组件联系是组件service联系还是组件contentprovider联系,都可以先去获取这一其它应用进程的优先级评分。该其它应用进程的优先级评分也是根据其进程类型所确定而得的。

b2、将上述其它应用进程的优先级评分与上述目标应用进程当前的第一优先级评分进行比对;

b3、若上述其它应用进程的优先级评分低于上述目标应用进程当前的第一优先级评分,则基于上述其它应用进程的优先级评分对上述目标应用进程当前的第一优先级评分进行更新。

其中,应用进程的优先级评分越低,则该应用进程的优先级等级越高;因而,当比对发现其它应用进程的优先级评分较低时,即可将上述目标应用进程的第一优先级评分更新至与这一其它应用进程的优先级评分相同,也即实现对目标应用进程的优先级等级的提升。以下通过具体实例作出说明:假定应用进程a为前台应用,其优先级评分为0;又假定应用进程b为后台应用,其优先级评分为5;若检测发现应用进程a通过service连接到b应用进程后,则认为应用进程a存在与应用进程b的组件service联系,此时,可以将应用进程b的优先级评分由5更新到0,以使得应用进程b的优先级等级提升至与应用进程a相同。

步骤103,通过预设的接口获取上述目标应用进程所期望的第二优先级评分;

在本申请实施例中,当目标应用自身存在优先级评分需求时,即可向智能设备发起优先级评分调整请求,则上述步骤103包括:

c1、通过预设的接口获取上述目标应用所发送的优先级评分调整请求;

c2、在上述优先级评分调整请求的指示下,获取上述目标应用进程所期望的第二优先级评分。

其中,首先由目标应用自身发起优先级评分调整请求,随后智能设备可以通过预设的接口通知安卓系统的system_server进程中的activitymanagerservice线程来处理这一优先级评分调整请求。

步骤104,基于上述第一优先级评分及上述第二优先级评分,更新上述目标应用进程的目标优先级评分;

在本申请实施例中,由于优先级评分越低,优先级等级越高,因而可以对上述第一优先级评分及上述第二优先级评分进行比对,将其中较低的优先级评分更新为上述目标应用进程的目标优先级评分。由于上述第一优先级评分是目标应用进程的默认优先级评分,而第二优先级评分为目标应用进程的期望优先级评分,也即是说,当默认优先级评分不高于上述期望优先级评分时,忽略目标应用所发起的优先级评分调整请求,直接将该默认优先级评分作为其最终的目标优先级评分;当默认优先级评分高于上述期望优先级评分时,则基于目标应用所发起的优先级评分调整请求,将该期望优先级评分作为其最终的目标优先级评分。

步骤105,根据上述目标优先级评分管理上述目标应用,以确定上述目标应用所占用的资源是否能够被释放。

在本申请实施例中,通过动态管理目标应用进程的目标优先级评分实现对上述目标应用的管理;通常来说,安卓系统将会先结束优先级评分较高的应用进程,因而,若上述目标应用所创建的目标应用进程的目标优先级评分较高,则该目标应用所占用的资源将会被较早释放;若上述目标应用所创建的目标应用进程的目标优先级评分较低,则该目标应用所占用的资源能够被较晚释放。

可选地,上述应用管理方法还包括:

获取与上述目标应用相关的processrecord对象;

在上述processrecord对象中,通过第一变量存储上述目标应用的第一优先级评分,通过第二变量存储上述目标应用的第二优先级评分。

在本申请实施例中,安卓系统的system_server进程管理着所有其他java应用进程,其中,应用进程的优先级评分由system_server进程中的activitymanagerservice线程管理,每个应用进程可以用一个processrecord内部对象进行登记。当应用进程的优先级评分发生改变时,对应的processrecord对象中的参数也将调整更新。具体地,本申请实施例中,用第一变量adj来存储上述第一优先级评分,用第二变量selfexpectadj来存储上述第二优先级评分。

由上可见,通过本申请实施例,为应用程序的优先级评分提供了更方便高效的控制接口,以此让一个独立业务的应用自行控制其应用进程优先级,避免重要应用被过早的释放资源。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

实施例二

本申请实施例二提供了一种应用管理装置,上述应用管理装置应用于智能手机、平板电脑、机器人等智能设备,请参阅图2,上述应用管理装置200包括:

确定单元201,用于确定目标应用,并将与上述目标应用关联的进程确定为目标应用进程;

计算单元202,用于根据预设的优先级评分策略,计算上述目标应用进程的第一优先级评分;

获取单元203,用于通过预设的接口获取上述目标应用进程所期望的第二优先级评分;

更新单元204,用于基于上述第一优先级评分及上述第二优先级评分,更新上述目标应用进程的目标优先级评分;

管理单元205,用于根据上述目标优先级评分管理上述目标应用,以确定上述目标应用所占用的资源是否能够被释放。

可选地,上述计算单元202包括:

第一优先级评分确定子单元,用于获取上述目标应用进程的进程类型,基于上述进程类型确定上述目标应用进程的第一优先级评分;

组件联系检测子单元,用于检测上述目标应用进程是否存在与其它应用进程的组件联系;

第一优先级评分更新子单元,用于若上述目标应用进程存在与上述其它应用进程的组件联系,则基于上述其它应用进程的优先级评分对上述目标应用进程的第一优先级评分进行更新。

可选地,上述进程类型包括有前台进程、可见进程、可感知进程、服务进程、后台进程及空进程,其中,各不同类型的应用进程对应不同的第一优先级评分,上述前台进程的第一优先级评分最低,上述空进程的第一优先级评分最高,基于前台进程-可见进程-可感知进程-服务进程-后台进程-空进程的顺序,上述第一优先级评分依次提高。

可选地,上述第一优先级评分更新子单元包括:

获取子单元,用于若上述目标应用进程存在与上述其它应用进程的组件联系,则获取上述其它应用进程的优先级评分;

比对子单元,用于将上述其它应用进程的优先级评分与上述目标应用进程当前的第一优先级评分进行比对;

更新子单元,用于若上述其它应用进程的优先级评分低于上述目标应用进程当前的第一优先级评分,则基于上述其它应用进程的优先级评分对上述目标应用进程当前的第一优先级评分进行更新。

可选地,上述获取单元203包括:

请求接收子单元,用于通过预设的接口获取上述目标应用所发送的优先级评分调整请求;

优先级评分获取子单元,用于在上述优先级评分调整请求的指示下,获取上述目标应用进程所期望的第二优先级评分。

可选地,上述应用管理装置200还包括:

对象获取单元,用于获取与上述目标应用相关的processrecord对象;

优先级评分存储单元,用于在上述processrecord对象中,通过第一变量存储上述目标应用的第一优先级评分,通过第二变量存储上述目标应用的第二优先级评分。

由上可见,通过本申请实施例,应用管理装置为应用程序的优先级评分提供了更方便高效的控制接口,以此让一个独立业务的应用自行控制其应用进程优先级,避免重要应用被过早的释放资源。

实施例三

本申请实施例三提供了一种智能设备,该智能设备可以是智能手机、平板电脑、机器人等,此处不作限定。请参阅图3,本申请实施例中的智能设备3包括:存储器301,一个或多个处理器302(图3中仅示出一个)及存储在存储器301上并可在处理器上运行的计算机程序。其中:存储器301用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器302通过运行存储在存储器301的上述计算机程序时实现以下步骤:

确定目标应用,并将与上述目标应用关联的进程确定为目标应用进程;

根据预设的优先级评分策略,计算上述目标应用进程的第一优先级评分;

通过预设的接口获取上述目标应用进程所期望的第二优先级评分;

基于上述第一优先级评分及上述第二优先级评分,更新上述目标应用进程的目标优先级评分;

根据上述目标优先级评分管理上述目标应用,以确定上述目标应用所占用的资源是否能够被释放。

假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述根据预设的优先级评分策略,计算上述目标应用进程的第一优先级评分,包括:

获取上述目标应用进程的进程类型,基于上述进程类型确定上述目标应用进程的第一优先级评分;

检测上述目标应用进程是否存在与其它应用进程的组件联系;

若上述目标应用进程存在与上述其它应用进程的组件联系,则基于上述其它应用进程的优先级评分对上述目标应用进程的第一优先级评分进行更新。

在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述进程类型包括有前台进程、可见进程、可感知进程、服务进程、后台进程及空进程,其中,各不同类型的应用进程对应不同的第一优先级评分,上述前台进程的第一优先级评分最低,上述空进程的第一优先级评分最高,基于前台进程-可见进程-可感知进程-服务进程-后台进程-空进程的顺序,上述第一优先级评分依次提高。

在上述第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述若上述目标应用进程存在与上述其它应用进程的组件联系,则基于上述其它应用进程的优先级评分对上述目标应用进程的第一优先级评分进行更新,包括:

若上述目标应用进程存在与上述其它应用进程的组件联系,则获取上述其它应用进程的优先级评分;

将上述其它应用进程的优先级评分与上述目标应用进程当前的第一优先级评分进行比对;

若上述其它应用进程的优先级评分低于上述目标应用进程当前的第一优先级评分,则基于上述其它应用进程的优先级评分对上述目标应用进程当前的第一优先级评分进行更新。

在上述第一种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述通过预设的接口获取上述目标应用进程所期望的第二优先级评分,包括:

通过预设的接口获取上述目标应用所发送的优先级评分调整请求;

在上述优先级评分调整请求的指示下,获取上述目标应用进程所期望的第二优先级评分。

在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础,或者上述第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,处理器302通过运行存储在存储器301的上述计算机程序时还实现以下步骤:

获取与上述目标应用相关的processrecord对象;

在上述processrecord对象中,通过第一变量存储上述目标应用的第一优先级评分,通过第二变量存储上述目标应用的第二优先级评分。

应当理解,在本申请实施例中,所称处理器302可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器301可以包括只读存储器和随机存取存储器,并向处理器302提供指令和数据。存储器301的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器301还可以存储设备类型的信息。

由上可见,通过本申请实施例,智能设备为应用程序的优先级评分提供了更方便高效的控制接口,以此让一个独立业务的应用自行控制其应用进程优先级,避免重要应用被过早的释放资源。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

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

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

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。

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

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