CN109992369B - 应用程序处理方法和装置、电子设备、计算机可读存储介质 - Google Patents

应用程序处理方法和装置、电子设备、计算机可读存储介质 Download PDF

Info

Publication number
CN109992369B
CN109992369B CN201711484473.3A CN201711484473A CN109992369B CN 109992369 B CN109992369 B CN 109992369B CN 201711484473 A CN201711484473 A CN 201711484473A CN 109992369 B CN109992369 B CN 109992369B
Authority
CN
China
Prior art keywords
resource
application program
foreground
application
occupancy rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711484473.3A
Other languages
English (en)
Other versions
CN109992369A (zh
Inventor
陈岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201711484473.3A priority Critical patent/CN109992369B/zh
Publication of CN109992369A publication Critical patent/CN109992369A/zh
Application granted granted Critical
Publication of CN109992369B publication Critical patent/CN109992369B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping

Abstract

本申请提供一种应用程序处理方法和装置、电子设备、计算机可读存储介质。所述方法包括:每间隔检测时长获取一次前台应用程序所对应的前台资源占用率;根据所述前台应用程序从后台应用程序中获取待处理应用程序;根据所述前台资源占用率获取资源限制策略;根据所述资源限制策略将所述待处理应用程序进行资源限制处理。上述应用程序处理方法和装置、电子设备、计算机可读存储介质,可以提高应用程序的运行效率。

Description

应用程序处理方法和装置、电子设备、计算机可读存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序处理方法和装置、电子设备、计算机可读存储介质。
背景技术
智能设备可以通过应用程序实现不同的应用操作,比如可以通过购物类应用程序购买商品、通过视频类应用程序查看视频等。应用程序可以被冻结,冻结后的应用程序无法再继续运行,不会占用智能设备中处理器资源。但是由于应用程序还是存在与智能设备中的,因此还会占用智能设备中的内存、硬件等资源。
发明内容
本申请实施例提供一种应用程序处理方法和装置、电子设备、计算机可读存储介质,可以提高应用程序的运行效率。
一种应用程序处理方法,包括:
每间隔检测时长获取一次前台应用程序所对应的前台资源占用率;
根据所述前台应用程序从后台应用程序中获取待处理应用程序;
根据所述前台资源占用率获取资源限制策略;
根据所述资源限制策略将所述待处理应用程序进行资源限制处理。
一种应用程序处理装置,包括:
资源获取模块,用于每间隔检测时长获取一次前台应用程序所对应的前台资源占用率;
应用获取模块,用于根据所述前台应用程序从后台应用程序中获取待处理应用程序;
策略获取模块,用于根据所述前台资源占用率获取资源限制策略;
应用处理模块,用于根据所述资源限制策略将所述待处理应用程序进行资源限制处理。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
每间隔检测时长获取一次前台应用程序所对应的前台资源占用率;
根据所述前台应用程序从后台应用程序中获取待处理应用程序;
根据所述前台资源占用率获取资源限制策略;
根据所述资源限制策略将所述待处理应用程序进行资源限制处理。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
每间隔检测时长获取一次前台应用程序所对应的前台资源占用率;
根据所述前台应用程序从后台应用程序中获取待处理应用程序;
根据所述前台资源占用率获取资源限制策略;
根据所述资源限制策略将所述待处理应用程序进行资源限制处理。
上述应用程序处理方法和装置、电子设备、计算机可读存储介质,每间隔检测时长获取一次前台应用程序所对应的前台资源占用率,然后根据前台资源占用率获取资源限制策略,并根据前台应用程序获取待处理应用程序。根据获取的资源限制策略对待处理应用程序进行资源限制处理。这样可以根据前台应用程序的运行情况,通过资源限制处理实时控制后台应用程序对资源的占用,以保证前台应用程序的高效运行,提高应用程序的运行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中应用程序处理方法的应用环境示意图;
图2为一个实施例中电子设备的内部结构示意图;
图3为一个实施例中应用程序处理方法的流程图;
图4为另一个实施例中应用程序处理方法的流程图;
图5为一个实施例中应用程序的资源限制状态的示意图;
图6为一个实施例中电子设备的部分架构图;
图7为一个实施例中应用程序处理装置的结构示意图;
图8为另一个实施例中应用程序处理装置的结构示意图;
图9为与本申请实施例提供的电子设备相关的手机的部分结构的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
图1为一个实施例中应用程序处理方法的应用环境示意图。如图1所示,该应用环境包括客户端102和服务器104。客户端102上可以安装应用程序,应用程序在客户端102的前台运行时,可以每间隔检测时长获取一次前台应用程序所对应的前台资源占用率;根据前台应用程序从后台应用程序中获取待处理应用程序;根据前台资源占用率获取资源限制策略;根据资源限制策略将待处理应用程序进行资源限制处理。服务器104可以用于向客户端102推送应用程序处理算法,客户端102根据该应用程序处理算法对应用程序进行处理。其中,客户端102为处于计算机网络最外围,主要用于输入用户信息以及输出处理结果的电子设备,例如可以是个人电脑、移动终端、个人数字助理、可穿戴电子设备等。服务器104是用于响应服务请求,同时提供计算服务的设备,例如可以是一台或者多台计算机。可以理解的是,本申请提供的其他实施例中,应用程序处理方法的应用环境可以只包含客户端102。
如图2所示,提供了一种电子设备的内部结构示意图。该电子设备包括通过系统总线连接的处理器、存储器和显示屏。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器用于存储数据、程序、和/或指令代码等,存储器上存储至少一个计算机程序,该计算机程序可被处理器执行,以实现本申请实施例中提供的适用于电子设备的应用程序处理方法。存储器可包括磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random-Access-Memory,RAM)等。例如,在一个实施例中,存储器包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现本申请各个实施例所提供的一种应用程序处理方法。内存储器为非易失性存储介质中的操作系统和计算机程序提供高速缓存的运行环境。显示屏可以是触摸屏,比如为电容屏或电子屏,用于显示前台进程对应的应用的界面信息,还可以被用于检测作用于该显示屏的触摸操作,生成相应的指令,比如进行前后台应用的切换指令等。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如该电子设备还包括通过系统总线连接的网络接口,网络接口可以是以太网卡或无线网卡等,用于与外部的电子设备进行通信,比如可用于同服务器进行通信。
图3为一个实施例中应用程序处理方法的流程图。本实施例中的应用程序处理方法,以运行于图1中的终端或服务器上为例进行描述。如图3所示,该应用程序处理方法包括步骤302至步骤308。其中:
步骤302,每间隔检测时长获取一次前台应用程序所对应的前台资源占用率。
应用程序(Application,APP)是指电子设备中针对某种应用目的所撰写的软体,电子设备可以通过应用程序实现对用户的需求服务。例如,用户可以通过游戏类应用程序玩游戏,也可以通过视频类应用程序看视频,还可以通过音乐类应用程序播放音乐等。应用程序可以根据运行的状态分为前台应用程序和后台应用程序。前台应用程序是指在电子设备的前台运行的应用程序,前台应用程序可以在与在前台显示并与用户实现交互。后台应用程序是指在电子设备的后台运行的应用程序,后台应用程序一般不能在前台显示并与用户实现交互过程。
一般地,应用程序的应用操作是由一个或多个进程(process)来共同完成,进程是是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。同时,一个进程可以对应一个或多个线程,线程是程序中一个单一的顺序控制流程,是进程内一个相对独立的、可调度的执行单元。进程可包括前台进程和后台进程,前台进程即为在电子设备前台运行的进程,后台进程即为在电子设备后台运行的进程。电子设备可以控制前台进程和后台进程的切换,前台进程可切换到后台运行,后台进程也可以切换到前台运行。具体地,可以通过进程池来实现对进程的管理,进程池中可以存放一个或多个进程对应的进程标识。进程标识用于唯一标示一个进程。进程池可以包括前台进程池和后台进程池,前台进程池中包括前台进程对应的进程标识,后台进程池中包括后台进程对应的进程标识。当检测到前台进程和后台进程的运行状态发生改变时,进程池会相应地添加或删除产生变化的进程标识。例如,进程A的进程标识为“0123”,当检测到进程A由后台进程变成前台进程时,可将该进程A的进程标识“0123”从后台进程池中移除,并添加到前台进程池中。
资源是指电子设备在处理应用事件时所必须用到的软件或硬件资源,比如电子设备的CPU(Central Processing Unit,中央处理器)、内存(Memory)、硬件、网络资源、IO(Input-Output,输入输出)等。电子设备在运行应用程序的过程中,会通过内核层将各个应用程序对资源的占用情况进行记录,并通过记录的各个应用的资源占用情况得到电子设备总的资源占用情况。前台资源占用率就是指运行在电子设备前台的应用程序所占用资源比例。电子设备可以在运行过程中,每间隔检测时长获取一次前台应用程序所对应的前台资源占用率。检测时长可以通过系统或用户进行设置,可以是固定不变的,也可以根据前台应用程序的运行实时进行调整。例如,可以每1分钟读取一次记录资源占用率的文件,然后根据该文件获取前台资源占用率。
步骤304,根据前台应用程序从后台应用程序中获取待处理应用程序。
待处理应用程序是指需要进行资源限制处理的应用程序。可以理解的是,电子设备中运行的应用程序可以分为前台应用程序和后台应用程序,前台应用程序一般被看做比较重要的应用程序,则可以根据前台应用程序的运行情况来控制后台应用程序的运行。例如,可以将前台应用程序的优先级和后台应用程序的优先级进行比较,然后从后台应用程序中获取待处理应用程序。将优先级较高的后台应用程序保留正常运行的状态,将优先级低的后台应用程序作为待处理应用程序,进行资源限制处理。
获取待处理应用程序具体可以包括:获取前台应用程序的前台应用优先级;获取应用优先级低于该前台应用优先级的后台应用程序,作为待处理应用程序。应用优先级用于表示应用程序的重要程度。例如,可以定义系统应用程序的应用优先级高于第三方应用程序的应用优先级,或者根据应用程序的类型来定义应用优先级,即时通讯类应用程序的应用优先级高于游戏类应用程序。用户或系统可以自定义应用优先级,在本实施例中不进行具体限定。
步骤306,根据前台资源占用率获取资源限制策略。
资源限制策略是指用于对待处理应用程序进行资源限制处理的策略,预先建立前台资源占用率和资源限制策略的对应关系,然后获取的根据前台资源占用率获取对应的资源限制策略。当前台应用程序占用的资源较多的时候,说明前台应用程序对电子设备资源的需求比较高,那么可以加大对后台应用程序所占用资源的控制力度,以将电子设备中更多的资源用于前台应用程序的运行,保证前台应用程序的运行。当前台应用程序占用的资源较少时,说明前台应用程序对电子设备资源的需求比较低,那么可以减少对后台应用程序所占用资源的控制力度。一般地,例如,前台资源占用率为高于阈值时,将待处理应用程序进行冻结;前台资源占用率低于阈值时,对待处理应用程序所占用的资源进行回收。
步骤308,根据资源限制策略将待处理应用程序进行资源限制处理。
资源限制处理是指对应用程序占用的资源进行限制的处理。资源限制处理可以但不限于是控制应用程序进入冻结状态或资源限制状态,处于冻结状态的应用程序没有被关闭,只是暂时不运行。若应用程序处于冻结状态,则应用程序不占用处理器资源,但是仍然占用电子设备的内存和硬件等资源。资源限制状态是指对应用程序在运行时使用的电子设备的资源进行限制的状态,例如控制应用程序在运行时使用的CPU占用率不能超过5%。根据资源限制策略将待处理应用程序进行资源限制处理,可以限制后台待处理应用程序对电子设备资源的消耗。
上述实施例应用程序处理方法,每间隔检测时长获取一次前台应用程序所对应的前台资源占用率,然后根据前台资源占用率获取资源限制策略,并根据前台应用程序获取待处理应用程序。根据获取的资源限制策略对待处理应用程序进行资源限制处理。这样可以根据前台应用程序的运行情况,通过资源限制处理实时控制后台应用程序对资源的占用,以保证前台应用程序的高效运行,提高应用程序的运行效率。
图4为另一个实施例中应用程序处理方法的流程图。本实施例中的应用程序处理方法,以运行于图1中的终端或服务器上为例进行描述。如图4所示,该应用程序处理方法包括步骤402至步骤418。其中:
步骤402,获取前台应用程序的历史资源占用数据,并根据历史资源占用数据计算资源增长率。
在一个实施例中,在电子设备运行的过程中可以实时统计各个应用程序的资源占用率,然后将电子设备中所有应用程序的资源占用率的相加得到资源总占用率。具体地,电子设备可以在预设存储地址中存储监控日志文件,根据该监控日志文件可以获取电子设备的资源总占用率。同时该预设存储地址中还存储了若干个子文件夹,这些子文件夹中存储着各个进程日志文件。进程日志文件记录了进程从开启到当前时刻的具体运行情况的变化,根据这些进程日志文件就可以获取该进程所占用资源的情况,即可获取进程的资源占用率。然后将应用程序包含的所有进程的资源占用率相加,得到应用程序的资源占用率。
例如,在Android系统中,在/proc目录中可以读取到存储CPU总占用信息的监控日志文件。其中,/proc目录下还包含了多个子文件夹,这些子文件夹中存储了各个进程对应的CPU占用信息的进程日志文件。/proc目录中存储的监控日志文件的文件名为“stat”,/proc目录中的子文件夹中存储了进程日志文件,进程日志文件的文件名为“stat”。/proc目录下的stat文件记录了CPU的总占用信息,/proc目录下的子文件夹中的stat文件记录了各个进程的CPU占用信息。比如,/proc/pid目录下的stat文件记录了PID进程的CPU占用信息。
电子设备还可以实时统计内存、硬件、网络资源、IO等资源的占用率,例如在通过读取文件"/proc/meminfo"的信息能够获取手机的内存总量,而通过ActivityManager.getMemoryInfo(ActivityManager.MemoryInfo)方法可以获取当前的可用内存量,然后通过可用内存量和内存总量可以计算当前的内存总占用率。在Android系统中可以直接运行top命令来统计CPU、内存、IO等资源的占用率。
历史资源占用数据是指应用程序在当前时刻之前对资源占用的相关数据,资源增长率是指应用程序的资源占用率的增长值,可以是正向增长的,也可以是负向增长的。电子设备会对各个应用程序资源占用率进行记录,然后每间隔统计时长获取一次前台应用程序的前台资源占用率;并根据当前获取的前台资源占用率和上一次获取的前台资源占用率计算资源增长率。可以理解的是,这里的统计时长可以是固定的,也可以是根据前台资源变化情况进行实时调整的。该统计时长还可以是指检测时长。例如,当前获取的前台CPU占用率为20%,上一次获取的前台CPU占用率为30%,那么得到的资源增长率就为50%。若上一次获取的前台CPU占用率为10%,那么得到的资源增长率就为-10%。
步骤404,根据资源增长率获取对应的检测时长。
资源增长率可以反映前台应用程序的前台资源占用率的变化情况,还能反映前台应用程序的前台资源占用率的变化速度。可以根据前台资源占用率的变化速度,来调整对后台应用程序的资源占用率进行调整的频率。预先建立资源增长率与检测时长的对应关系,具体地可以预先将资源增长率划分为两个或两个以上的增长率区间,然后确定资源增长率所落入的目标增长率区间,并根据获取目标增长区间对应的检测时长。可以理解的是,步骤402中计算得到的资源增长率可以是正向增长,也可以是负向增长。那么在根据资源增长率获取检测时长的时候,可以建立资源增长率与检测时长的对应关系,然后根据资源增长率获取检测时长。也可以建立资源增长率的绝对值与检测时长的对应关系,再根据资源增长率的绝对值获取检测时长。
例如,可以将资源增长率划分为[-∞,-200%]、[-200%,-50%]、[-50%,50%]、[50%,200%]、[200%,∞]等五个增长率区间,对应的检测时长分别为3分钟、2分钟、1分钟、2分钟、3分钟。那么若当前获取的前台资源占用率为50%,上一次获取的前台资源占用率为10%,那么计算得到的资源增长率就为-80%。根据资源增长率获取的目标增长率区间就为[-200%,-50%],那么对应的检测时长就为2分钟。
步骤406,每间隔检测时长获取一次前台应用程序所对应的前台资源占用率。
可以理解的是,电子设备中的应用程序可以进行前后台切换,当应用程序切换到前台时,则可以开始每间隔检测时长获取一次前台应用程序的前台资源占用率。可以预先设置一个基础检测时长,当应用程序刚切换到前台时,根据该基础检测时长获取前台资源占用率。在前台应用程序运行一段时间之后,再开始根据历史资源占用数据动态调整检测时长。具体地,电子设备可以设置一个定时器,然后通过得到的检测时长对定时器的进行初始化,并在每次获得一个新的检测时长时,将定时器的参数进行更新。例如,在Android系统中,可以通过Handler、Timer、Thread、AlarmManager等方法来实现定时器,在IOS(IPhoneOperating System)系统中,可以通过NSTimer、CADisplayLink、GCD等方法来实现定时器。
步骤408,从后台应用程序中获取被前台应用程序依赖的依赖应用程序,并获取除依赖应用程序之外的后台应用程序作为待处理应用程序。
在一个实施例中,依赖表示一个应用程序需要利用于另一个或多个应用程序的数据才能顺利实现对该一个应用程序的执行的关系。存在依赖关系的两个应用程序,分别为被依赖的应用程序和依赖的应用程序。举例来说,应用程序A依赖于应用程序B,或应用程序B被应用程序A依赖,即表示应用程序A需要利用应用程序B的数据才能实现对该应用程序A的执行,此时,应用程序A即为依赖于应用程序B的应用程序,应用程序B即为被应用程序A依赖的应用程序。具体地,在本申请实施例中,依赖应用程序就是指被前台应用程序依赖的后台应用程序。
应用程序之间的依赖关系并非一直不变的,而是实时变化的。电子设备可将应用程序之间的依赖关系进行记录。具体地,两个应用程序之间的相互依赖是建立在它们需要互相通信的基础之上的。因此,获取前台应用程序对应的依赖应用程序包括:获取与所述前台应用程序之间存在通信关系的后台应用程序,作为依赖应用程序。
在操作系统中,是通过定义通信机制来建立应用程序之间的通信关系的。其中,通信机制包括Socket、Binder、共享内存等。Binder通信是Android系统中实现的一种高效的IPC(Inter-Process Communication,应用程序间通信)机制,是一种client-server(客户端-服务器)的通信结构。客户端与服务器会定义一个对应的代理接口,客户端调用代理接口中的方法时,代理接口的方法会将客户端的参数打包成一个Parcel对象,然后代理接口将Parcel对象发送给内核层中的Binder驱动。服务器可以读取Binder驱动中的请求数据,然后将Parcel对象进行解析并处理,并将处理结果返回。Socket通信可以对两个网络应用程序进行通信连接,从而实现网络上的应用程序的数据交换。具体地,本地应用程序间通信可以通过PID(Process Identity,应用程序标识)来唯一标识一个应用程序,但是在网络应用程序间通信是没有办法实现的。而在网络通信中IP(Internet Protocol,网络之间互连的协议)地址可以唯一标识网络中的主机,“协议+端口”可以唯一标识主机中的应用程序,因此在Socket通信中通常是通过“IP地址+协议+端口”的形式来唯一标识一个应用程序的。共享内存就是允许两个不相关的应用程序访问同一个逻辑内存,共享内存是在两个正在运行的应用程序之间共享和传递数据的一种非常有效的方式,不同应用程序之间共享的内存通常安排为同一段物理内存。
可选地,获取前台应用程序对应的依赖应用程序包括以下方式中至少一种:获取与前台应用程序具有socket通信关系的后台应用程序,作为依赖应用程序;获取与前台应用程序具有binder通信关系的后台应用程序,作为依赖应用程序;获取与前台应用程序之间进行内存共享的后台应用程序,作为依赖应用程序。
步骤410,若前台资源占用率大于第一占用率阈值,则获取第一资源限制策略。
根据前台应用程序的前台资源占用率获取资源限制策略,并根据资源限制策略对待处理应用程序进行资源限制处理。资源限制策略可分为第一资源限制策略和第二资源限制策略,第一资源限制策略是指根据前台资源占用率控制待处理应用程序进入冻结状态的策略,第二资源限制策略是指根据前台资源占用率控制待处理应用程序进入资源限制状态的策略。
步骤412,若前台资源占用率小于或等于第一占用率阈值,则获取第二资源限制策略。
在一个实施例中,当前台资源占用率大于第一占用率阈值时,说明前台应用程序的占用的资源比较多,即前台应用程序对电子设备的资源需求越高,则可以将获取的待处理应用程序进行冻结。冻结之后的待处理应用程序无法在继续运行,也不占用CPU资源,能够深层地限制后台应用程序对资源的占用。当前台资源占用率小于或等于第一占用率阈值时,说明前台应用程序的占用的资源比较少,则可以保持待处理应用程序的运行状态,在待处理应用程序的运行过程中,限制待处理应用程序对资源的占用。
步骤414,根据第一资源限制策略将待处理应用程序进行资源限制处理;或根据第二资源限制策略将待处理应用程序进行资源限制处理。
在本申请提供的实施例中,根据第一资源限制策略将待处理应用程序进行资源限制处理包括:控制待处理应用程序进入冻结状态。进入冻结状态的待处理应用程序,无法再继续运行,这样可以减少待处理应用程序对电子设备的资源占用。冻结后的待处理应用程序还可以被唤醒,用户或系统可以对唤醒的条件进行设置。
以Android系统中,实现应用程序的冻结和唤醒的方法有多种。以其中一种为例,可以通过pm(package manager,包管理)命令来实现,在pm命令中,可以通过冻结命令pmdisable [–user USER_ID] PACKAGE_OR_COMPONENT将应用程序设置为冻结状态,然后还可以通过解冻命令pm enable [–user USER_ID] PACKAGE_OR_COMPONENT将处于冻结状态的应用程序进行唤醒,通过冻结列表查询命令pm list packages –d获取处于冻结状态的应用程序列表,以查看处于冻结状态的应用程序。可以理解的是,本申请中以Android操作系统为例对应用程序处理方法进行说明,但是本申请的应用程序处理方法并不仅限于在Android系统中实现,还可以应用在IOS、塞班、Windows、MAC OS(Macintosh OperatingSystem)等操作系统中。
在一个实施例中,根据第二资源限制策略对待处理应用程序进行资源限制处理包括:根据前台资源占用率获取对应的资源限制级别,控制待处理应用程序进入资源限制级别对应资源限制状态。其中,处于资源限制状态的应用程序在运行时对电子设备的资源占用率小于第二占用率阈值。当待处理应用程序处于资源限制状态时,待处理应用程序对电子设备的资源占用率就不能超过第二占用率阈值,这样可以控制待处理应用程序对电子设备的资源占用,降低后台对资源的占用,提高前台的运行效率。例如,控制待处理应用程序在运行时的CPU占用率不能超过5%,以减少待处理应用程序对CPU的过度消耗,降低用户对手机的依赖。在手机系统中可以通过cgroups(control groups,控制组)来控制待处理应用程序的CPU、内存、IO等资源占用率,即控制所获取的待处理应用程序进入资源限制状态。
资源限制级别用于表示对应用程序的资源限制程度,每一个资源限制级别对应一个第二占用率阈值。当前台资源占用率小于或等于第一占用率阈值时,根据前台资源占用率获取对应的资源限制级别。例如,第一占用率阈值可以为80%,当前台资源占用率大于80%时,可以将待处理程序进行冻结;当前台资源占用率小于或等于80%时,根据前台资源占用率控制待处理应用程序进入资源限制状态。可以预先将前台资源占用率划分为两个或两个以上的占用率区间,然后建立每一个占用率区间与资源限制级别的对应关系。根据获取的前台资源占用率确定目标占用率区间,然后根据目标占用率区间获取对应的资源限制级别。例如,当前台资源占用率小于或等于80%时,将前台资源占用率划分为[0,20%]、[20%,50%]和[50%,80%]等三个占用率区间,分别对应轻度资源限制级别、普通资源限制级别和深度资源限制级别等三个资源限制级别等级,不同的资源限制级别对应的占用率阈值不同。若获取的前台资源占用率为60%,那么对应的目标占用率区间就为[50%,80%],对应的资源限制级别就为深度资源限制级别。
在本申请提供的其他实施例中,还可以根据电子设备的资源剩余率来控制后台应用程序对后台应用程序的资源占用。具体地,获取电子设备的资源剩余率,根据前台资源占用率和资源剩余率计算资源控制率;根据资源控制率获取对应的资源限制级别;控制待处理应用程序进入资源限制级别对应资源限制状态。资源剩余率是指电子设备的剩余资源与总资源的比例。例如,前台应用程度的前台资源占用率为30%,后台应用程序的后台资源占用率为45%,那么可以得到资源剩余率就为100%-30%-45%=25%。
根据前台资源占用率和资源剩余率计算资源控制率具体可以包括:将前台资源占用率除以资源剩余率得到资源控制率。前台资源占用率越大,资源剩余率越小,计算得到的资源控制率就越大,说明前台应用程序运行时的资源需求越大。例如,前台资源占用率为50%,资源剩余率为20%,那么计算得到的资源控制率就为50%÷20%=25%。可以预先建立资源控制率与资源限制级别的对应关系,然后根据计算得到的资源控制率获取对应的资源限制级别。
步骤416,若检测到前台应用程序切换到后台,则开始计时。
在对待处理应用程序进行资源限制处理之后,电子设备可以对前台应用程序进行监控。当前台应用程序切换到后台时,电子设备启动计时器,然后通过计时器开始计时。电子设备建立的计时器可以与前台应用程序建立对应关系,当前台应用程序切换到后台时,启动计时器开始计时。具体地,预先建立前台应用程序的前台应用标识与计时器的计时标识的对应关系,通过前台应用标识对应的计时标识查找并启动计时器开始计时。以Android系统为例,系统可以预先定义一个计时器,当检测到前台应用程序切换到后台时,前台应用标识查找对应的计时器,并通过timer.setBase(SystemClock.elapsedRealtime())将计时器清零,然后通过timer.start()函数启动计时器,开始计时。
步骤418,若计时时长超过时长阈值,则控制待处理应用程序恢复到正常运行状态。
当计时时长超过时长阈值时,将待处理应用程序恢复到正常运行状态。具体地,若待处理应用程序处于资源限制状态,则解除电子设备对待处理应用程序的资源限制。若待处理应用程序处于冻结状态,则将待处理应用程序从冻结状态中唤醒。恢复到正常运行状态后,待处理应用程序对电子设备资源的使用不再受到限制。另外,若检测到将待处理应用程序从后台切换到前台的切换指令时,则控制待处理应用程序恢复到正常运行状态。这样可以保证待处理应用程序能够及时处理电子设备的指令,提高电子设备的运行效率。
图5为一个实施例中应用程序的资源限制状态的示意图。如图5所示,电子设备的资源包括CPU、内存、IO、网络资源等,应用程序的状态可以分为正常运行状态、资源限制状态和冻结状态。其中,资源限制状态又可以分为轻度资源限制状态、普通资源限制状态和深度资源限制状态。在不同资源限制状态下,对应的可用资源502和不可用资源504不相同。从轻度资源限制状态、普通资源限制状态到深度资源限制状态,可用资源502递减。在正常运行状态下,应用程序的可用资源502为100%。
上述实施例应用程序处理方法,根据前台应用程序的历史资源占用数据计算资源增长率,根据资源增长率获取检测时长。每间隔检测时长获取一次前台应用程序所对应的前台资源占用率,然后根据前台资源占用率获取资源限制策略,并根据前台应用程序获取待处理应用程序。根据获取的资源限制策略对待处理应用程序进行资源限制处理。这样可以根据前台应用程序的运行情况,调整对后台资源占用的调整频率,通过资源限制处理实时控制后台应用程序对资源的占用,以保证前台应用程序的高效运行,提高应用程序的运行效率。当前台应用程序切换到后台的时长超过时长阈值,则恢复待处理应用程序的正常运行状态,这样可以保证电子设备中的应用程序正常运行。
应该理解的是,虽然图3和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种电子设备的部分架构图。其中,该电子设备的架构系统中包括JAVA空间层61、本地框架层62以及内核(Kernel)空间层63。JAVA空间层61上可包含策略应用程序610,电子设备可通过该策略应用程序610来发起对各个应用程序的冻结和解冻策略,从而实现对电子设备中的各个应用程序实现冻结和解冻的操作。例如,通过策略应用程序610来判断后台耗电的应用程序,并发起对该后台耗电的应用程序做冻结操作。本地框架层62中包含资源优先级和限制管理模块620及平台冻结管理模块622。电子设备可通过资源优先级和限制管理模块620来实时维护应用程序的优先级和对应的资源组,根据上层的需求来调整应用程序的优先级和资源组,从而达到优化性能,节省功耗的作用。电子设备可通过平台冻结管理模块622将后台可以冻结的任务按照进入冻结时间的长短,分配到对应预设的不同层次的冻结层,可选地,该冻结层可包括:CPU限制睡眠模式、CPU冻结睡眠模式、进程深度冻结模式。内核空间层63中包括UID管理模块630、Cgroup模块632、超时冻结退出模块634、Binder管控模块636、进程内存回收模块638。其中,UID管理模块630可以基于应用程序的用户身份标识(User Identifier,UID)来管理第三方应用程序的资源或进行冻结。相比较于基于进程身份标识(Process Identifier,PID)来进行进程管控,通过UID更便于统一管理一个用户的应用的资源。Cgroup模块632用于提供一套完善的中央处理器(Central Processing Unit,CPU)、CPUSET、内存(memory)、输入/输出(input/output,I/O)和Net相关的资源限制机制。超时冻结退出模块634用于解决出现冻结超时场景产生的异常。Binder管控模块636用于实现后台binder通信的优先级的控制。进程内存回收模块638用于实现进程的深度冻结模式,当第三方应用程序长期处于冻结状态的时候,可以释放进程的文件区,从而达到节省内存的模块,也加快该应用程序在下次启动时的速度。通过上述的架构,可实现本申请各个实施例中的应用程序处理方法。
图7为一个实施例中应用程序处理装置的结构示意图。如图7所示,该应用程序处理装置700包括资源获取模块702、应用获取模块704、策略获取模块706和应用处理模块708。其中:
资源获取模块702,用于每间隔检测时长获取一次前台应用程序所对应的前台资源占用率。
应用获取模块704,用于根据所述前台应用程序从后台应用程序中获取待处理应用程序。
策略获取模块706,用于根据所述前台资源占用率获取资源限制策略。
应用处理模块708,用于根据所述资源限制策略将所述待处理应用程序进行资源限制处理。
上述实施例应用程序处理装置,每间隔检测时长获取一次前台应用程序所对应的前台资源占用率,然后根据前台资源占用率获取资源限制策略,并根据前台应用程序获取待处理应用程序。根据获取的资源限制策略对待处理应用程序进行资源限制处理。这样可以根据前台应用程序的运行情况,通过资源限制处理实时控制后台应用程序对资源的占用,以保证前台应用程序的高效运行,提高应用程序的运行效率。
图8为另一个实施例中应用程序处理装置的结构示意图。如图8所示,该应用程序处理装置800包括时长获取模块802、资源获取模块804、应用获取模块806、策略获取模块808、应用处理模块810和应用恢复模块812。其中:
时长获取模块802,用于获取前台应用程序的历史资源占用数据,并根据所述历史资源占用数据计算资源增长率;根据所述资源增长率获取对应的检测时长。
资源获取模块804,用于每间隔检测时长获取一次前台应用程序所对应的前台资源占用率。
应用获取模块806,用于根据所述前台应用程序从后台应用程序中获取待处理应用程序。
策略获取模块808,用于根据所述前台资源占用率获取资源限制策略。
应用处理模块810,用于根据所述资源限制策略将所述待处理应用程序进行资源限制处理。
应用恢复模块812,用于若检测到所述前台应用程序切换到后台,则开始计时;若计时时长超过时长阈值,则控制所述待处理应用程序恢复到正常运行状态。
上述实施例应用程序处理装置,根据前台应用程序的历史资源占用数据计算资源增长率,根据资源增长率获取检测时长。每间隔检测时长获取一次前台应用程序所对应的前台资源占用率,然后根据前台资源占用率获取资源限制策略,并根据前台应用程序获取待处理应用程序。根据获取的资源限制策略对待处理应用程序进行资源限制处理。这样可以根据前台应用程序的运行情况,调整对后台资源占用的调整频率,通过资源限制处理实时控制后台应用程序对资源的占用,以保证前台应用程序的高效运行,提高应用程序的运行效率。当前台应用程序切换到后台的时长超过时长阈值,则恢复待处理应用程序的正常运行状态,这样可以保证电子设备中的应用程序正常运行。
在一个实施例中,应用获取模块806还用于从后台应用程序中获取被所述前台应用程序依赖的依赖应用程序,并获取除所述依赖应用程序之外的后台应用程序作为待处理应用程序。
在一个实施例中,应用获取模块806还用于获取与所述前台应用程序之间存在通信关系的后台应用程序,作为依赖应用程序。
在一个实施例中,策略获取模块808还用于若所述前台资源占用率大于第一占用率阈值,则获取第一资源限制策略;若所述前台资源占用率小于或等于第一占用率阈值,则获取第二资源限制策略。
在一个实施例中,策略获取模块808还用于根据所述第一资源限制策略将所述待处理应用程序进行资源限制处理;或根据所述第二资源限制策略将所述待处理应用程序进行资源限制处理。
在一个实施例中,应用处理模块810还用于控制所述待处理应用程序进入冻结状态;或根据所述前台资源占用率获取对应的资源限制级别,控制所述待处理应用程序进入所述资源限制级别对应资源限制状态,其中,处于所述资源限制状态的应用程序在运行时对电子设备的资源占用率小于第二占用率阈值。
本申请实施例中提供的应用程序处理装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述方法的步骤。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行上述实施例提供的应用程序处理方法。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的应用程序处理方法。
本申请实施例还提供了一种电子设备。如图9所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该电子设备可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、穿戴式设备等任意终端设备,以电子设备为手机为例:
图9为与本申请实施例提供的电子设备相关的手机的部分结构的框图。参考图9,手机包括:射频(Radio Frequency,RF)电路910、存储器920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(wireless fidelity,WiFi)模块970、处理器980、以及电源990等部件。本领域技术人员可以理解,图9所示的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,RF电路910可用于收发信息或通话过程中,信号的接收和发送,可将基站的下行信息接收后,给处理器980处理;也可以将上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路910还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System ofMobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、长期演进 (Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器920可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能的应用程序、图像播放功能的应用程序等)等;数据存储区可存储根据手机的使用所创建的数据(比如音频数据、通讯录等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元930可用于接收输入的数字或字符信息,以及产生与手机900的用户设置以及功能控制有关的键信号输入。具体地,输入单元930可包括触控面板931以及其他输入设备932。触控面板931,也可称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板931上或在触控面板931附近的操作),并根据预先设定的程式驱动相应的连接装置。在一个实施例中,触控面板931可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器980,并能接收处理器980发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板931。除了触控面板931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)等中的一种或多种。
显示单元940可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元940可包括显示面板941。在一个实施例中,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode, OLED)等形式来配置显示面板941。在一个实施例中,触控面板931可覆盖显示面板941,当触控面板931检测到在其上或附近的触摸操作后,传送给处理器980以确定触摸事件的类型,随后处理器980根据触摸事件的类型在显示面板941上提供相应的视觉输出。虽然在图9中,触控面板931与显示面板941是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板931与显示面板941集成而实现手机的输入和输出功能。
手机900还可包括至少一种传感器950,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板941的亮度,接近传感器可在手机移动到耳边时,关闭显示面板941和/或背光。运动传感器可包括加速度传感器,通过加速度传感器可检测各个方向上加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换)、振动识别相关功能(比如计步器、敲击)等; 此外,手机还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器等。
音频电路960、扬声器961和传声器962可提供用户与手机之间的音频接口。音频电路960可将接收到的音频数据转换后的电信号,传输到扬声器961,由扬声器961转换为声音信号输出;另一方面,传声器962将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据输出处理器980处理后,经RF电路910可以发送给另一手机,或者将音频数据输出至存储器920以便后续处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块970,但是可以理解的是,其并不属于手机900的必须构成,可以根据需要而省略。
处理器980是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在一个实施例中,处理器980可包括一个或多个处理单元。在一个实施例中,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等;调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
手机900还包括给各个部件供电的电源990(比如电池),优选的,电源可以通过电源管理系统与处理器980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
在一个实施例中,手机900还可以包括摄像头、蓝牙模块等。
在本申请实施例中,该电子设备所包括的处理器980执行存储在存储器上的计算机程序时实现上述实施例提供的应用程序处理方法的步骤。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM (SRAM)、动态 RAM (DRAM)、同步 DRAM (SDRAM)、双数据率 SDRAM (DDR SDRAM)、增强型 SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种应用程序处理方法,其特征在于,包括:
获取前台应用程序的历史资源占用数据,并根据所述历史资源占用数据计算资源增长率,根据预先建立的资源增长率与检测时长的对应关系获取对应的检测时长;所述历史资源占用数据是指应用程序在当前时刻之前对资源占用的数据,所述资源增长率是指应用程序的资源占用率的增长值,电子设备每间隔统计时长获取一次前台应用程序的前台资源占用率,根据当前获取的前台资源占用率和上一次获取的前台资源占用率计算所述资源增长率;
每间隔检测时长获取一次前台应用程序所对应的前台资源占用率;
根据所述前台应用程序从后台应用程序中获取待处理应用程序;所述待处理应用程序是指需要进行资源限制处理的应用程序;
根据预先建立的所述前台资源占用率与资源限制策略的对应关系获取对所述待处理应用程序进行资源限制的资源限制策略;若所述前台资源占用率大于第一占用率阈值,则获取第一资源限制策略;若所述前台资源占用率小于或等于第一占用率阈值,则获取第二资源限制策略;
根据所述第一资源限制策略或所述第二资源限制策略将所述待处理应用程序进行资源限制处理;
所述根据所述前台应用程序从后台应用程序中获取待处理应用程序包括:
获取前台应用程序的前台应用优先级;
将应用优先级低于所述前台应用优先级的后台应用程序作为待处理应用程序。
2.根据权利要求1所述的方法,其特征在于,所述根据所述前台应用程序从后台应用程序中获取待处理应用程序包括:
从后台应用程序中获取被所述前台应用程序依赖的依赖应用程序,并获取除所述依赖应用程序之外的后台应用程序作为待处理应用程序。
3.根据权利要求2所述的方法,其特征在于,所述从后台应用程序中获取被所述前台应用程序依赖的依赖应用程序包括:
获取与所述前台应用程序之间存在通信关系的后台应用程序,作为依赖应用程序。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一资源限制策略将所述待处理应用程序进行资源限制处理包括:
控制所述待处理应用程序进入冻结状态;
所述根据所述第二资源限制策略将所述待处理应用程序进行资源限制处理包括:
根据所述前台资源占用率获取对应的资源限制级别,控制所述待处理应用程序进入所述资源限制级别对应资源限制状态,其中,处于所述资源限制状态的应用程序在运行时对电子设备的资源占用率小于第二占用率阈值。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
若检测到所述前台应用程序切换到后台,则开始计时;
若计时时长超过时长阈值,则控制所述待处理应用程序恢复到正常运行状态。
6.一种应用程序处理装置,其特征在于,包括:
时长获取模块,用于获取前台应用程序的历史资源占用数据,并根据所述历史资源占用数据计算资源增长率,根据预先建立的资源增长率与检测时长的对应关系获取对应的检测时长;所述历史资源占用数据是指应用程序在当前时刻之前对资源占用的数据,所述资源增长率是指应用程序的资源占用率的增长值,电子设备每间隔统计时长获取一次前台应用程序的前台资源占用率,根据当前获取的前台资源占用率和上一次获取的前台资源占用率计算所述资源增长率;
资源获取模块,用于每间隔检测时长获取一次前台应用程序所对应的前台资源占用率;
应用获取模块,用于根据所述前台应用程序从后台应用程序中获取待处理应用程序;所述待处理应用程序是指需要进行资源限制处理的应用程序;
策略获取模块,用于根据预先建立的所述前台资源占用率与资源限制策略的对应关系获取对所述待处理应用程序进行资源限制的资源限制策略;若所述前台资源占用率大于第一占用率阈值,则获取第一资源限制策略;若所述前台资源占用率小于或等于第一占用率阈值,则获取第二资源限制策略;
应用处理模块,用于根据所述第一资源限制策略或所述第二资源限制策略将所述待处理应用程序进行资源限制处理;
所述应用获取模块,还用于获取前台应用程序的前台应用优先级;
将应用优先级低于所述前台应用优先级的后台应用程序作为待处理应用程序。
7.根据权利要求6所述的装置,其特征在于,
所述应用获取模块,还用于获取与所述前台应用程序之间存在通信关系的后台应用程序,作为依赖应用程序。
8.根据权利要求6所述的装置,其特征在于,
所述策略获取模块,还用于若所述前台资源占用率大于第一占用率阈值,则获取第一资源限制策略;若所述前台资源占用率小于或等于第一占用率阈值,则获取第二资源限制策略;
所述策略获取模块,还用于根据所述第一资源限制策略将所述待处理应用程序进行资源限制处理;或根据所述第二资源限制策略将所述待处理应用程序进行资源限制处理。
9.根据权利要求8所述的装置,其特征在于,
所述应用处理模块,还用于控制所述待处理应用程序进入冻结状态;或根据所述前台资源占用率获取对应的资源限制级别,控制所述待处理应用程序进入所述资源限制级别对应资源限制状态,其中,处于所述资源限制状态的应用程序在运行时对电子设备的资源占用率小于第二占用率阈值。
10.根据权利要求6至9中任一项所述的装置,其特征在于,所述装置还包括:
应用恢复模块,用于若检测到所述前台应用程序切换到后台,则开始计时;若计时时长超过时长阈值,则控制所述待处理应用程序恢复到正常运行状态。
11.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的方法的步骤。
CN201711484473.3A 2017-12-29 2017-12-29 应用程序处理方法和装置、电子设备、计算机可读存储介质 Active CN109992369B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711484473.3A CN109992369B (zh) 2017-12-29 2017-12-29 应用程序处理方法和装置、电子设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711484473.3A CN109992369B (zh) 2017-12-29 2017-12-29 应用程序处理方法和装置、电子设备、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109992369A CN109992369A (zh) 2019-07-09
CN109992369B true CN109992369B (zh) 2021-06-08

Family

ID=67110324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711484473.3A Active CN109992369B (zh) 2017-12-29 2017-12-29 应用程序处理方法和装置、电子设备、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109992369B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110795172B (zh) * 2019-10-22 2023-08-29 RealMe重庆移动通信有限公司 前台进程控制方法、装置、电子设备以及存储介质
CN113285976A (zh) * 2021-04-07 2021-08-20 上海商米科技集团股份有限公司 一种云端控制进程管理系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253941A (zh) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 一种缓存更新方法和缓存更新装置
CN104461546A (zh) * 2014-12-15 2015-03-25 北京奇虎科技有限公司 基于应用程序的计算设备优化方法及装置
CN104572287A (zh) * 2015-01-30 2015-04-29 西安酷派软件科技有限公司 一种系统切换时保持应用状态的方法、装置及终端
CN106331172A (zh) * 2016-10-20 2017-01-11 杭州迪普科技有限公司 一种应用于内容分发网络的资源检测方法及装置
CN106326137A (zh) * 2015-07-02 2017-01-11 腾讯科技(深圳)有限公司 一种内存优化方法、装置及用户设备
CN106792165A (zh) * 2016-12-02 2017-05-31 武汉斗鱼网络科技有限公司 一种资源动态调整方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639399B2 (en) * 2013-02-01 2017-05-02 Tencent Technology (Shenzhen) Company Limited Method, apparatus and terminal for releasing memory
CN106533988B (zh) * 2016-10-26 2020-07-14 维沃移动通信有限公司 一种应用程序网速的控制方法及移动终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253941A (zh) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 一种缓存更新方法和缓存更新装置
CN104461546A (zh) * 2014-12-15 2015-03-25 北京奇虎科技有限公司 基于应用程序的计算设备优化方法及装置
CN104572287A (zh) * 2015-01-30 2015-04-29 西安酷派软件科技有限公司 一种系统切换时保持应用状态的方法、装置及终端
CN106326137A (zh) * 2015-07-02 2017-01-11 腾讯科技(深圳)有限公司 一种内存优化方法、装置及用户设备
CN106331172A (zh) * 2016-10-20 2017-01-11 杭州迪普科技有限公司 一种应用于内容分发网络的资源检测方法及装置
CN106792165A (zh) * 2016-12-02 2017-05-31 武汉斗鱼网络科技有限公司 一种资源动态调整方法及装置

Also Published As

Publication number Publication date
CN109992369A (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
WO2019128546A1 (zh) 应用程序处理方法、电子设备、计算机可读存储介质
CN109992398B (zh) 资源管理方法、装置、移动终端及计算机可读存储介质
CN110032321B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109144232B (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
CN112703714B (zh) 应用程序处理方法和装置、计算机设备、计算机可读存储介质
CN110032267B (zh) 信息处理方法、装置、移动终端及计算机可读存储介质
CN107577508B (zh) 应用程序处理方法、装置、可读存储介质和移动终端
CN109992380B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN110032266B (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
CN108334345B (zh) 应用程序处理方法、装置、可读存储介质和移动终端
CN109992965B (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
CN109992399B (zh) 资源管理方法、装置、移动终端及计算机可读存储介质
CN110018905B (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
WO2019128573A1 (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
CN109992309B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN110032429B (zh) 信息处理方法、装置、移动终端及计算机可读存储介质
CN109992369B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109992323B (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
CN110018885B (zh) 应用程序冻结方法、装置、存储介质和终端
CN110032397B (zh) 应用处理方法和装置、电子设备、计算机可读存储介质
CN110018886B (zh) 应用状态切换方法和装置、电子设备、可读存储介质
CN109992360B (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
CN109992363B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN110046033B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109375995B (zh) 应用冻结方法和装置、存储介质、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Applicant before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant