CN112835689A - 一种控制应用进程的方法及装置 - Google Patents
一种控制应用进程的方法及装置 Download PDFInfo
- Publication number
- CN112835689A CN112835689A CN201911168613.5A CN201911168613A CN112835689A CN 112835689 A CN112835689 A CN 112835689A CN 201911168613 A CN201911168613 A CN 201911168613A CN 112835689 A CN112835689 A CN 112835689A
- Authority
- CN
- China
- Prior art keywords
- application process
- application
- importance degree
- importance
- preset
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 421
- 230000008569 process Effects 0.000 title claims abstract description 366
- 238000011084 recovery Methods 0.000 claims abstract description 31
- 238000004064 recycling Methods 0.000 claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 70
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本申请提供一种控制应用进程的方法及装置,用于提高相对于用户重要的应用程序的开启效率。该方法包括:确定所述应用进程的重要程度;其中,所述重要程度用于表征所述应用进程所关联的应用程序相对于用户的重要性;根据所述重要程度,以及预设规则,调整所述应用进程的回收优先级;其中,所述预设规则为重要程度越大,则调整后的所述应用进程的回收优先级比调整前的所述应用进程的回收优先级小。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种控制应用进程的方法及装置。
背景技术
随着科技的进步,终端设备的操作系统的功能越来越强大。用户在终端设备上从一个应用程序切换到其他界面时,该应用程序不会被完全关闭,而是会从前台运行转换为后台运行,用户在下一次打开该应用程序时,终端设备可以直接从操作系统的内存中调用缓存的该应用程序对应的应用进程的相关数据,不需要再重新获取数据启动该应用程序,使得用户打开该应用程序时,所花费的时间更少。
终端设备在某些情况下,例如,运行内存不足时,操作系统会将处于后台运行的应用程序对应的应用进程回收,即将该应用进程关闭,从而为在前台运行的应用程序提供更多的运行空间。
目前,回收进程的方法通常是通过进程回收机制(low memory killer,LMK)实现的。LMK主要是依据用户打开各个进程对应的程序的先后顺序确定回收哪个进程。然而,这种方法的判断依据较为单一,这种单一的判断依据在很多情况下会使终端设备错误的判断需要被回收的应用进程,使得用户需要花费很多时间在开启应用程序上,造成开启应用程序的效率较低。
发明内容
本申请实施例提供一种控制应用进程的方法及装置,用于提高相对于用户重要的应用程序的开启效率。
第一方面,提供一种控制应用进程的方法,该方法包括:
确定所述应用进程的重要程度;其中,所述重要程度用于表征所述应用进程所关联的应用程序相对于用户的重要性;
根据所述重要程度,以及预设规则,调整所述应用进程的回收优先级;其中,所述预设规则为重要程度越大,则调整后的所述应用进程的回收优先级比调整前的所述应用进程的回收优先级小。
在本申请实施例中,将应用程序相对于用户的重要性,即应用进程的重要程度,作为回收进程的其中一种依据,相较于传统的以用户打开各个进程对应的程序的先后顺序为依据回收进程的方式,本申请实施例中,在以进程启动的次序为依据为应用进程指定了回收优先级后,还根据应用进程的重要程度对应用进程的回收优先级进行了调整,使得内存空间中存储的应用进程是相对于用户重要的应用程序对应的应用进程,从而用户在下一次开启内存空间中存储的应用进程对应的应用程序时,可以直接在内存空间中调用该应用进程,无需再重新开启该应用进程,可以更加高效地开启相对于用户重要的应用程序。
可选的,在确定所述应用进程的重要程度之前,包括:
确定所述应用进程的占用内存不超过预设占用内存值。
在本申请实施例中,在确定应用进程的重要程度之前,可以先确定应用进程的占用内存不超过预设占用内存值,对于内存占用大于预设占用内存值的应用进程,不会对其回收优先级进行调整,避免由于将内存占用较大的应用进程调整为较低的回收优先级,而造成的内存占用较大的应用进程长时间不关闭,产生内存泄露的情况。
可选的,确定所述应用进程的重要程度,包括:
获取在应用进程的当前生命周期内,所述应用进程所关联的应用程序的开启次数;
若所述开启次数大于预设次数,则将所述应用进程的重要程度确定为预设重要程度;或,
根据所述开启次数,确定所述应用进程的重要程度;其中,开启次数越多,所述应用进程的重要程度越大。
在本申请实施例中,根据该应用进程对应的应用程序的开启次数,确定该应用进程的重要程度,用户经常打开的应用程序一般情况下是用户常用的重要的应用程序,将这种应用程序对应的应用进程确定为重要程度高的应用进程。一种情况下,只要开启次数大于预设次数就可以将应用进程的重要程度设置为预设重要程度,无需在整个生命周期内多次对应用进程的重要程度进行确定,节约了计算资源,提高了确定应用进程的重要程度的效率。另一种情况下,根据累计的开启次数,开启次数越多,应用进程的重要程度越大,可以根据不同的重要程度,为应用进程调整不同的回收优先级,使得在回收应用进程的占用内存时,重要程度高的应用进程被回收的可能性更小。无论在哪种情况下,用户再次开启重要程度高的应用进程对应的应用程序的时间都会更短,提高了开启重要程度高的应用程序的效率,提升了用户使用该应用程序的使用体验。
可选的,获取在应用进程的当前生命周期内,应用进程所关联的应用程序的开启次数,包括:
在所述应用进程的当前生命周期开始之后,则累计用户开启所述应用程序的次数,获得所述应用程序的开启次数。
在本申请实施例中,在应用进程的当前生命周期内,通过累计该应用进程对应的应用程序被用户打开的次数,作为应用进程对应的应用程序的开启次数。由于用户的喜好可能不断发生变化,因此相对于用户重要的应用程序可能也会发生变化,通过累计当前生命周期内,该应用程序的开启次数,可以实时的获得该应用程序是否是当前相对于用户重要的应用程序,从而,可以实时的调整应用程序对应的应用进程的重要程度,以尽量将对于用户重要程度高的应用进程的回收优先级设置得更低,提高用户开启重要的应用程序的效率。
可选的,确定所述应用进程的重要程度,包括:
获取所述应用进程的当前生命周期内,所述应用进程处于运行状态的运行时长,
若所述运行时长大于第一预设时长,则将所述应用进程的重要程度确定为预设重要程度;或,
根据所述运行时长,确定所述应用进程的重要程度;其中,运行时长越大,所述应用进程的重要程度越大。
在本申请实施例中,通过用户开启该应用进程对应的应用程序的运行时长来确定应用进程的重要程度。用户打开时间较长的应用程序一般情况下是用户常用的重要的应用程序,将这种应用程序对应的应用进程确定为重要程度高的应用进程,一种情况下,只要运行时长大于第一预设时长就可以将应用进程的重要程度设置为预设重要程度,无需在整个生命周期内多次对应用进程的重要程度进行确定,节约了计算资源,提高了确定应用进程的重要程度的效率。另一种情况下,根据累计的运行时长,运行时长越长,应用进程的重要程度越大,可以根据不同的重要程度,为应用进程调整不同的回收优先级,使得在回收应用进程的占用内存时,重要程度高的应用进程被回收的可能性更小。无论在哪种情况下,用户再次开启重要程度高的应用进程对应的应用程序的时间都会更短,提高了开启重要程度高的应用程序的效率,提升了用户使用该应用程序的使用体验。
可选的,确定所述应用进程的重要程度,包括:
若在所述应用进程的当前生命周期之前的第二预设时长内,存在至少一次所述应用程序的重要程度小于或等于预设重要程度,则确定当前生命周期内所述应用进程的重要程度。
在本申请实施例中,只有在应用进程的当前生命周期之前的第二预设时长内,存在至少一次的应用程序的重要程度不大于预设重要程度的情况下,才需要确定在应用进程的当前生命周期内,应用进程的重要程度,也就是说,无需实时地确定应用进程的重要程度,从而,在一定程度上,减少了控制应用进程过程中的处理量,提升了控制应用进程的效率。
可选的,在根据所述重要程度,以及预设规则,调整所述应用进程的回收优先级之前,包括:
若在所述应用进程的当前生命周期之前的第二预设时长内,存在连续N次所述应用程序的重要程度均大于预设第一阈值,则确定所述应用程序在当前生命周期内的重要程度大于预设第二阈值;其中,所述N为正整数。
在本申请实施例中,在应用进程的当前生命周期之前的第二预设时长内,存在连续的N次应用进程的重要程度大于预设第一阈值的情况下,可以直接确定该应用进程的当前生命周期内的重要程度大于预设第二阈值,也就是说,无需再通过累加应用进程对应的应用程序的开启次数,或累计应用进程对应的应用程序的运行时长,可以直接确定该应用进程的当前生命周期内的重要程度,可以在一定程度上,减少了控制应用进程过程中的处理量,提升了控制应用进程的效率。
第二方面,提供一种控制应用进程的装置,包括:
确定模块:用于确定所述应用进程的重要程度;其中,所述重要程度用于表征所述应用进程所关联的应用程序相对于用户的重要性;
调整模块:用于根据所述重要程度,以及预设规则,调整所述应用进程的回收优先级;其中,所述预设规则为重要程度越大,则调整后的所述应用进程的回收优先级比调整前的所述应用进程的回收优先级小。
可选的,所述确定模块还用于:
在确定所述应用进程的重要程度之前,确定所述应用进程的占用内存不超过预设占用内存值。
可选的,所述确定模块具体用于:
获取在应用进程的当前生命周期内,所述应用进程所关联的应用程序的开启次数;
若所述开启次数大于预设次数,则将所述应用进程的重要程度确定为预设重要程度;或,
根据所述开启次数,确定所述应用进程的重要程度;其中,开启次数越多,所述应用进程的重要程度越大。
可选的,所述确定模块具体用于:
在所述应用进程的当前生命周期开始之后,则累计用户开启所述应用程序的次数,获得所述应用程序的开启次数。
可选的,所述确定模块具体用于:
获取所述应用进程的当前生命周期内,所述应用进程处于运行状态的运行时长,
若所述运行时长大于第一预设时长,则将所述应用进程的重要程度确定为预设重要程度;或,
根据所述运行时长,确定所述应用进程的重要程度;其中,运行时长越大,所述应用进程的重要程度越大。
可选的,所述确定模块具体用于:
若在所述应用进程的当前生命周期之前的第二预设时长内,存在至少一次所述应用程序的重要程度小于或等于预设重要程度,则确定当前生命周期内所述应用进程的重要程度。
可选的,所述确定模块还用于:
在根据所述重要程度,以及预设规则,调整所述应用进程的回收优先级之前,若在所述应用进程的当前生命周期之前的第二预设时长内,存在连续N次所述应用程序的重要程度均大于预设第一阈值,则确定所述应用程序在当前生命周期内的重要程度大于预设第二阈值;其中,所述N为正整数。
第三方面,提供一种控制应用进程的装置,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一所述的方法。
第四方面,提供一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面中任一所述的方法。
附图说明
图1为本申请实施例提供的一种控制应用进程方法的应用场景示意图;
图2为本申请实施例提供的控制应用进程的方法的一种流程图;
图3为本申请实施例的提供的一种控制应用进程的方法的结构示意图一;
图4为本申请实施例的提供的一种控制应用进程的方法的结构示意图二。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
另外,本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,或者,可以是多个。
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
进程:是操作系统进行分配和调度的基本单位,是程序的基本执行实体。本申请实施例中所述方法可以由操作系统执行,操作系统例如安卓(Android)系统等。
生命周期:进程的生命周期是由操作系统控制的,用户在退出一个进程对应的程序时,该进程并不会被关闭,而是将相关数据存储在操作系统的内存中,当操作系统的内存不足时,操作系统会回收一些进程的相关数据,即关闭一些进程,释放一些内存,当进程被关闭时,进程的当前生命周期结束。
进程回收机制(low memory killer,LMK):操作系统依据LMK机制对进程进行回收,LMK机制是基于linux的内存溢出(out of memory,OOM)机制改进得到的进程回收机制。LMK机制主要是通过回收优先级为操作系统提供回收依据,操作系统会优先回收优先级高的进程,操作系统再回收优先级越低的进程。
现有技术中,每个进程启动时,终端设备都会为该进程指定回收优先级,从而,在某些情况下,例如终端设备内存不足时,终端设备可以根据回收优先级,对存储的进程进行回收,即,关闭进程。然而,终端设备通常是根据进程的开启次序为进程指定回收优先级,这种指定回收优先级的方法过于单一,并没有考虑到该进程是否是用户希望关闭的进程等因素。
请参考图1,为本申请实施例的一种控制应用程序(application,APP|)的方法的场景示意图。该场景包括终端设备101和终端设备101中的多个应用进程对应的应用程序102,每个应用进程对应不同的应用程序102。当用户开启某个应用程序102时,终端设备101启动对应的应用进程。当用户退出某个应用程序102时,终端设备101不会直接将该应用程序102对应的应用进程关闭,而是将该应用进程存储,使应用程序102保持后台运行的状态。当用户下次开启该应用程序102时,终端设备101可以直接从内存中启动该应用进程,使得应用程序102从后台运行转换为前台运行,从而节省了重新开启该应用进程的时间。
其中,终端设备101可以是手机、平板电脑、个人计算机(personal computer,PC)或智能手表等。执行本申请方法的装置除了可以是终端设备以外,可以是网络设备或以及其他具有操作系统的嵌入式设备。本申请实施例中将以终端设备为例进行介绍。
基于图1的场景,下面对本申请实施例中的控制应用进程的方法进行介绍。该方法可以由前文论述的终端设备101执行。进程的类型包括应用进程,还包括系统进程等其他类型,本申请实施例中以应用进程为例进行介绍。
请参考图2,为控制应用进程的方法的一种流程图。该控制应用进程的方法的流程具体如下:
S21:确定应用进程的重要程度;
S22:根据重要程度,以及预设规则,调整应用进程的回收优先级。
下面对本申请实施例中的控制应用进程的方法的总体思路进行介绍。
终端设备101在为应用进程指定了回收优先级之后,确定应用进程的重要程度,应用进程的重要程度表征的是应用进程对应的应用程序102相对于用户的重要性,对于用户的重要性越高的应用程序102,该应用程序102对应的应用进程的重要程度就越高。根据确定的应用进程的重要程度,对应用进程的回收优先级进行调整。如果应用进程的重要程度越高,那么将应用进程的回收优先级调整为更低的回收优先级。
在介绍完本申请实施例的总体思路之后,下面对各个步骤的具体实施方式进行详细说明。
在终端设备101执行S21,确定应用进程的重要程度之前,可以先确定应用进程的占用内存不超过预设占用内存值。
对于占用较大内存的应用进程,如果该应用进程的重要程度很高,此时,如果用户在一段时间内未再次开启该应用进程对应的应用程序102,那么该应用程序102就会一直保持后台运行,由于该应用进程占用的内存过大,那么就有可能产生内存泄露的情况,可能妨碍终端设备101中其他应用进程的正常运行。
具体的,终端设备101确定应用进程所占用的内存是否超过预设占用内存值,如果该应用进程所占用的内存大于该预设占用内存值,那么不对该应用进程的回收优先级进行调整。如果该应用进程所占用的内存小于或等于该预设占用内存值,那么终端设备101可以对该应用进程的回收优先级进行调整。其中,预设占用内存值可以是预先设定的值,例如根据经验设定的,也可以是根据终端设备101的实际情况设定的,例如终端设备的当前剩余内存空间,本申请不限制预设占用内存值的大小以及设定方式。
本申请实施例中,对于占用较大内存的应用进程,终端设备101不对该应用进程的回收优先级进行调整,避免产生内存泄露的问题。
在确定应用程序102所占用的内存小于或等于预设占用内存值之后,终端设备101可以确定是否需要确定应用进程的重要程度。
在终端设备101可以根据应用进程在当前生命周期之前的第二预设时长内,是否存在应用进程的重要程度小于或等于预设重要程度的情况,确定终端设备101是否需要确定应用进程的重要程度。
如果存在应用进程的重要程度小于或等于预设重要程度的情况,那么终端设备101需要确定当前生命周期内,应用进程的重要程度。如果不存在应用进程的重要程度小于或等于预设重要程度的情况,即,在应用进程的当前生命周期之前的第二预设时长内,存在连续N次应用程序102的重要程度均大于预设第一阈值的情况,那么终端设备101确定应用程序102在当前生命周期内的重要程度大于预设第二阈值。其中,预设重要程度用于表示该应用进程对应的应用程序102是相对于用户重要的应用程序102。
确定应用程序102在当前生命周期内的重要程度大于预设第二阈值可以是将应用进程上一个生命周期内的重要程度设置为该应用进程当前生命周期内的重要程度,或者,可以是将应用进程前N个生命周期内的重要程度的平均值设置为该应用进程当前生命周期内的重要程度,或者,可以是将该应用进程当前生命周期内的重要程度设置为大于预设第二阈值的任意一个值,具体不作限制。
其中,第二预设时长可以是应用进程当前生命周期之前的一个生命周期,或者,可以是应用进程当前生命周期之前的N个生命周期,具体不作限制,N为正整数。
预设第二阈值可以是应用进程的重要程度中表示应用进程重要的最小值。例如,应用进程的重要程度为“1”、“2”和“3”,分别表示“普通”、“重要”和“非常重要”,那么重要程度“2”和“3”均可以表示该应用进程重要,那么,预设第二阈值可以是“2”。预设第二阈值可以与预设第一阈值相同,或者,可以不相同,具体不作限制。
例如,某应用进程在当前生命周期的上一个生命周期内的重要程度为“1”,即表示该应用进程重要,那么将该应用进程上一个生命周期内的重要程度设置为该应用进程当前生命周期内的重要程度,即,该应用进程在当前生命周期内的重要程度为“1”。
在终端设备101确定需要确定应用进程的重要程度的情况下,终端设备101执行S21,确定应用进程的重要程度。应用进程的重要程度用于表征该应用进程对应的应用程序102相对于用户的重要性。
确定应用进程的重要程度的方法有很多,下面以其中的两种方法为例,进行介绍。
方法一:
获取在应用进程的当前生命周期内,应用进程所关联的应用程序102的开启次数;根据开启次数,确定应用进程的重要程度。
具体的,在应用进程的当前生命周期内,终端设备101获取该应用进程对应的应用程序102被用户打开的开启次数。在应用进程的当前生命周期开始时,该开启次数的值为1。用户关闭该应用进程对应的应用程序102之后,应用程序102进行后台运行,当用户再次打开该应用进程对应的应用程序102时,该开启次数的值累加为2,以此类推,直到该应用进程被关闭。
在一种可能的实施例中,当该开启次数累加到大于预设次数时,将该应用进程的重要程度设置为预设重要程度。如果在当前生命周期内,开启次数累加到大于预设次数后,开启次数可以清零,或者,可以继续进行累加,具体不作限制。如果在当前生命周期内,开启次数没有累加到大于预设次数,那么将该应用进程的重要程度确定为不重要。
例如,将预设次数设置为16次,用户打开某个应用程序102后,该应用程序102对应的应用进程的生命周期开始,此时,应用进程的开启次数为1次。当用户在这个生命周期内,打开了该应用程序102的次数为17次,即,开启次数为17时,将该应用程序102对应的应用进程标记为“1”,表示该应用程序102相对于用户是重要的应用程序102。当用户在这个生命周期内,打开了该应用程序102的次数一共为7次,即,开启次数为7时,将该应用程序102对应的应用进程标记为“0”,表示该应用程序102相对于用户是不重要的应用程序102。
在一种可能的实施例中,终端设备101可以根据累加的开启次数所属的取值范围确定应用进程的重要程度等级。开启次数越多,重要程度等级越大。
具体的,终端设备101可以提前存储有不同的重要程度等级,以及每个等级对应开启次数的一取值范围。在获得该应用程序102在当前生命周期内的开启次数之后,从而确定出该应用程序的重要程度等级。
例如,将开启次数的取值范围设置为“5~10”、“11~15”和“大于15”三个范围,分别对应重要程度的等级为“1”、“2”和“3”,分别表示“普通”、“重要”和“非常重要”。用户打开某个应用程序102后,该应用程序102对应的应用进程的生命周期开始,此时,应用进程的开启次数为1次。当用户在这个生命周期内,打开该应用程序102的次数为17次,即,开启次数为17时,对应所述的取值范围为“大于15”,那么该应用程序102的重要程度为“2”,表示该应用程序102相对于用户是非常重要的应用程序102。
方法二:
获取应用进程的当前生命周期内,应用进程处于运行状态的运行时长;
根据运行时长,确定应用进程的重要程度。
具体的,在应用进程的当前生命周期内,终端设备101获取该应用进程对应的应用程序102被用户打开的运行时长,即,该应用进程处于运行状态的运行时长。在应用进程的当前生命周期开始时,该运行时长从0开始计时。用户关闭该应用进程对应的应用程序102之后,应用程序102进行后台运行,此时,运行时长暂停计时,当用户再次打开该应用进程对应的应用程序102时,该运行时长继续计时,以此类推,直到该应用进程被关闭。其中,运行状态表示的是进程对应的程序处于前台运行的状态。前台运行可以理解应用程序直接在设备窗口运行,能够显示与用户互动界面的情况。
在一种可能的实施例中,当该运行时长大于第一预设时长时,将该应用进程的重要程度设置为预设重要程度。如果在当前生命周期内,运行时长大于第一预设时长后,运行时长可以清零,或者,可以继续进行计时,具体不作限制。其中,第一预设时长可以是小于或等于第二预设时长。
例如,将第一预设时长设置为3个小时,用户打开某个应用程序102后,该应用程序102对应的应用进程的生命周期开始,此时,应用进程的运行时长从0开始计时。当用户在这个生命周期内,使用该应用程序102的时长为3.5个小时,即,该应用程序102对应的应用进程的运行时长为3.5个小时,将该应用程序102对应的应用进程标记为“1”,表示该应用程序102相对于用户是重要的应用程序102。
在一种可能的实施例中,终端设备101可以根据累计的运行时长所属的取值范围确定应用进程的重要程度等级。运行时长越长,重要程度等级越大。
具体的,终端设备101可以提前存储有不同的重要程度等级,以及每个等级对应运行时长不同的取值范围。在获得该应用程序102在当前生命周期内的运行时长之后,从而确定出该应用程序的重要程度等级。
例如,将运行时长的取值范围设置为“0~3”、“3~6”和“大于6”三个范围,分别对应重要程度的等级为“1”、“2”和“3”,分别表示“普通”、“重要”和“非常重要”。用户打开某个应用程序102后,该应用程序102对应的应用进程的生命周期开始,此时,应用进程的运行时长从0开始计时。当用户在这个生命周期内,使用该应用程序102的时长为3.5个小时,即,当应用进程的运行状态的运行时长为3.5个小时,对应所述的取值范围为“3~6”,那么该应用程序102的重要程度为“0”,表示该应用进程重要。
在确定了应用进程的重要程度之后,终端设备101执行S22,根据重要程度,以及预设规则,调整应用进程的回收优先级。
具体的,根据应用进程的重要程度,按照应用进程的重要程度越大,那么调整后的应用进程的回收优先级相较于调整前的应用进程的回收优先级越小的预设规则,对应用进程的回收优先级进行调整。预设规则具体可以有多种形式,下面以其中的两种为例进行介绍。
预设规则一:
应用进程的重要程度大于预设重要程度时,将应用进程的回收优先级设置为预设的回收优先级。例如,预设的回收优先级可以是应用进程的回收优先级的可设置范围内的最小值。
其中,应用进程的回收优先级的可设置范围可以是包括终端设备101可以指定的应用程序102的回收优先级的所有数值,且,小于该应用进程的回收优先级的一个数值范围,或者,可以是在该数值范围内自定义的一个范围,具体不作限制。
具体的,在应用进程的重要程度只有“1”和“0”的情况下,即,重要程度只分为重要和不重要两种情况时,终端设备101将所有重要程度为“1”的应用进程的回收优先级设置为可设置范围内的最小数值。或者,在应用进程的重要程度分为多个等级的情况下,可以将重要程度大于某个等级的应用进程的回收优先级设置为可设置范围内的最小数值。
例如,回收优先级的可设置范围为“9~16”,重要程度分为“0”和“1”。某应用进程的重要程度为“1”,其回收优先级为“14”,那么根据该应用进程的重要程度,按照预设规则,可以将该应用进程的回收优先级设置为“9”。
预设规则二:
将应用进程的回收优先级与应用进程的重要程度成反比进行调整。例如,根据划分应用进程的重要程度等级的数量的不同,将可设置的回收优先级划分为相同数量的等级范围,将应用进程的回收优先级设置为与重要程度的等级对应的等级范围内的最小值。
具体的,应用进程的重要程度可以划分为不同数量的等级,根据重要程度等级划分的数量,可以将应用进程的回收优先级的可设置范围划分为相同数量的等级范围。进一步的,根据重要程度的等级,可以将应用进程的回收优先级设置为对应的等级范围内的最小数值。
例如,回收优先级的可设置范围为“9~17”,重要程度分为“0”、“1”和“2”。某应用进程的重要程度为“1”,其回收优先级为“14”,那么,可以将回收优先级的可设置范围划分为“9~11”、“12~14”和“15~17”三个等级范围,那么,根据应用进程的重要程度“1”,将该应用进程的回收优先级设置为“12~14”范围中的12。
基于同一发明构思,本申请实施例提供一种控制应用进程的装置,该装置能够实现前文论述的控制应用进程的方法。该装置设置在前述的电子设备中。请参考图3,该装置包括确定模块301和调整模块302,其中:
确定模块301:用于确定应用进程的重要程度;其中,重要程度用于表征应用进程所关联的应用程序相对于用户的重要性;
调整模块302:用于根据重要程度,以及预设规则,调整应用进程的回收优先级;其中,预设规则为重要程度越大,则调整后的应用进程的回收优先级比调整前的应用进程的回收优先级小。
在一种可能的实施例中,确定模块301还用于:
在确定应用进程的重要程度之前,确定应用进程的占用内存不超过预设占用内存值。
在一种可能的实施例中,确定模块301具体用于:
获取在应用进程的当前生命周期内,应用进程所关联的应用程序的开启次数;
若开启次数大于预设次数,则将应用进程的重要程度确定为预设重要程度;或,
根据开启次数,确定应用进程的重要程度;其中,开启次数越多,应用进程的重要程度越大。
在一种可能的实施例中,确定模块301具体用于:
在应用进程的当前生命周期开始之后,则累计用户开启应用程序的次数,获得应用程序的开启次数。
在一种可能的实施例中,确定模块301具体用于:
获取应用进程的当前生命周期内,应用进程处于运行状态的运行时长,
若运行时长大于第一预设时长,则将应用进程的重要程度确定为预设重要程度;或,
根据运行时长,确定应用进程的重要程度;其中,运行时长越大,应用进程的重要程度越大。
在一种可能的实施例中,确定模块301具体用于:
若在应用进程的当前生命周期之前的第二预设时长内,存在至少一次应用程序的重要程度小于或等于预设重要程度,则确定当前生命周期内应用进程的重要程度。
在一种可能的实施例中,确定模块301还用于:
在根据重要程度,以及预设规则,调整应用进程的回收优先级之前,若在应用进程的当前生命周期之前的第二预设时长内,存在连续N次应用程序的重要程度均大于预设第一阈值,则确定应用程序在当前生命周期内的重要程度大于预设第二阈值;其中,N为正整数。
基于同一发明构思,本申请实施例提供一种控制应用进程的装置,该装置相当于前文论述的电子设备,请参见图4,该装置包括:
至少一个处理器401,以及与至少一个处理器401连接的存储器402,本申请实施例中不限定处理器401与存储器402之间的具体连接介质,图4中是以处理器401和存储器402之间通过总线400连接为例。总线400在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线400可以分为地址总线、数据总线、控制总线等,为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器401也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器402存储有可被至少一个处理器401执行的指令,至少一个处理器401通过执行存储器402存储的指令,可以执行前文论述的控制应用进程方法。处理器401可以实现图3所示的装置中各个模块的功能。
其中,处理器401是该装置的控制中心,可以利用各种接口和线路连接整个该装置的各个部分,通过运行或执行存储在存储器402内的指令以及调用存储在存储器402内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的实施例中,处理器401可包括一个或多个处理单元,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。在一些实施例中,处理器401和存储器402可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器401可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的控制应用进程的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器402可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器402还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器401进行设计编程,可以将前述实施例中介绍的控制应用进程的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的控制应用进程的方法的步骤。如何对处理器401进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述控制应用进程的方法。
在一些可能的实施方式中,本申请提供的控制应用进程的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该装置执行本说明书上述描述的根据本申请各种示例性实施方式的控制应用进程的方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种控制应用进程的方法,其特征在于,所述方法包括:
确定所述应用进程的重要程度;其中,所述重要程度用于表征所述应用进程所关联的应用程序相对于用户的重要性;
根据所述重要程度,以及预设规则,调整所述应用进程的回收优先级;其中,所述预设规则为重要程度越大,则调整后的所述应用进程的回收优先级比调整前的所述应用进程的回收优先级小。
2.根据权利要求1所述的方法,其特征在于,在确定所述应用进程的重要程度之前,包括:
确定所述应用进程的占用内存不超过预设占用内存值。
3.根据权利要求1所述的方法,其特征在于,确定所述应用进程的重要程度,包括:
获取在应用进程的当前生命周期内,所述应用进程所关联的应用程序的开启次数;
若所述开启次数大于预设次数,则将所述应用进程的重要程度确定为预设重要程度;或,
根据所述开启次数,确定所述应用进程的重要程度;其中,开启次数越多,所述应用进程的重要程度越大。
4.根据权利要求3所述的方法,其特征在于,获取在应用进程的当前生命周期内,应用进程所关联的应用程序的开启次数,包括:
在所述应用进程的当前生命周期开始之后,则累计用户开启所述应用程序的次数,获得所述应用程序的开启次数。
5.根据权利要求1所述的方法,其特征在于,确定所述应用进程的重要程度,包括:
获取所述应用进程的当前生命周期内,所述应用进程处于运行状态的运行时长,
若所述运行时长大于第一预设时长,则将所述应用进程的重要程度确定为预设重要程度;或,
根据所述运行时长,确定所述应用进程的重要程度;其中,运行时长越大,所述应用进程的重要程度越大。
6.根据权利要求1所述的方法,其特征在于,确定所述应用进程的重要程度,包括:
若在所述应用进程的当前生命周期之前的第二预设时长内,存在至少一次所述应用程序的重要程度小于或等于预设重要程度,则确定当前生命周期内所述应用进程的重要程度。
7.根据权利要求1所述的方法,其特征在于,在根据所述重要程度,以及预设规则,调整所述应用进程的回收优先级之前,包括:
若在所述应用进程的当前生命周期之前的第二预设时长内,存在连续N次所述应用程序的重要程度均大于预设第一阈值,则确定所述应用程序在当前生命周期内的重要程度大于预设第二阈值;其中,所述N为正整数。
8.一种控制应用进程的装置,其特征在于,包括:
确定模块:用于确定所述应用进程的重要程度;其中,所述重要程度用于表征所述应用进程所关联的应用程序相对于用户的重要性;
调整模块:用于根据所述重要程度,以及预设规则,调整所述应用进程的回收优先级;其中,所述预设规则为重要程度越大,则调整后的所述应用进程的回收优先级比调整前的所述应用进程的回收优先级小。
9.一种控制应用进程的装置,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1~7中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168613.5A CN112835689A (zh) | 2019-11-25 | 2019-11-25 | 一种控制应用进程的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168613.5A CN112835689A (zh) | 2019-11-25 | 2019-11-25 | 一种控制应用进程的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112835689A true CN112835689A (zh) | 2021-05-25 |
Family
ID=75922327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911168613.5A Pending CN112835689A (zh) | 2019-11-25 | 2019-11-25 | 一种控制应用进程的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835689A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218307A (zh) * | 2013-04-18 | 2013-07-24 | 海信集团有限公司 | 内存管理系统和内存管理方法 |
CN105808440A (zh) * | 2016-03-14 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 应用程序的低内存测试方法、装置和系统 |
CN107168792A (zh) * | 2017-04-24 | 2017-09-15 | 宇龙计算机通信科技(深圳)有限公司 | 一种进程管理方法、及终端设备 |
CN107463403A (zh) * | 2017-07-31 | 2017-12-12 | 广东欧珀移动通信有限公司 | 进程控制方法、装置、存储介质以及电子设备 |
CN108228449A (zh) * | 2017-08-15 | 2018-06-29 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、终端设备及计算机可读存储介质 |
US10248321B1 (en) * | 2015-09-15 | 2019-04-02 | Amazon Technologies, Inc. | Simulating multiple lower importance levels by actively feeding processes to a low-memory manager |
EP3506114A1 (en) * | 2017-12-29 | 2019-07-03 | Guangdong Oppo Mobile Telecommunications Corp., Ltd | Memory processing method and device and storage medium |
CN110018899A (zh) * | 2018-01-10 | 2019-07-16 | 华为技术有限公司 | 回收内存的方法及装置 |
CN110221921A (zh) * | 2019-06-13 | 2019-09-10 | 深圳Tcl新技术有限公司 | 内存管理方法、终端及计算机可读存储介质 |
-
2019
- 2019-11-25 CN CN201911168613.5A patent/CN112835689A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218307A (zh) * | 2013-04-18 | 2013-07-24 | 海信集团有限公司 | 内存管理系统和内存管理方法 |
US10248321B1 (en) * | 2015-09-15 | 2019-04-02 | Amazon Technologies, Inc. | Simulating multiple lower importance levels by actively feeding processes to a low-memory manager |
CN105808440A (zh) * | 2016-03-14 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 应用程序的低内存测试方法、装置和系统 |
CN107168792A (zh) * | 2017-04-24 | 2017-09-15 | 宇龙计算机通信科技(深圳)有限公司 | 一种进程管理方法、及终端设备 |
CN107463403A (zh) * | 2017-07-31 | 2017-12-12 | 广东欧珀移动通信有限公司 | 进程控制方法、装置、存储介质以及电子设备 |
CN108228449A (zh) * | 2017-08-15 | 2018-06-29 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、终端设备及计算机可读存储介质 |
EP3506114A1 (en) * | 2017-12-29 | 2019-07-03 | Guangdong Oppo Mobile Telecommunications Corp., Ltd | Memory processing method and device and storage medium |
CN110018899A (zh) * | 2018-01-10 | 2019-07-16 | 华为技术有限公司 | 回收内存的方法及装置 |
CN110221921A (zh) * | 2019-06-13 | 2019-09-10 | 深圳Tcl新技术有限公司 | 内存管理方法、终端及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502340A (zh) | 一种资源动态调整方法、装置、设备及存储介质 | |
CN110764906B (zh) | 内存回收处理方法、装置、电子设备以及存储介质 | |
KR20070089460A (ko) | 우선 순위에 따른 비휘발성 메모리의 연산 처리 장치 및방법 | |
CN103092700A (zh) | 内存清理方法、装置和终端设备 | |
CN110727605B (zh) | 内存回收方法、装置以及电子设备 | |
US10261918B2 (en) | Process running method and apparatus | |
CN108205498B (zh) | 内存回收方法及装置、计算机装置及计算机可读存储介质 | |
CN106354659B (zh) | 一种嵌入式设备的flash资源回收的方法 | |
CN111324303A (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
CN110737606A (zh) | 内存回收处理方法、装置、电子设备以及存储介质 | |
CN112650575A (zh) | 资源调度方法、装置和云端服务系统 | |
CN108241522B (zh) | 虚拟化环境中的睡眠状态切换方法、装置及电子设备 | |
WO2017185263A1 (zh) | 一种内存回收方法及装置 | |
CN108287761B (zh) | 内存回收方法及装置、终端设备及计算机可读存储介质 | |
CN109521970A (zh) | 一种数据处理方法及相关设备 | |
CN112835689A (zh) | 一种控制应用进程的方法及装置 | |
CN112840309A (zh) | 命令调度方法、装置及存储介质 | |
CN111124655A (zh) | 一种网络请求调度方法、终端装置及存储介质 | |
CN115328656A (zh) | 动态内存智能化扩展方法、装置、设备及存储介质 | |
CN115587049A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN110858178A (zh) | 一种内存回收方法、装置、设备及介质 | |
CN114996014A (zh) | 基于ion分配器的内存分配方法、装置和电子设备 | |
CN110297650B (zh) | 一种应用程序升级的方法、装置、终端设备及存储介质 | |
CN106569912A (zh) | 一种移动终端恢复出厂设置的方法及系统 | |
CN113032290A (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 |