CN109992393A - 应用处理方法和装置、电子设备、计算机可读存储介质 - Google Patents
应用处理方法和装置、电子设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN109992393A CN109992393A CN201711480487.8A CN201711480487A CN109992393A CN 109992393 A CN109992393 A CN 109992393A CN 201711480487 A CN201711480487 A CN 201711480487A CN 109992393 A CN109992393 A CN 109992393A
- Authority
- CN
- China
- Prior art keywords
- application
- page
- processed
- memory
- recyclable
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
- G06F12/124—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本申请涉及一种应用处理方法和装置、电子设备、计算机可读存储介质。该方法包括:获取待处理应用所占用的可回收内存页;获取所述待处理应用对每个所述可回收内存页的空闲时长;根据所述每个所述可回收内存页的空闲时长确定时长阈值;从所述可回收内存页中选取空闲时长超过所述时长阈值的内存页进行回收。上述应用处理方法和装置、电子设备、计算机可读存储介质可保证在整个系统内存变大的情况下,对每个应用的负面影响最小,保持了对待处理应用内存的回收与运行之间的平衡性。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种应用处理方法和装置、电子设备、计算机可读存储介质。
背景技术
电子设备上安装的应用在运行时,需要占用一定的内存。内存是一个应用在运行过程中数据的主要存储介质。由于电子设备上的内存容量有限,当后台应用占据的内存过多时,会影响前台应用的运行效率。因而需要对内存进行回收,以提高前台应用的运行效率。
传统对应用处理方法是将处于后台运行的应用杀死,从而回收该应用占用的所有内存,以将回收后的内存供给前台应用使用。然而,将后台应用杀死后,导致用户再次启动该应用时,需要重新产生新的应用数据,导致被回收内存的应用的运行速度显著降低。
发明内容
本申请实施例提供一种应用处理方法和装置、电子设备、计算机可读存储介质,可以在提高前台应用的运行效率的同时,降低对被回收内存的应用的运行的影响。
一种应用处理方法,包括:获取待处理应用所占用的可回收内存页;将所述可回收内存页中存储的数据写入外部存储介质中;暂停对所述待处理应用的运行;当对所述待处理解除暂停时,将写入外部存储介质中的数据写入内存中。
一种应用处理装置,所述装置包括:内存页获取模块,用于获取待处理应用所占用的可回收内存页;存储数据处理模块,用于将所述可回收内存页中存储的数据写入外部存储介质中;应用处理模块,用于暂停对所述待处理应用的运行;所述存储数据处理模块还用于当对所述待处理解除暂停时,将写入外部存储介质中的数据写入内存中。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各实施例中所述的应用处理方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请各实施例中所述的应用处理方法的步骤。
本申请实施例提供的应用处理方法和装置、电子设备、计算机可读存储介质,通过对待处理应用占用的可回收内存页中存储的数据进行保存,并对该待处理应用进行运行暂停,而非直接退出待处理应用,当待处理应用恢复运行时,则将保存的数据又重新写入内存中,保留待处理应用被暂停时的运行数据,防止待处理应用恢复运行时的运行速度的下降。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中电子设备的内部结构示意图;
图2为一个实施例中电子设备中的系统的部分框架示意图;
图3为一个实施例中应用处理方法的流程图;
图4为一个实施例中将可回收内存页中存储的数据写入外部存储介质中的流程图;
图5A为一个实施例中无关类应用的回收比例曲线示意图;
图5B为一个实施例中线性类应用的回收比例曲线示意图;
图5C为一个实施例中非线性类应用的回收比例曲线示意图;
图6为一个实施例中获取对可回收内存页的回收数量的示意图;
图7为另一个实施例中应用处理方法的流程图;
图8为一个实施例中应用处理装置的结构框图;
图9为一个实施例中存储数据处理模块的结构框图;
图10为另一个实施例中应用处理装置的结构框图;
图11为一个实施例中手机的部分结构的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种电子设备的内部结构示意图。该电子设备包括通过系统总线连接的处理器、存储器和显示屏。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器用于存储数据、程序、和/或指令代码等,存储器上存储至少一个计算机程序,该计算机程序可被处理器执行,以实现本申请实施例中提供的适用于电子设备的应用处理方法。存储器可包括磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等非易失性存储介质,或随机存储记忆体(Random-Access-Memory,RAM)等。例如,在一个实施例中,存储器包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统、数据库和计算机程序。该数据库中存储有用于实现以上各个实施例所提供的一种应用处理方法相关的数据,比如可存储有每个应用的名称以及为每个应用分配的内存页等信息。该计算机程序可被处理器所执行,以用于实现本申请各个实施例所提供的一种应用处理方法。内存储器为非易失性存储介质中的操作系统、数据库和计算机程序提供高速缓存的运行环境。显示屏可以是触摸屏,比如为电容屏或电子屏,用于显示前台应用的界面展示信息,还可以被用于检测作用于该显示屏的触摸操作,生成相应的指令,比如进行前后台应用的切换指令等。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如该电子设备还包括通过系统总线连接的网络接口,网络接口可以是以太网卡或无线网卡等,用于与外部的电子设备进行通信,比如可用于同服务器进行通信。
在一个实施例中,如图2所示,提供了一种电子设备的部分架构图。其中,该电子设备的架构系统中包括JAVA空间层210、本地框架层220以及内核(Kernel)空间层230。JAVA空间层210上可包含冻结管理应用212,电子设备可通过该冻结管理应用212来实现对各个应用的冻结和解冻等管理策略,对后台耗电的相关应用做冻结操作。本地框架层220中包含资源优先级和限制管理模块222和平台冻结管理模块224。电子设备可通过资源优先级和限制管理模块222实时维护不同的应用处于不同优先级和不同资源的组织中,并根据上层的需求来调整应用程序的资源组别从而达到优化性能,节省功耗的作用。电子设备可通过平台冻结管理模块224将后台可以冻结的任务按照进入冻结时间的长短,分配到对应预设的不同层次的冻结层,可选地,该冻结层可包括三个,分别是:CPU限制睡眠模式、CPU冻结睡眠模式、进程深度冻结模式。其中,CPU限制睡眠模式是指对相关进程所占用的CPU资源进行限制,使相关进程占用较少的CPU资源,将空余的CPU资源向其它未被冻结的进程倾斜,限制了对CPU资源的占用,也相应限制了进程对网络资源以及I/O接口资源的占用;CPU冻结睡眠模式是指禁止相关进程使用CPU,而保留对内存的占用,当禁止使用CPU资源时,相应的网络资源以及I/O接口资源也被禁止使用;进程深度冻结模式是指除禁止使用CPU资源之外,进一步对相关进程所占用的内存资源进行回收,回收的内存可供其它进程使用。内核空间层230中包括UID管理模块231、Cgroup模块232、Binder管控模块233、进程内存回收模块234以及冻结超时退出模块235。其中,UID管理模块231用于实现基于应用的用户身份标识(UserIdentifier,UID)来管理第三方应用的资源或进行冻结。相比较于基于进程身份标识(Process Identifier,PID)来进行进程管控,通过UID更便于统一管理一个用户的应用的资源。Cgroup模块232用于提供一套完善的中央处理器(Central Processing Unit,CPU)、CPUSET、内存(memory)、输入/输出(input/output,I/O)和Net相关的资源限制机制。Binder管控模块233用于实现后台binder通信的优先级的控制。其中,本地框架层220的接口模块包含开发给上层的binder接口,上层的框架或者应用通过提供的binder接口来发送资源限制或者冻结的指令给资源优先级和限制管理模块222和平台冻结管理模块224。进程内存回收模块234用于实现进程深度冻结模式,这样能当某个第三方应用长期处于冻结状态的时候,会主要释放掉进程的文件区,从而达到节省内存的模块,也加快该应用在下次启动时的速度。冻结超时退出模块235用于解决出现冻结超时场景产生的异常。通过上述的架构,可实现本申请各个实施例中的应用处理方法。
在一个实施例中,如图3所示,提供了一种应用处理方法,本实施例以该方法应用于如图1所示的电子设备为例进行说明。该方法包括:
步骤302,获取待处理应用所占用的可回收内存页。
待处理应用表示需要进行对占用内存进行回收的应用。该内存(又称随机存取存储器,random access memory,RAM)表示运行程序时使用的内存(即运行内存),只能临时存储数据,用于与CPU交换高速缓存数据,但是内存本身不能用于长期存储数据,可为如图1所示的内存储器。通常的,待处理应用为后台应用。后台应用为处于后台运行的应用;对应地,处于前台运行的应用即为前台应用。一个应用(Application,简称APP)的运行通常是由相关的多个进程的运行而体现的。进程(process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。前台应用运行时涉及的进程即为前台进程,后台应用运行时涉及的进程即为后台进程。
应用在运行的状态下需要占用内存空间来存储运行过程中的数据。不同的应用在不同的运行状态占用的内存空间大小不一定相同。内存页是操作系统对内存进行管理的单位,不同的电子设备设置的内存页占据的单位内存大小不一定相同。比如电子设备内的内存空间被划分为100000个内存页,待处理应用占用的内存页为内存页100至内存页200,而其中的内存页130至内存页200为可回收内存页。
在一个实施例中,电子设备可预先记录待处理应用在运行所占用的所有内存页,并从该所有内存页中获取可收回内存页。可回收内存页表示可进行回收,且回收后对待处理应用以及其它应用的运行不造成影响或者造成的影响较小的内存页。
在一个实施例中,电子设备可记录该所有内存页中,哪些内存页为可回收内存页,哪些内存页为不可回收内存页,并根据该记录信息来获取待处理应用占用的可回收内存页。
步骤304,将可回收内存页中存储的数据写入外部存储介质中。
其中,外部存储介质为相对于内存而言的外设存储介质。该外部存储介质可为电子设备中的硬盘或flash闪存等非易失性存储介质。电子设备可将获取到的可回收内存页中的部分或全部,均作为待回收内存页,并对作为该待回收内存页中存储的数据进行回收,实现对待处理应用所占用内存的释放。
针对回收的内存页中存储的数据,电子设备进一步将其存储在外部存储介质中,以使得在有需要的情况下,将该数据重新加载,实现对内存数据的恢复。可选的,可记录该存储的数据被写入外部存储介质中的具体写入地址的信息,使得根据该记录的信息查询到相应写入的数据。
在一个实施例中,待处理应用可通过预设的接口将需要保存的数据的信息发送至操作系统,操作系统接收到该信息后,将对应内存页中保存的数据写入相应的外部存储介质中。
步骤306,暂停对待处理应用的运行。
电子设备可对待处理应用进行暂停处理,使得待处理应用处于暂停运行状态,而不至于完全退出,以保留相应的待处理应用。在一个实施例中,电子设备可通过上述的资源优先级和限制管理模块222来实现对待处理应用进行暂停,以防止其占用过多的内存资源。
步骤308,当对待处理解除暂停时,将写入外部存储介质中的数据写入内存中。
在一个实施例中,当检测到待处理应用被切换到前台,或者接收到对待处理应用的启动操作时,可解除对待处理应用的运行暂停,恢复待处理应用的运行状态,此时,可将存储在外部存储介质中的数据写入内存中。可选地,可重新为待处理应用分配新的内存页,并获取预先记录的对该存储的数据的存储地址,从该存储地址中读取该数据,并将其写入重新分配的内存页对应的内存地址中。待处理应用可在运行过程中,重新加载被分配的内存页中的数据,实现对运行状态的恢复。
上述的应用处理方法中,通过对待处理应用占用的可回收内存页中存储的数据进行保存,并对该待处理应用进行运行暂停,而非直接退出待处理应用,当待处理应用恢复运行时,则将保存的数据又重新写入内存中,保留待处理应用被暂停时的运行数据,防止待处理应用恢复运行时的运行速度的下降。
在一个实施例中,将可回收内存页中存储的数据写入外部存储介质中,包括:通过异步传输方式将可回收内存页中存储的数据写入外部存储介质中;将写入外部存储介质中的数据写入内存中,包括:通过同步传输方式将写入外部存储介质中的数据写入内存中。
异步传输(Asynchronous Transmission)是将待传输的数据分成小组进行传送,小组可以是8位的1个字符或更长。该待传输的数据通常是以比特为数据单位。同步传输方式是以数据块为传输单位。每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列(如16位或32位CRC校验码),以便对数据块进行差错控制。
电子设备可通过异步传输的方式内存页中存储的数据写入外部存储介质中,在异步传输过程中,当检测到需要中止对待处理应用的暂停时,可只需要取消正在进行的异步传输即可,提高了对暂停过程恢复的效率。
当在将写入外部存储介质中的数据写入内存时,可采用同步传输的方式进行数据写入。通过同步方式写入,而非在待处理应用使用到某一数据时一点一点地恢复,可提高对待处理应用的所数据恢复的速度,进而提高了对待处理应用的运行恢复的效率。进一步地,当对待处理应用进行运行恢复时,可在恢复的过程中显示相应的恢复进度信息,以使得用户在等待的过程中,可获知具体的恢复状态,避免误操作。比如可在应用唤醒或启动的界面上,显示实时恢复的百分比数据。
在一个实施例中,在将数据写入外部存储介质时,可对该数据进行压缩存储,以降低对外部存储介质的存储空间的占用,当将该数据写入内存中时,可将压缩后的数据进行解压,将解压后的数据通过同步传输的方式写入内存中。
在一个实施例中,在步骤304之后,还包括:获取待处理应用对内存占用的增长量;当增长量超过预设增长阈值时,继续执行获取待处理应用所占用的可回收内存页。
可选地,在对待处理应用进行运行暂停之后,由于操作系统的复杂性,以及运行环境的多样性,待处理应用会在许多情况下需要定时或不定时地更新自身的状态。在暂停过程中需要不断地恢复运行以保证状态正确。这种恢复一般只需要持续很短的时间,也不会过多增加应用内存消耗。但一旦应用由于反复的恢复导致内存占用增长到一定的增长量时,可重新执行上述的步骤302至步骤304,对待处理应用进行再次回收。
针对待处理应用,还设置了相应的增长阈值。其中,增长阈值可为固定的数值,或者可为根据系统内存的大小或对内存页的回收数量等多种因素来确定。比如,可针对不同的系统内存大小,设置对应不同的增长阈值,或者针对不同的内存页的回收数量,确定对应不同的增长阈值。当回收数量越大或系统内存越大,则设置的增长阈值也越大。
在一个实施例中,步骤302包括:查询待处理应用所占用的内存的所有内存页;从所有内存页中获取可回收内存页。
可选地,电子设备可实时记录不同的应用所占用内存的内存页,并针对该每个被占用的内存页,进一步实时记录其是否可被回收。比如,当存在某一内存页中的数据正在被其它应用或者该待处理应用所使用时,则判定该内存页为不可回收的内存页,当记录到被占用的内存页中的数据处于无应用使用状态,或者处于该无应用使用状态的持续时长超过预设时长时,则判定该内存页为可回收内存页。
针对待处理应用,可从预先记录的信息中查询其所占用所有的内存页,并根据所记录的每个内存页的使用状态,判定其是否为可回收内存页,然后获取所有的可回收内存页。
在一个实施例中,查询待处理应用所占用的内存的所有内存页,包括:遍历待处理应用的内存映射文件;通过内存映射文件查询待处理应用占用的所有内存页。
内存映射文件(Memory-Mapped Files)是由一个文件到一块内存的映射。电子设备针对该待处理应用建立了对应的内存映射文件,该内存映射文件中设置了对应的应用所占用的内存页,通过遍历该待处理应用对应的内存映射文件,并从每个遍历到的内存映射文件中读取该待处理应用占用的内存页,从而可获取到该待处理应用所占用的所有的内存页,提高了对待处理应用占用的内存页的查询效率和查询的全面性。
在一个实施例中,从所有内存页中获取可回收内存页,包括:从所有内存页中剔除携带占用标记的内存页;从剔除后的内存页中获取可回收内存页。
其中,针对查询出的被待处理应用所占用的所有的内存页,电子设备可检测每个查询出的内存页是否携带有占用标记,或者是否被多个应用所占用。其中,占用标记表示对应的内存页中存储的数据正处于对待处理应用所使用,或者是其中的数据是待处理应用在保持正常运行的过程中,不可缺少的数据,当该数据被删除后,待处理应用要么无法正常运行,或者需要反复占用新的内存页来存放对应的数据,针对检测出的这类数据,电子设备可对存储该类数据的内存页而设置占用标记,以表示对应的内存页不能回收。
被待处理应用占用的内存页中,其中存储的数据还可能被其它应用所使用,即有多个应用均在使用该内存页中的数据,针对该类内存页,也可将其设置占用标记,使电子设备同样将其剔除,以表示不从该类内存页中进行回收。
针对剔除后的内存页,保留下来的内存页即为可回收内存页,电子设备可从该内存页中进行内存回收。
在一个实施例中,电子设备可调用如图2中所示的资源优先级和限制管理模块222来遍历待处理应用的内存映射文件;通过内存映射文件查询待处理应用占用的所有内存页,并通过该资源优先级和限制管理模块222检测每个内存页是否为可回收内存页,对于不可回收内存页设置对应的占用标记,同时记录每个内存页是否还多个应用所占用,从查询出的所有内存页中剔除携带占用标记和/或被多个应用占用的内存页;从剔除后的内存页中获取可回收内存页。
在一个实施例中,如图4所示,步骤304包括:
步骤402,获取待处理应用对每个可回收内存页的空闲时长。
由于内存页中存储的数据并非一直被应用所使用,对内存页的空闲时长表示系统为该待处理应用分配内存页后,该内存页中存储的数据在最近一次被使用之后,处于未被使用状态的持续时长。电子设备根据每个内存页的数据使用情况,来实时更新每个内存页的空闲时长,当准备进行对待处理应用占用的内存页进行回收时,可获取最新记录的每个可回收内存页的空闲时长。
在一个实施例中,当最近一次发起对内存页的分配、回收、释放等情形,或者对处理器中缓存的使用情况进行查询的情况,均判定对相应涉及到的内存页的数据进行了使用,并将产生对应情形下的系统时间最为最近一次对内存页的数据使用时间,当前时间和该最近时间之差即为对相应内存页的空闲时长。
在一个实施例中,电子设备可对每个内存页创建对应的时间戳,该时间戳记录对应内存页中的数据在最近一次的使用时间。在操作系统中,每当主动发起对内存的分配、回收、释放等时机,可对相应内存页的活跃度进行更新,并将该更新时间记录在该时间戳中。或者在系统定时检查处理器缓存的使用情况,可判定当前缓存中的数据都为当前使用的数据,并更新所涉及到的内存页的时间戳,将该更新时间记录在该时间戳中。可选地,可将最新记录到的更新时间替换掉上一次的更新时间,以减少更新时间的资源占用。
步骤404,根据每个可回收内存页的空闲时长确定时长阈值。
其中,时长阈值表示用于决定是否对可回收内存页进行回收的临界数值。时长阈值可为固定的数值,或者还可根据每个可回收内存页的空闲时长而确定的时长阈值,空闲时长不同,所确定的时长阈值也不一定相同。
在一个实施例中,时长阈值可为所有可回收内存页的空闲时长的加权平均值,或者还可为从该所有可回收内存页的空闲时长中选取一个空闲时长,将选取的空闲时长作为时长阈值。比如可在该待处理应用占用的所有可回收内存页的空闲时长中,选取处于与中位数相接近的,或者处于排序在某一位置上的空闲时长,将选取的空闲时长作为时长阈值。
步骤406,从可回收内存页中选取空闲时长超过时长阈值的内存页,将选取的内存页中存储的数据写入外部存储介质中。
电子设备可按照所确定的时长阈值,从该待处理应用占用的可回收内存页中,选取空闲时长超过该时长阈值的内存页进行回收,将选取的内存页中存储的数据写入外部存储介质中,以释放出该时长阈值的可回收内存页,供前台应用或其它应用所使用,提高系统的综合处理效率。可选地,电子设备可通过上述的进程内存回收模块234,按照该时长阈值从可回收内存页中进行内存页的回收,将回收的内存页中存储的数据写入外部存储介质中,释放长时间不使用的内存,提高内存使用效率,且使得回收内存页之后,对该待处理应用造成的影响也较小。
举例来说,可回收内存页有100页,相应的空闲时长分别处于5秒至15分钟之间,当根据该空闲时长而确定的时长阈值为5分钟时,可从该100页的内存页中,回收空闲时长超过5分钟的内存页,将回收的内存页进行释放,使得电子设备的空闲的内存页相应的增加,并可供给前台应用或其它的后台应用所使用。
上述方法中,由于回收的对象是可回收内存页,且并非一定是对所有可回收内存页均进行回收,而是按照与每个可回收内存页的空闲时长,选取空闲时长超过相应的时长阈值的内存页进行回收,进一步降低了对待处理应用的运行影响,且回收的内存页可释放出来供其它应用使用,保证在整个系统内存变大的情况下,对每个应用的负面影响最小,又提高了内存使用效率,保持了对待处理应用内存的回收与运行之间的平衡性。
在一个实施例中,步骤402包括:获取每个可回收内存页的时间戳记录的更新时间,根据更新时间计算出对应可回收内存页的空闲时长。
电子设备可通过上述的资源优先级和限制管理模块222,为每个内存页创建一个时间戳,该时间戳用于记录对应的更新时间,更新时间表示对应内存页最近被使用的时间。当检测到每个内存页中的内存被使用时,可对该时间戳记录的更新时间进行更新。
其中,每当最近一次发起对内存页的分配、回收、释放等情形,或者对处理器中缓存的使用情况进行查询的情况,均判定对相应涉及到的内存页的数据进行了使用,并将产生对应情形下的系统时间作为该更新时间。当开始执行内存回收机制时,可根据该时间戳记录的更新时间和当前系统时间,可计算出相应的内存页的空闲时长。当前时间和该最近时间之差即为对相应内存页的空闲时长。
通过利用软件创建时间戳的方式来记录每个可回收内存页的更新时间,根据该更新时间来确定空闲时长,可以有效兼容不同的处理器,提高了对内存回收的通用性。
在一个实施例中,步骤402包括:获取通过最近最久未使用LRU管理单元记录的每个可回收内存页的更新时间,根据更新时间计算出对应可回收内存页的空闲时长。
在处理器中的内存管理或缓存单元中,设置相应的最近最久未使用(LeastRecently Used,LRU)管理单元,用于对最近使用到的内存进行统计。LRU管理单元可记录每个内存地址以及该内存地址的更新时间,当某一地址的内存被使用到时,处理器将对应的内存地址和更新时间放入LRU管理单元中保存。当开始执行内存回收机制时,可根据该内存地址和内存页之间的对应关系,可获知每个内存地址对应的内存页,进而可从LRU管理单元中读取对应内存页的更新时间。其中,每当最近一次发起对内存页的分配、回收、释放等情形,或者对处理器中缓存的使用情况进行查询的情况,均判定对相应涉及到的内存页的数据进行了使用,并将产生对应情形下的系统时间作为该更新时间。
当LRU管理单元用满后,可产生中断信息并通知操作系统,操作系统在读取LRU管理单元的数据后可清空其中的数据,使得LRU管理单元可重新开始工作,存储每个内存地址及其对应的更新时间等信息。
本实施例中,通过创建LRU管理单元,可以精确地追踪每一个内存的使用情况,提高了对内存页的更新时间检测的准确性,也提高了内存回收的便利性。
在一个实施例中,步骤404包括:根据每个可回收内存页的空闲时长计算出待处理应用对可回收内存页的平均空闲时长,将平均空闲时长作为时长阈值。
其中,平均空闲时长可为待处理应用所占用的可回收内存页中,每个内存页的占用时长的平均值。电子设备可根据统计到的每个内存页的占用时长,调用相应的计算单元进行计算,以计算出该平均空闲时长,将该平均空闲时长作为时长阈值。
通过将平均空闲时长作为时长阈值,可提高对时长阈值的计算效率,且计算简单,从而也相应提高了对内存回收的效率。
在一个实施例中,根据每个可回收内存页的空闲时长确定时长阈值,包括:获取对可回收内存页的回收数量;根据回收数量从每个可回收内存页的空闲时长中选取第K大的空闲时长,将选取的空闲时长作为时长阈值;超过第K大的空闲时长的数量为回收数量。
回收数量为对内存页的回收数量,该数量为正整数。回收数量可根据待处理应用的优先级及其占用的可回收内存页的总数量、空闲时长等其中的一种或多种来确定。可选地,该回收数量可与对应应用的优先级负相关,与可回收内存页的总数量呈正相关。当对应应用的优先级越低时,回收数量相应越大;当可回收内存页的总数量越大时,则对应的回收数量也越大。
电子设备可按照每个可回收内存页的空闲时长从大到小进行排序,并选取第K大的空闲时长,将该空闲时长作为时长阈值。其中,超过第K大的空闲时长的数量即为该回收数量。可以理解地,K为不超过回收数量的自然数。举例来说,可回收内存页的总数量有100,当确定的回收数量为50时,则K=51,可从该100个可回收内存页的空闲时长中,选取第51大的空闲时长,将该空闲时长作为时长阈值,并选取空闲时长超过该第51大的空闲时长的50个回收内存页进行回收。
通过选取第K大的空闲时长作为时长阈值,提高了对可回收内存进行回收的灵活性。
在一个实施例中,获取对可回收内存页的回收数量,包括:获取与待处理应用对应的回收比例;根据可回收内存页及回收比例确定回收数量。
回收比例表示对待回收的内存的进行回收的比例,回收比例用于指导对可回收内存的回收的多少。比如回收比例为50%,表示可回收50%的占用内存。电子设备预设了不同的应用对应的回收比例。可选地,可建立不同的回收比例与应用标识之间的对应关系,电子设备可根据待处理应用的应用标识与该回收比例之间的对应关系,获取对应的回收比例。其中,应用标识用于唯一标识一个应用,可由预设位数的数字、字母或其它字符等其中的一种或多种构成。
在一个实施例中,回收比例可为根据待处理应用的二次启动时长而确定,电子设备可预先测试对待处理应用所占用的可回收内存页按照不同的比例进行回收。并检测回收该对应比例的内存页后,待处理应用再次启动时,所需的启动时长,该启动时长即为二次启动时长。根据不同的比例对应的二次启动时长,确定一个相对合适的比例,将所确定的比例作为与该待处理应用对应的回收比例。
回收数量可为可回收内存页的总数与确定的回收比例之间的乘积。当该乘积不为整数时,可选取与该乘积近似的一个整数,比如可按照四舍五入的方式确定最接近的一个整数作为回收数量,或者还可按照截尾法或进位法等方式确定相应的整数作为回收数量。
以按照四舍五入的方式确定可回收数量为例说明。比如,当可回收内存页有100页时,若回收比例为30.5%,得到的乘积为30.5,则可从该100页可回收内存页中回收31页,若回收比例为21.2%时,则可回收21页。
通过获取与待处理应用对应的回收比例,再按照回收比例来确定回收数量,可进一步提高了对回收数量确定的灵活性。
在一个实施例中,获取与待处理应用对应的回收比例,包括:获取待处理应用的应用类型;获取根据与应用类型对应的回收模型计算出的回收比例。
其中,应用类型为根据对内存回收后,对待处理应用的运行影响而设置的类型。应用类型包括无关类、线性类以及非线性类。无关类表示对待处理应用的可回收内存回收后,无论回收多少,均对对应的应用并无显著影响。线性类表示随着对可回收内存的回收比例的增多,对应的应用的二次启动时长也随之增加,其中该二次启动时长与回收比例之间呈线性或接近线性增长的关系。非线性类表示既非无关类也非线性类的其它类型。其中,无显著影响表示不同回收比例对应的二次启动时长相比正常启动时长的超出比例均小于预设的比例范围。接近线性表示不同回收比例按照对应接近的斜率拟合出的二次启动时长,与对应回收比例下的二次启动时长之间的误差不超过预设范围内的误差。
电子设备针对不同的应用,按照不同的回收比例回收内存后对该应用的影响情况,设置了该应用所属的应用类型。针对每种应用类型,电子设备进一步设置了对应的回收模型,根据该回收模型,计算出对应的应用类型被回收不同的比例的可回收内存页后,二次启动时长的长短。
按照不同的回收比例和对应的二次启动时长,确定出最优的回收比例,使得在保持二次启动时长相比正常启动时长增加不大的情况下,回收比例最大,获取该最优的回收比例。
在一个实施例中,当待处理应用的应用类型为无关类时,通过该回收模型计算出的回收比例可为100%,即可对该可回收内存页进行100%回收。当待处理应用的应用类型为非线性类时,可选取一个适当的比例作为回收比例,使得被回收的内存页数量与对应应用的二次启动时长之间的性价比最高。比如可选取二次启动时长为预设的时长阈值时对应的比例,将该比例作为回收比例。或者可选取二次启动时长为正常启动时长的预设倍数时对应的比例,将该比例作为回收比例。其中,预设的时长阈值或者预设倍数可为根据经验值所设置的合适数值。比如该时长阈值可为2秒,或者3秒等,预设倍数可为1.5倍或者2倍等。
当待处理应用的应用类型为线性类时,可按照对应不同的斜率确定相应的回收比例,其中,该斜率表示以不同回收比例下对应的二次启动时长所形成的曲线关于该回收比例的倾斜程度的量。斜率越大,则确定的回收比例相对越小,以保持对待处理应用内存的回收与运行之间的平衡性。
举例来说,如图5A、5B至5C所示,分别为一个实施例中无关类、线性类和非线性类的应用的回收比例曲线。其中,该回收比例曲线中的横坐标表示回收比例,纵坐标表示处于对应回收比例下的二次启动时长。其中,无关类的回收比例曲线反映出了对应应用在可回收内存页在按不同的回收比例进行回收后,对应的二次启动时长没有变化或者变化很小。线性类的回收比例曲线在不同的回收比例下,对应的斜率没有变化或者变化很小,而非线性类的回收比例曲线则有的地方斜率较大,有的地方斜率相对较小。针对非线性类的应用,可选取最小斜率对应的回收比例,作为对可回收内存页的回收比例。
在一个实施例中,如图6所示,获取对可回收内存页的回收数量,包括:
步骤602,获取与待处理应用不同的回收比例与二次启动时长之间的对应关系。
回收比例表示对待回收的内存的进行回收的比例,回收比例用于指导对可回收内存的回收的多少。比如回收比例为50%,表示可回收50%的占用内存。二次启动时长是指待处理应用占用的可回收内存页被回收对应的回收比例后,再次启动时所花费的时长。
电子设备可针对每个应用,设置相应的回收比例与二次启动时长之间的对应关系。该对应关系表示该应用所占内存中,回收不同比例的可回收内存后,对应的二次启动时长。可选地,该对应关系可为相应的回收比例与二次启动时长之间的对照表,或者回收比例曲线。该曲线为不同的回收比例下对应的二次启动时长。
步骤604,根据回收比例与二次启动时长之间的对应关系确定可回收内存页的回收比例。
步骤606,根据回收比例与可回收内存页的总数量确定回收数量。
可选地,电子设备可设置对应的启动时长阈值,将二次启动时长达到该启动时长阈值时,对应的比例确定为对可回收内存页的回收比例。其中,该启动时长阈值可为预设的经验数值,进一步地,不同应用对应的启动时长阈值可不一定相同,比如可根据对应应用的正常启动时长来确定对应的启动时长阈值,将正常启动时长的1.5倍或2倍的时长作为该启动时长阈值。
根据该对应关系,参照不同的二次启动时长来选取合适的回收比例,作为对该应用占用的可回收内存页的回收比例,进一步保持了对待处理应用内存的回收与运行之间的平衡性。
在一个实施例中,如图7所示,提供了另一种应用处理方法,该方法包括:
步骤702,遍历待处理应用的内存映射文件;通过内存映射文件查询待处理应用占用的所有内存页。
在一个实施例中,电子设备可在检测到系统的内存使用率超过预设比例时,或者接收到用户操作而触发的内存回收指令时,触发对内存回收机制,并从所有运行中的应用中确定需要进行内存回收的应用,所确定的应用即为该待处理应用。
在一个实施例中,电子设备可在检测到某一应用从前台切换到后台后,且通过平台冻结管理模块224将该应用设置成进程深度冻结模式后,触发对该应用的内存回收机制。
电子设备可通过上述的资源优先级和限制管理模块222来遍历该待处理应用的内存映射文件,从遍历到的每个内存映射文件中查询被待处理应用占用的内存页,从而可查询出该待处理应用占用的所有内存页。
步骤704,从所有内存页中剔除携带占用标记的内存页;从剔除后的内存页中获取可回收内存页。
针对每个查询出的内存页,可进行二次遍历,二次遍历用于检测每个查询出的内存页是否为可回收内存页,当检测出携带有占用标记的内存页,则判定该内存页为不可回收内存页,并将该内存页进行剔除,经二次遍历后得到的内存页即为可回收内存页,电子设备可从该所有可回收内存页中选取内存页进行回收。通过二次遍历,可提高对可回收内存页检测的全面性。
步骤706,获取与待处理应用对应的回收比例与二次启动时长之间的对应关系;根据回收比例与二次启动时长之间的对应关系确定可回收内存页的回收比例;根据回收比例与可回收内存页的总数量确定回收数量。
其中,二次启动时长是指待处理应用占用的可回收内存页被回收对应的回收比例后,再次启动时所花费的时长。对应关系可为相应的回收比例与二次启动时长之间的对照表,或者回收比例曲线。该曲线为不同的回收比例下对应的二次启动时长,该曲线可为如图5A至5C中所示的曲线。
电子设备可根据该曲线,按照不同的应用类型,确定相对合适的回收比例。将该回收比例以及可回收内存页的总数量相乘,将得到的乘积近似的整数作为该回收数量。
步骤708,根据回收数量从每个可回收内存页的空闲时长中选取第K大的空闲时长,将选取的空闲时长作为时长阈值。
其中,超过第K大的空闲时长的可回收内存页的数量即为该回收数量,该第K大的空闲时长即为时长阈值。不同回收比例所确定的回收数量不同,而不同的回收数量下,对应的K值不同,即时长阈值不同。举例来说,可回收内存页的总数量有100,当回收比例为50%时,则相应的回收数量为50,K=51,时长阈值即为第51大的空闲时长;当回收比例为30.3%时,则相应的回收数量为30,K=31,时长阈值即为第31大的空闲时长。
步骤710,从可回收内存页中选取空闲时长超过时长阈值的内存页,将选取的内存页中存储的数据写入外部存储介质中。
电子设备可通过上述的进程内存回收模块234,按照该时长阈值从可回收内存页中进行内存页的回收,释放长时间不使用的内存,提高内存使用效率,且使得回收内存页之后,对该待处理应用造成的影响也较小。
步骤712,暂停对待处理应用的运行;当对待处理解除暂停时,将写入外部存储介质中的数据写入内存中。
电子设备可通过资源优先级和限制管理模块222对待处理应用进行运行暂停和暂停解除。当对其进行运行解除时,可将写入外部存储介质中的数据写入内存中,实现对应用数据的恢复。
举例来说,当待处理应用为某一游戏应用时,通过回收的该游戏应用产生的数据又重新写入内存中,该游戏应用可在解除暂停后,重新加载写入的数据,可恢复被暂停时的游戏进度等信息,避免了游戏进度等信息的丢失。
在一个实施例中,在获取待处理应用所占用的可回收内存页之前,还包括:检测待处理应用是否被前台应用依赖;若是,则将待处理应用的优先级调整至与前台应用相匹配;否则,执行获取待处理应用所占用的可回收内存页。
在一个实施例中,当前台应用结束对待处理应用的依赖时,执行获取待处理应用所占用的可回收内存页。
依赖表示一个应用需要利用于另一个或多个应用的数据才能顺利实现对该一个应用的正常运行的关系。存在依赖关系的两个应用,分别为被依赖的应用和依赖的应用,电子设备将检测出的将被前台应用依赖的后台运行的待处理应用判定为被前台应用依赖的后台应用。电子设备可对检测出的被前台应用所依赖的后台应用设置对应的被依赖标记,并从后台应用池中获取带有被依赖标记的后台应用,将该后台应用判定为被前台应用依赖的后台应用。前台应用即为前台运行的应用。
针对该待处理应用,若被前台应用依赖,则可将将待处理应用判定为被前台应用依赖的应用,将被前台应用依赖的待处理应用的优先级调整至与前台应用的优先级相匹配。
可选地,针对查询出的被前台应用依赖的待处理应用,电子设备可对其优先级进行调整,使得调整后的优先级与该前台应用的优先级相匹配。电子设备可设置不同的被前台应用依赖的待处理应用的优先级与前台优先级的匹配关系。根据该匹配关系,获取对应的适用于被前台应用依赖的待处理应用的优先级,并将被前台应用依赖的待处理应用的优先级调整至该优先级,降低对被前台应用依赖的待处理应用的资源限制程度,使得对被前台应用依赖的待处理应用所能使用的资源的限制程度与前台应用的限制程度相匹配。
在一个实施例中,与该前台应用的优先级相匹配的优先级,可为与该前台应用的优先级相同的优先级。即电子设备可将该被前台应用依赖的待处理应用的优先级调整至与该前台应用的优先级相同的优先级,使得对被前台应用依赖的待处理应用所能使用的资源的限制程度与前台应用的限制程度相同。
通过对待处理应用进行依赖关系检测,将被前台应用所依赖的待处理应用的优先级调整至与前台应用相配的优先级。由于通常前台应用的优先级最高,对应可使用的资源的限制程度最低,而后台进程的优先级较低,以防止后台进程占用过多的资源,对前台应用造成影响。然而后台进程中存在着被前台应用所依赖的情况,被依赖的后台进程执行效率时,也会对前台应用造成影响。本申请实施例通过调整被依赖的待处理应用的优先级调整至与前台优先级相匹配的优先级,从而可降低被依赖的待处理应用所能使用的资源的限制程度,从而提高了被依赖的待处理应用的处理效率。由于该被依赖的待处理应用的处理效率提高了,从而也提高了依赖于该被依赖的待处理应用的前台应用的处理效率。
在一个实施例中,当待处理应用与前台应用之间存在socket通信、binder通信、内存共享或锁等待时,判定后台进程与前台应用之间存在通信机制。
可通过以下任意一种或几种方式检测是否存在与前台应用具有通信机制的后台进程:
(1)检测是否存在与前台应用具有socket和/或binder通信的后台进程;
(2)检测是否存在与前台应用之间进行内存共享的后台进程;
(3)检测是否存在前台应用等待在锁资源上的后台进程。
电子设备可在Binder驱动中设置对前台应用和后台进程之间是否存在Binder通信的检测机制,并调用在Binder驱动中设置的检测机制,以检测出与前台应用存在Binder通信的后台进程,将检测出的后台进程判定为被前台应用依赖的后台进程。
在一个实施例中,电子设备可检测各个锁资源,锁资源包括线程锁,文件句柄,信号等。针对每个锁资源,可检测是否发生锁等待,即锁资源等待。当检测到产生锁等待时,可进一步检测该发生等待的行为是否发生在前台应用上。若是,则遍历等待在该锁资源上面的所有后台进程,将检测到的等待在该锁资源上的后台进程均判定为被前台应用依赖的后台进程。
在一个实施例中,电子设备可在操作系统的内核空间中设置锁资源监控模块和优先级调整模块,将锁资源监控模块内嵌到内核原生的等待接口当中。通过该锁资源监控模块,检测线程锁,文件句柄,信号等锁各种锁资源,是否发生等待,发生等待的行为是否是发生在前台应用上面,如果是发生在前台任务上面,则将检测到的消息发送至优先级调整模块。通过该优先级调整遍历等待在该锁资源上面的所有后台线程,将这些后台进程判定为被前台应用依赖的后台进程。并通过该优先级调整模块将相应的待处理应用的优先级调整至相匹配的优先级。
在一个实施例中,当后台进程与前台应用之间存在同步机制时,判定具有同步机制的待处理应用为被前台应用依赖的后台进程。
电子设备还可通过调用futex系统调用检测后台进程集合中,是否存在与前台应用具有同步机制的后台进程,将具有同步机制的后台进程判定为被前台应用依赖的后台进程。
并发程序设计中,各进程对公共变量的访问必须加以制约,这种制约称为同步。在操作系统中,用户态(user mode)的同步机制可通过调用futex系统调用实现。其中,用户态指非特权状态。同步机制包括信号量、互斥锁等。当通过futex系统调用检测到与前台应用存在任意一种同步机制的后台进程时,可将检测到的后台进程判定为被前台应用依赖的后台进程。
通过对前台应用和后台进程之间的通信机制和/或同步机制的检测,将检测出的与前台应用具有通信机制和/或同步机制的后台进程判定为被前台应用依赖的后台进程,可提高对被前台应用依赖的待处理应用的检测的效率。
应该理解的是,虽然图3、图4、图6和图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3、图4、图6和图7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种应用处理装置,该装置包括:内存页获取模块802、存储数据处理模块804以及应用处理模块806。其中,内存页获取模块802用于获取待处理应用所占用的可回收内存页;存储数据处理模块804用于将可回收内存页中存储的数据写入外部存储介质中;当对待处理解除暂停时,将写入外部存储介质中的数据写入内存中;应用处理模块806用于暂停对待处理应用的运行。
在一个实施例中,存储数据处理模块804还用于通过异步传输方式将可回收内存页中存储的数据写入外部存储介质中;通过同步传输方式将写入外部存储介质中的数据写入内存中。
在一个实施例中,存储数据处理模块804还用于获取待处理应用对内存占用的增长量;内存页获取模块802还用于当增长量超过预设增长阈值时,获取待处理应用所占用的可回收内存页。
在一个实施例中,内存页获取模块802还用于遍历待处理应用的内存映射文件;通过内存映射文件查询待处理应用占用的所有内存页;从所有内存页中剔除携带占用标记的内存页;从剔除后的内存页中获取可回收内存页。
在一个实施例中,如图9所示,存储数据处理模块包括:
时长确定模块902,用于获取待处理应用对每个可回收内存页的空闲时长;根据每个可回收内存页的空闲时长确定时长阈值。
数据写入模块904,用于从可回收内存页中选取空闲时长超过时长阈值的内存页,将选取的内存页中存储的数据写入外部存储介质中。
在一个实施例中,时长确定模块902还用于获取每个可回收内存页的时间戳记录的更新时间,根据更新时间计算出对应可回收内存页的空闲时长。
在一个实施例中,时长确定模块902还用于获取通过最近最久未使用LRU管理单元记录的每个可回收内存页的更新时间,根据更新时间计算出对应可回收内存页的空闲时长。
在一个实施例中,时长确定模块902还用于根据每个可回收内存页的空闲时长计算出待处理应用对可回收内存页的平均空闲时长,将平均空闲时长作为时长阈值。
在一个实施例中,时长确定模块902还用于获取对可回收内存页的回收数量,根据回收数量从每个可回收内存页的空闲时长中选取第K大的空闲时长,将选取的空闲时长作为时长阈值;超过第K大的空闲时长的数量为回收数量,K为不超过回收数量的自然数。
在一个实施例中,如图10所示,提供了另一种应用处理装置,该装置还包括:
依赖检测模块808,用于检测待处理应用是否被前台应用依赖。
优先级调整模块810,用于当待处理应用被前台应用依赖时,将待处理应用的优先级调整至与前台应用相匹配。
上述应用处理装置中各个模块的划分仅用于举例说明,在其他实施例中,可将应用处理装置按照需要划分为不同的模块,以完成上述应用处理装置的全部或部分功能。关于应用处理装置的具体限定可以参见上文中对于应用处理方法的限定,在此不再赘述。上述应用处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本申请实施例中提供的应用处理装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器等电子设备上运行。该计算机程序构成的程序模块可存储在电子设备的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述的应用处理方法的步骤。
在一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各实施例所提供的应用处理方法的步骤。
在一个实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序对处理器执行时,实现本申请各实施例中所描述的应用处理方法的步骤。
在一个实施例中,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请各实施例中所描述的应用处理方法。
本申请实施例还提供了一种计算机设备。如图11所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该计算机设备可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、穿戴式设备等任意终端设备,以计算机设备为手机为例:
图11为与本申请实施例提供的计算机设备相关的手机的部分结构的框图。参考图11,手机包括:射频(Radio Frequency,RF)电路1110、存储器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、无线保真(wireless fidelity,WiFi)模块1170、处理器1180、以及电源1190等部件。本领域技术人员可以理解,图11所示的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,RF电路1110可用于收发信息或通话过程中,信号的接收和发送,可将基站的下行信息接收后,给处理器1180处理;也可以将上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路1110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(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)等。
存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1120可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能的应用程序、图像播放功能的应用程序等)等;数据存储区可存储根据手机的使用所创建的数据(比如音频数据、通讯录等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1130可用于接收输入的数字或字符信息,以及产生与手机1100的用户设置以及功能控制有关的键信号输入。具体地,输入单元1130可包括触控面板1131以及其他输入设备1132。触控面板1131,也可称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1131上或在触控面板1131附近的操作),并根据预先设定的程式驱动相应的连接装置。在一个实施例中,触控面板1131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1131。除了触控面板1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)等中的一种或多种。
显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1140可包括显示面板1141。在一个实施例中,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1141。在一个实施例中,触控面板1131可覆盖显示面板1141,当触控面板1131检测到在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180根据触摸事件的类型在显示面板1141上提供相应的视觉输出。虽然在图11中,触控面板1131与显示面板1141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1131与显示面板1141集成而实现手机的输入和输出功能。
手机1100还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1141和/或背光。运动传感器可包括加速度传感器,通过加速度传感器可检测各个方向上加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换)、振动识别相关功能(比如计步器、敲击)等;此外,手机还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器等。
音频电路1160、扬声器1161和传声器1162可提供用户与手机之间的音频接口。音频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经RF电路1110可以发送给另一手机,或者将音频数据输出至存储器1120以便后续处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块1170,但是可以理解的是,其并不属于手机1100的必须构成,可以根据需要而省略。
处理器1180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在一个实施例中,处理器1180可包括一个或多个处理单元。在一个实施例中,处理器1180可集成应用处理器和调制解调器,其中,应用处理器主要处理操作系统、用户界面和应用程序等;调制解调器主要处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1180中。比如,该处理器1180可集成应用处理器和基带处理器,基带处理器与和其它外围芯片等可组成调制解调器。手机1100还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
在一个实施例中,手机1100还可以包括摄像头、蓝牙模块等。
在本申请实施例中,该手机所包括的处理器执行存储在存储器上的计算机程序时实现上述所描述的应用处理方法。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(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 (11)
1.一种应用处理方法,其特征在于,包括:
获取待处理应用所占用的可回收内存页;
将所述可回收内存页中存储的数据写入外部存储介质中;
暂停对所述待处理应用的运行;
当对所述待处理解除暂停时,将写入外部存储介质中的数据写入内存中。
2.根据权利要求1所述的方法,其特征在于,所述将所述可回收内存页中存储的数据写入外部存储介质中,包括:
通过异步传输方式将可回收内存页中存储的数据写入外部存储介质中;
所述将写入外部存储介质中的数据写入内存中,包括:
通过同步传输方式将写入外部存储介质中的数据写入内存中。
3.根据权利要求1所述的方法,其特征在于,在所述暂停对所述待处理应用的运行之后,还包括:
获取所述待处理应用对内存占用的增长量;
当所述增长量超过预设增长阈值时,继续执行所述获取待处理应用所占用的可回收内存页。
4.根据权利要求1所述的方法,其特征在于,所述获取待处理应用所占用的可回收内存页,包括:
遍历待处理应用的内存映射文件;
通过所述内存映射文件查询所述待处理应用占用的所有内存页;
从所述所有内存页中剔除携带占用标记的内存页;
从剔除后的内存页中获取可回收内存页。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述将所述可回收内存页中存储的数据写入外部存储介质中,包括:
获取所述待处理应用对每个所述可回收内存页的空闲时长;
根据所述每个所述可回收内存页的空闲时长确定时长阈值;
从所述可回收内存页中选取空闲时长超过所述时长阈值的内存页,将选取的内存页中存储的数据写入外部存储介质中。
6.根据权利要求5所述的方法,其特征在于,所述获取所述待处理应用对每个所述可回收内存页的空闲时长,包括:
获取每个可回收内存页的时间戳记录的更新时间,根据所述更新时间计算出对应可回收内存页的空闲时长;或
获取通过最近最久未使用LRU管理单元记录的每个可回收内存页的更新时间,根据所述更新时间计算出对应可回收内存页的空闲时长。
7.根据权利要求5所述的方法,其特征在于,所述根据所述每个所述可回收内存页的空闲时长确定时长阈值,包括:
根据所述每个所述可回收内存页的空闲时长计算出所述待处理应用对可回收内存页的平均空闲时长,将所述平均空闲时长作为时长阈值;或
获取对可回收内存页的回收数量,根据所述回收数量从所述每个所述可回收内存页的空闲时长中选取第K大的空闲时长,将选取的空闲时长作为时长阈值;超过第K大的空闲时长的数量为所述回收数量,K为不超过回收数量的自然数。
8.根据权利要求1至5中任一项所述的方法,其特征在于,在所述获取待处理应用所占用的可回收内存页之前,还包括:
检测待处理应用是否被前台应用依赖;
若是,则将所述待处理应用的优先级调整至与前台应用相匹配;
否则,执行所述获取待处理应用所占用的可回收内存页。
9.一种应用处理装置,其特征在于,所述装置包括:
内存页获取模块,用于获取待处理应用所占用的可回收内存页;
存储数据处理模块,用于将所述可回收内存页中存储的数据写入外部存储介质中;
应用处理模块,用于暂停对所述待处理应用的运行;
所述存储数据处理模块还用于当对所述待处理解除暂停时,将写入外部存储介质中的数据写入内存中。
10.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711480487.8A CN109992393A (zh) | 2017-12-29 | 2017-12-29 | 应用处理方法和装置、电子设备、计算机可读存储介质 |
US16/168,236 US11144477B2 (en) | 2017-12-29 | 2018-10-23 | Method for processing reclaimable memory pages, electronic device, and computer-readable storage medium |
EP18204914.8A EP3506106B1 (en) | 2017-12-29 | 2018-11-07 | Method for processing application, electronic device, and computer-readable storage medium |
PCT/CN2018/115480 WO2019128509A1 (en) | 2017-12-29 | 2018-11-14 | Method for processing application, electronic device, and computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711480487.8A CN109992393A (zh) | 2017-12-29 | 2017-12-29 | 应用处理方法和装置、电子设备、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109992393A true CN109992393A (zh) | 2019-07-09 |
Family
ID=64183958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711480487.8A Pending CN109992393A (zh) | 2017-12-29 | 2017-12-29 | 应用处理方法和装置、电子设备、计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11144477B2 (zh) |
EP (1) | EP3506106B1 (zh) |
CN (1) | CN109992393A (zh) |
WO (1) | WO2019128509A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727606A (zh) * | 2019-09-27 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN111625351A (zh) * | 2020-05-12 | 2020-09-04 | Oppo(重庆)智能科技有限公司 | 文件页的回收方法和装置、终端和可读存储介质 |
CN111949564A (zh) * | 2020-08-13 | 2020-11-17 | 青岛海信传媒网络技术有限公司 | 一种内存交换方法及显示设备 |
CN113886060A (zh) * | 2021-05-28 | 2022-01-04 | 荣耀终端有限公司 | 压缩内存的方法和装置 |
CN116089319A (zh) * | 2022-08-30 | 2023-05-09 | 荣耀终端有限公司 | 内存处理方法及相关装置 |
CN117130947A (zh) * | 2023-01-31 | 2023-11-28 | 荣耀终端有限公司 | 一种内存管理方法及电子设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992402B (zh) * | 2017-12-29 | 2021-07-09 | Oppo广东移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
KR102334237B1 (ko) * | 2019-10-17 | 2021-12-03 | 성균관대학교산학협력단 | 다중 포그라운드 어플리케이션을 위한 페이지 캐쉬 관리 방법 및 장치 |
CN112988375B (zh) * | 2019-12-17 | 2024-04-09 | 华为技术有限公司 | 进程管理方法和装置、电子设备 |
CN112241322A (zh) * | 2020-10-20 | 2021-01-19 | 北京字节跳动网络技术有限公司 | 内存管理方法、装置和移动设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699626A (zh) * | 2013-12-10 | 2015-06-10 | 中兴通讯股份有限公司 | 终端内存处理方法、装置及终端 |
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
WO2017206403A1 (zh) * | 2016-05-31 | 2017-12-07 | 宇龙计算机通信科技(深圳)有限公司 | 一种内存优化方法、优化装置以及终端 |
CN107463403A (zh) * | 2017-07-31 | 2017-12-12 | 广东欧珀移动通信有限公司 | 进程控制方法、装置、存储介质以及电子设备 |
CN107491353A (zh) * | 2017-09-11 | 2017-12-19 | 深圳天珑无线科技有限公司 | 内存回收方法、装置及计算机可读存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592432A (en) | 1995-09-05 | 1997-01-07 | Emc Corp | Cache management system using time stamping for replacement queue |
EP0919927A3 (en) | 1997-11-26 | 2000-05-24 | Compaq Computer Corporation | Dynamic memory allocation technique for maintaining an even distribution of cache page addresses within an address space |
US7827358B2 (en) | 2007-01-07 | 2010-11-02 | Apple Inc. | Memory management methods and systems |
CN101673216B (zh) | 2008-09-09 | 2016-03-30 | 联想(北京)有限公司 | 应用程序关闭方法和装置 |
WO2011031903A2 (en) | 2009-09-09 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for allocating storage |
CN103186436B (zh) | 2013-03-28 | 2016-01-06 | 深圳市显控自动化技术有限公司 | 一种android系统掉电保护方法及装置 |
US9584438B2 (en) * | 2013-06-02 | 2017-02-28 | Microsoft Technology Licensing, Llc | Idle worker-process page-out |
JP6403976B2 (ja) | 2014-04-09 | 2018-10-10 | アルパイン株式会社 | コンピュータプログラム、情報処理装置及び処理実行方法 |
US10552179B2 (en) * | 2014-05-30 | 2020-02-04 | Apple Inc. | Resource management with dynamic resource policies |
CN105988827B (zh) | 2015-01-29 | 2019-07-05 | 阿里巴巴集团控股有限公司 | 一种应用冻结、解冻的方法及装置 |
CN105404551A (zh) | 2015-12-11 | 2016-03-16 | Tcl移动通信科技(宁波)有限公司 | 移动终端的应用前后台切换处理方法、系统及移动终端 |
CN105701025B (zh) | 2015-12-31 | 2019-07-23 | 华为技术有限公司 | 一种内存回收方法及装置 |
US9747222B1 (en) | 2016-03-31 | 2017-08-29 | EMC IP Holding Company LLC | Dynamic ingestion throttling of data log |
US10540098B2 (en) * | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main memory systems |
-
2017
- 2017-12-29 CN CN201711480487.8A patent/CN109992393A/zh active Pending
-
2018
- 2018-10-23 US US16/168,236 patent/US11144477B2/en active Active
- 2018-11-07 EP EP18204914.8A patent/EP3506106B1/en active Active
- 2018-11-14 WO PCT/CN2018/115480 patent/WO2019128509A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699626A (zh) * | 2013-12-10 | 2015-06-10 | 中兴通讯股份有限公司 | 终端内存处理方法、装置及终端 |
WO2017206403A1 (zh) * | 2016-05-31 | 2017-12-07 | 宇龙计算机通信科技(深圳)有限公司 | 一种内存优化方法、优化装置以及终端 |
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
CN107463403A (zh) * | 2017-07-31 | 2017-12-12 | 广东欧珀移动通信有限公司 | 进程控制方法、装置、存储介质以及电子设备 |
CN107491353A (zh) * | 2017-09-11 | 2017-12-19 | 深圳天珑无线科技有限公司 | 内存回收方法、装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
代玲莉 等: "《Linux内核分析与实例应用》", 31 December 2002, 国防工业出版社 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727606A (zh) * | 2019-09-27 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置以及电子设备 |
CN111625351A (zh) * | 2020-05-12 | 2020-09-04 | Oppo(重庆)智能科技有限公司 | 文件页的回收方法和装置、终端和可读存储介质 |
CN111949564A (zh) * | 2020-08-13 | 2020-11-17 | 青岛海信传媒网络技术有限公司 | 一种内存交换方法及显示设备 |
CN111949564B (zh) * | 2020-08-13 | 2024-05-17 | Vidaa(荷兰)国际控股有限公司 | 一种内存交换方法及显示设备 |
CN113886060A (zh) * | 2021-05-28 | 2022-01-04 | 荣耀终端有限公司 | 压缩内存的方法和装置 |
CN116089319A (zh) * | 2022-08-30 | 2023-05-09 | 荣耀终端有限公司 | 内存处理方法及相关装置 |
CN116089319B (zh) * | 2022-08-30 | 2023-10-31 | 荣耀终端有限公司 | 内存处理方法及相关装置 |
CN117130947A (zh) * | 2023-01-31 | 2023-11-28 | 荣耀终端有限公司 | 一种内存管理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3506106A1 (en) | 2019-07-03 |
US11144477B2 (en) | 2021-10-12 |
US20190205266A1 (en) | 2019-07-04 |
WO2019128509A1 (en) | 2019-07-04 |
EP3506106B1 (en) | 2023-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992393A (zh) | 应用处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992402A (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992523A (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN110018900A (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN110018902A (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN107220076A (zh) | 一种内存回收方法及装置 | |
CN110008008A (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992397A (zh) | 进程处理方法和装置、电子设备、计算机可读存储介质 | |
CN109144232A (zh) | 进程处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992367A (zh) | 应用处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992522A (zh) | 应用处理方法和装置、电子设备、计算机可读存储介质 | |
CN110018903A (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN109992399A (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN110032321A (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN110032439A (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN110032397A (zh) | 应用处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992360A (zh) | 进程处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992363A (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN110018885A (zh) | 应用程序冻结方法、装置、存储介质和终端 | |
CN109992369A (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992371A (zh) | 应用程序处理方法、装置、电子设备、计算机可读存储介质 | |
CN110008007A (zh) | 应用程序冻结方法、装置、存储介质和终端 | |
CN110045811A (zh) | 应用程序处理方法和装置、电子设备、计算机可读存储介质 | |
CN110046031B (zh) | 应用处理方法和装置、电子设备、计算机可读存储介质 | |
CN109992394A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40007238 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190709 |
|
RJ01 | Rejection of invention patent application after publication |