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

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

Info

Publication number
CN109992522A
CN109992522A CN201711484431.XA CN201711484431A CN109992522A CN 109992522 A CN109992522 A CN 109992522A CN 201711484431 A CN201711484431 A CN 201711484431A CN 109992522 A CN109992522 A CN 109992522A
Authority
CN
China
Prior art keywords
application
page
processed
data
memory
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
Application number
CN201711484431.XA
Other languages
English (en)
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 CN201711484431.XA priority Critical patent/CN109992522A/zh
Priority to PCT/CN2018/116507 priority patent/WO2019128542A1/zh
Publication of CN109992522A publication Critical patent/CN109992522A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

本申请涉及一种应用处理方法和装置、电子设备、计算机可读存储介质。该方法包括:获取待处理应用所占用的内存页;将所述内存页中存储的数据迁移至用于临时回收所述数据的临时存储空间中;在预设的加载界面中运行所述待处理应用;将运行所述待处理应用的过程中在所述临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收。通过上述方法,可提高对内存数据回收的准确性。

Description

应用处理方法和装置、电子设备、计算机可读存储介质
技术领域
本申请涉及数据处理领域,特别是涉及一种应用处理方法和装置、电子设备、计算机可读存储介质。
背景技术
电子设备上安装的应用在运行时,需要占用一定的内存。内存是一个应用在运行过程中数据的主要存储介质。由于电子设备上的内存容量有限,当后台应用占据的内存过多时,会影响前台应用的运行效率。因而需要对内存进行回收,以提高前台应用的运行效率。
传统对应用处理方法是将处于后台运行的单个应用占据的内存全部回收。然而,将单个应用使用的内存完全回收后将导致该应用下次启动和执行过程中需要将几乎所有被回收的内存重新加载回来,导致被回收内存的应用的运行速度显著降低。
发明内容
本申请实施例提供一种应用处理方法和装置、电子设备、计算机可读存储介质,可以在提高前台应用的运行效率的同时,降低对被回收内存的应用的运行的影响。
一种应用处理方法,包括:获取待处理应用所占用的内存页;将所述内存页中存储的数据迁移至用于临时回收所述数据的临时存储空间中;在预设的加载界面中运行所述待处理应用;将运行所述待处理应用的过程中在所述临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收。
一种应用处理装置,所述装置包括:内存页获取模块,用于获取待处理应用所占用的内存页;存储数据处理模块,用于将所述内存页中存储的数据迁移至用于临时回收所述数据的临时存储空间中;应用处理模块,用于在不接收焦点的、屏幕不可见预设的加载界面中运行所述待处理应用;所述存储数据处理模块还用于将运行所述待处理应用的过程中在所述临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各实施例中所述的应用处理方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请各实施例中所述的应用处理方法的步骤。
本申请实施例提供的应用处理方法和装置、电子设备、计算机可读存储介质,通过将待处理应用所占用的内存页中存储的数据迁移至用于临时回收数据的临时存储空间中,然后在预设的加载界面中运行待处理应用,从而可准确检测出该待处理应用所需使用到的数据,进而将在临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收,实现了对待处理应用无需使用的内存数据进行精准回收,既提高了可用内存的存储空间,又防止待处理应用恢复运行时的运行速度的下降。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中电子设备的内部结构示意图;
图2为一个实施例中电子设备中的***的部分框架示意图;
图3为一个实施例中应用处理方法的流程图;
图4为另一个实施例中应用处理方法的流程图;
图5为一个实施例中包含不接收焦点的、屏幕不可见的界面的示意图;
图6为一个实施例中应用处理装置的结构框图;
图7为另一个实施例中应用处理装置的结构框图;
图8为又一个实施例中应用处理装置的结构框图;
图9为一个实施例中手机的部分结构的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图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,将内存页中存储的数据迁移至用于临时回收数据的临时存储空间中。
内存页中存储的数据即为相应应用在运行过程中所使用到的或生成的数据,该数据被临时缓存在内存中。临时存储空间为预先设置的用于对内存数据进行临时回收存储的存储空间。该临时存储空间可为块缓存(block cache)、页缓存(page cache)、虚拟内存、flash闪存或外接存储介质等其中的任意一种或几种存储介质中的存储空间。电子设备可将部分或全部内存页中存储的数据迁移至临时存储空间中。临时存储空间用于对内存页中存储的数据进行临时回收和存储,并在一定条件下将存储的数据进行回迁或迁移至其它存储空间中或者进行删除等操作,通过设置临时存储空间,可实现对该待处理应用所占用内存的全部或部分的临时回收和存储。
步骤306,在预设的加载界面中运行待处理应用。
预设的加载界面为预先设置的用于对待处理应用进行运行的承载界面。该加载界面的尺寸和位置可为预设的任意合适的尺寸和位置。在一个实施例中,该加载界面可为电子设备上预设的一种分屏界面,使得可在该界面上运行待处理应用。
在一个实施例中,该加载界面可为不接收焦点的、屏幕不可见的界面。其中,焦点表示接收用户的点击或键盘输入的能力,不接收焦点的界面表示在该界面上进行的点击、输入等操作均不做接收或响应。屏幕不可见表示用户视觉看不到的界面,而针对***来说,是存在的一个界面。其界面展示效果可类似于完全透明的界面的展示效果,使得用户无法查看到该界面上展示的信息。通过设置不接收焦点的、屏幕不可见的界面,使得在该界面上产生的运行不会对用户的操作产生影响。
电子设备根据迁移至临时存储空间中的数据在预设的不接收焦点的、屏幕不可见的界面来运行该待处理应用,以检测运行该应用时所需使用到的数据。其中,该使用到的数据包括迁移至临时存储空间中的数据和/或剩余内存页中未迁移的数据。其中,运行待处理应用的方式可包括对待处理应用进行启动的方式,即通过在该不接收焦点的、屏幕不可见的界面中启动待处理应用,以检测在启动过程中所需使用到的数据。通过在不接收焦点的、屏幕不可见的界面中运行该待处理应用,可降低对用户操作以及***造成影响,
步骤308,将运行待处理应用的过程中在临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收。
针对在运行该应用的过程中检测出所使用到的数据,即可判定为在运行该应用时需要用到的数据,可将该部分数据从该临时存储空间中重新读回至内存页中,以使得用户在需要运行该应用时,可迅速使用重新读回至内存页中的数据,防止待处理应用的运行效率降低。而针对未被使用到的数据,则可对其进行回收,比如可将该未被使用到的数据回收至flash闪存中,降低对内存空间的占用,使得在运行待处理应用的过程中,需要使用到该数据时再将其重新读回至内存页中。可选地,可重新为待处理应用分配新的内存页,并将在临时存储空间中使用到的数据写入重新分配的内存页对应的内存地址中。
上述的应用处理方法,通过将待处理应用占用的内存页中的数据迁移至用于临时回收数据的临时存储空间中,然后重新运行待处理应用,以检测迁移了内存页中的数据之后,在预设的加载界面上运行待处理应用的过程中所需使用到的被迁移的数据,通过重新运行该待处理应用后,将检测出的所需使用到的数据再重新读回至内存页中,防止造成误回收,而对于未使用到的数据,则将其进行回收,从而实现了对待处理应用无需使用的数据进行精准回收,既提高了可用内存的存储空间,又防止待处理应用恢复运行时的运行速度的下降。
在一个实施例中,步骤302包括:查询待处理应用所占用的内存的所有内存页;从所有内存页中获取可回收内存页。
电子设备可预先记录待处理应用在运行所占用的所有内存页,并从该所有内存页中获取可收回内存页。可回收内存页表示可进行回收,且回收后对待处理应用以及其它应用的运行不造成影响或者造成的影响较小的内存页。电子设备可记录该所有内存页中,哪些内存页为可回收内存页,哪些内存页为不可回收内存页,并根据该记录信息来获取待处理应用占用的可回收内存页。
在一个实施例中,电子设备可实时记录不同的应用所占用内存的内存页,并针对该每个被占用的内存页,进一步实时记录其是否可被回收。比如,当存在某一内存页中的数据正在被其它应用或者该待处理应用所使用时,则判定该内存页为不可回收的内存页,当记录到被占用的内存页中的数据处于无应用使用状态,或者处于该无应用使用状态的持续时长超过预设时长时,则判定该内存页为可回收内存页。
针对待处理应用,可从预先记录的信息中查询其所占用所有的内存页,并根据所记录的每个内存页的使用状态,判定其是否为可回收内存页,然后获取所有的可回收内存页。
在一个实施例中,查询待处理应用所占用的内存的所有内存页,包括:遍历待处理应用的内存映射文件;通过内存映射文件查询待处理应用占用的所有内存页。
内存映射文件(Memory-Mapped Files)是由一个文件到一块内存的映射。电子设备针对该待处理应用建立了对应的内存映射文件,该内存映射文件中设置了对应的应用所占用的内存页,通过遍历该待处理应用对应的内存映射文件,并从每个遍历到的内存映射文件中读取该待处理应用占用的内存页,从而可获取到该待处理应用所占用的所有的内存页,提高了对待处理应用占用的内存页的查询效率和查询的全面性。
在一个实施例中,从所有内存页中获取可回收内存页,包括:从所有内存页中剔除携带占用标记的内存页;从剔除后的内存页中获取可回收内存页。
其中,针对查询出的被待处理应用所占用的所有的内存页,电子设备可检测每个查询出的内存页是否携带有占用标记,或者是否被多个应用所占用。其中,占用标记表示对应的内存页中存储的数据正处于对待处理应用所使用,或者是其中的数据是待处理应用在保持正常运行的过程中,不可缺少的数据,当该数据被删除后,待处理应用要么无法正常运行,或者需要反复占用新的内存页来存放对应的数据,针对检测出的这类数据,电子设备可对存储该类数据的内存页而设置占用标记,以表示对应的内存页不能回收。
被待处理应用占用的内存页中,其中存储的数据还可能被其它应用所使用,即有多个应用均在使用该内存页中的数据,针对该类内存页,也可将其设置占用标记,使电子设备同样将其剔除,以表示不从该类内存页中进行回收。
针对剔除后的内存页,保留下来的内存页即为可回收内存页,电子设备可从该内存页中进行内存回收。
在一个实施例中,电子设备可调用如图2中所示的资源优先级和限制管理模块222来遍历待处理应用的内存映射文件;通过内存映射文件查询待处理应用占用的所有内存页,并通过该资源优先级和限制管理模块222检测每个内存页是否为可回收内存页,对于不可回收内存页设置对应的占用标记,同时记录每个内存页是否还多个应用所占用,从查询出的所有内存页中剔除携带占用标记和/或被多个应用占用的内存页;从剔除后的内存页中获取可回收内存页。
由于进行临时回收的对象是可回收内存页中存储的数据,对于被占用的内存页则并进行临时回收,可进一步降低对待处理应用或其它应用造成的影响,并且还可降低对在进行临时回收的过程中的数据迁移量。
在一个实施例中,在步骤304之前,还包括:获取待处理应用对每个内存页的空闲时长;根据每个内存页的空闲时长确定时长阈值;步骤304包括:将空闲时长超过时长阈值的内存页中存储的数据迁移至临时存储空间中。
由于内存页中存储的数据并非一直被应用所使用,对内存页的空闲时长表示***为该待处理应用分配内存页后,该内存页中存储的数据在最近一次被使用之后,处于未被使用状态的持续时长。电子设备根据每个内存页的数据使用情况,来实时更新每个内存页的空闲时长,当准备进行对待处理应用占用的内存页进行回收时,可获取最新记录的每个内存页的空闲时长。
在一个实施例中,当最近一次发起对内存页的分配、回收、释放等情形,或者对处理器中缓存的使用情况进行查询的情况,均判定对相应涉及到的内存页的数据进行了使用,并将产生对应情形下的***时间最为最近一次对内存页的数据使用时间,当前时间和该最近时间之差即为对相应内存页的空闲时长。
在一个实施例中,电子设备可对每个内存页创建对应的时间戳,该时间戳记录对应内存页中的数据在最近一次的使用时间。在操作***中,每当主动发起对内存的分配、回收、释放等时机,可对相应内存页的活跃度进行更新,并将该更新时间记录在该时间戳中。或者在***定时检查处理器缓存的使用情况,可判定当前缓存中的数据都为当前使用的数据,并更新所涉及到的内存页的时间戳,将该更新时间记录在该时间戳中。可选地,可将最新记录到的更新时间替换掉上一次的更新时间,以减少更新时间的资源占用。
时长阈值表示用于决定是否对内存页进行回收的临界数值。时长阈值可为固定的数值,或者还可根据每个内存页的空闲时长而确定的时长阈值,空闲时长不同,所确定的时长阈值也不一定相同。
在一个实施例中,时长阈值可为所有内存页的空闲时长的加权平均值,或者还可为从该所有内存页的空闲时长中选取一个空闲时长,将选取的空闲时长作为时长阈值。比如可在该待处理应用占用的所有内存页的空闲时长中,选取处于与中位数相接近的,或者处于排序在某一位置上的空闲时长,将选取的空闲时长作为时长阈值。
电子设备可按照所确定的时长阈值,从该待处理应用占用的内存页中,选取空闲时长超过该时长阈值的内存页进行临时回收,将选取的内存页中存储的数据写入临时存储空间中。可选地,电子设备可通过上述的进程内存回收模块234,按照该时长阈值从内存页中进行内存页的回收,将回收的内存页中存储的数据写入临时存储空间中。
举例来说,内存页有100页,相应的空闲时长分别处于5秒至15分钟之间,当根据该空闲时长而确定的时长阈值为5分钟时,可从该100页的内存页中,回收空闲时长超过5分钟的内存页。
在一个实施例中,被临时回收存储数据的内存页为可回收内存页。
上述方法中,通过按照与每个内存页的空闲时长,选取空闲时长超过相应的时长阈值的内存页进行回收,进一步降低了对待处理应用的运行影响,并能提高临时回收数据的精准性,降低了后续需要重新读回内存页中的数据量,对每个应用的负面影响最小,又提高了内存使用效率,保持了对待处理应用内存的回收与运行之间的平衡性。
在一个实施例中,获取待处理应用对每个内存页的空闲时长,包括:获取每个内存页的时间戳记录的更新时间,根据更新时间计算出对应内存页的空闲时长。
电子设备可通过上述的资源优先级和限制管理模块222,为每个内存页创建一个时间戳,该时间戳用于记录对应的更新时间,更新时间表示对应内存页最近被使用的时间。当检测到每个内存页中的内存被使用时,可对该时间戳记录的更新时间进行更新。
其中,每当最近一次发起对内存页的分配、回收、释放等情形,或者对处理器中缓存的使用情况进行查询的情况,均判定对相应涉及到的内存页的数据进行了使用,并将产生对应情形下的***时间作为该更新时间。当开始执行内存回收机制时,可根据该时间戳记录的更新时间和当前***时间,可计算出相应的内存页的空闲时长。当前时间和该最近时间之差即为对相应内存页的空闲时长。
通过利用软件创建时间戳的方式来记录每个内存页的更新时间,根据该更新时间来确定空闲时长,可以有效兼容不同的处理器,提高了对内存回收的通用性。
在一个实施例中,获取待处理应用对每个内存页的空闲时长,包括:获取通过最近最久未使用LRU管理单元记录的每个内存页的更新时间,根据更新时间计算出对应内存页的空闲时长。
在处理器中的内存管理或缓存单元中,设置相应的最近最久未使用(LeastRecently Used,LRU)管理单元,用于对最近使用到的内存进行统计。LRU管理单元可记录每个内存地址以及该内存地址的更新时间,当某一地址的内存被使用到时,处理器将对应的内存地址和更新时间放入LRU管理单元中保存。当开始执行内存回收机制时,可根据该内存地址和内存页之间的对应关系,可获知每个内存地址对应的内存页,进而可从LRU管理单元中读取对应内存页的更新时间。其中,每当最近一次发起对内存页的分配、回收、释放等情形,或者对处理器中缓存的使用情况进行查询的情况,均判定对相应涉及到的内存页的数据进行了使用,并将产生对应情形下的***时间作为该更新时间。
当LRU管理单元用满后,可产生中断信息并通知操作***,操作***在读取LRU管理单元的数据后可清空其中的数据,使得LRU管理单元可重新开始工作,存储每个内存地址及其对应的更新时间等信息。
本实施例中,通过创建LRU管理单元,可以精确地追踪每一个内存的使用情况,提高了对内存页的更新时间检测的准确性,也提高了内存回收的便利性。
在一个实施例中,根据每个内存页的空闲时长确定时长阈值,包括:根据每个内存页的空闲时长计算出待处理应用对内存页的平均空闲时长,将平均空闲时长作为时长阈值。
其中,平均空闲时长可为待处理应用所占用的内存页中,每个内存页的占用时长的平均值。电子设备可根据统计到的每个内存页的占用时长,调用相应的计算单元进行计算,以计算出该平均空闲时长,将该平均空闲时长作为时长阈值。通过将平均空闲时长作为时长阈值,可提高对时长阈值的计算效率,且计算简单,从而也相应提高了对内存回收的效率。
在一个实施例中,如图4所示,提供了另一种应用处理方法,该方法包括:
步骤402,获取待处理应用所占用的可回收内存页。
可选地,电子设备可遍历待处理应用的内存映射文件;通过内存映射文件查询待处理应用占用的所有内存页;从所有内存页中剔除携带占用标记的内存页;从剔除后的内存页中获取可回收内存页。
步骤404,获取待处理应用对每个可回收内存页的空闲时长。
在一个实施例中,可获取每个内存页的时间戳记录的更新时间,根据更新时间计算出对应内存页的空闲时长;或获取通过最近最久未使用LRU管理单元记录的每个内存页的更新时间,根据更新时间计算出对应内存页的空闲时长。
步骤406,根据每个可回收内存页的空闲时长计算出待处理应用对内存页的平均空闲时长,将平均空闲时长作为时长阈值。
平均空闲时长为根据每个可回收内存页的空闲时长进行求平均值而计算出的时长。通过将平均空闲时长作为时长阈值,可进一步提高对可回收内存页进行临时回收的准确性。
步骤408,将空闲时长超过时长阈值的可回收内存页中存储的数据迁移至页缓存中的存储空间中。
页缓存可为预先划分出的用于临时存储内存页中存储的数据的存储介质。通过将可回收内存页中的数据迁移至页缓存中,可提高对该数据的迁移效率。
步骤410,在不接收焦点的、屏幕不可见的界面中运行待处理应用。
在一个实施例中,不接收焦点的、屏幕不可见的界面的尺寸与***显示界面的尺寸相同。举例来说,如图5所示,为一个实施例中包含了不接收焦点的、屏幕不可见的界面的示意图。其中,界面502即为该不接收焦点的、屏幕不可见的界面,界面504为正常的***显示界面。该界面可为手机操作界面,该不接收焦点的、屏幕不可见的界面可为与手机屏幕尺寸相同的界面。通过在***可识别而用户不可见的、不接收焦点的界面上运行待处理应用,从而不会影响前台操作,也不会对待处理应用的运行造成干扰,使得在该不接收焦点的、屏幕不可见的界面上运行待处理应用时,所需使用到的数据也为在***正常显示界面上运行待处理应用时所需使用到的数据,从而可实现对运行待处理应用所需使用数据的精准检测。其中,运行待处理应用可为启动待处理应用。
步骤412,将运行待处理应用的过程中在页缓存中的存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收。
针对在运行该应用的过程中检测出所使用到的数据,即可判定为在运行该应用时需要用到的数据,可将检测出的使用的到的数据从页缓存中重新读回至内存页中,该内存页可为重新分配的内存页,或者为对应存储迁移存储的数据的内存页。针对检测出未使用到的数据,可将其回收至flash闪存之中,使得后续需要使用时,可从该flash闪存中加载回来。
上述的应用处理方法,通过将待处理应用所占用的内存页中存储的数据迁移至用于临时回收数据的临时存储空间中,然后在不接收焦点的、屏幕不可见的界面中运行待处理应用,从而可准确检测出该待处理应用所需使用到的数据,进而将在临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收,实现了对待处理应用无需使用的内存数据进行精准回收,既提高了可用内存的存储空间,又防止待处理应用恢复运行时的运行速度的下降。
在一个实施例中,在获取待处理应用所占用的内存页之前,还包括:检测待处理应用是否被前台应用依赖;若是,则将待处理应用的优先级调整至与前台应用相匹配;否则,执行获取待处理应用所占用的内存页。
在一个实施例中,当前台应用结束对待处理应用的依赖时,执行获取待处理应用所占用的内存页。
依赖表示一个应用需要利用于另一个或多个应用的数据才能顺利实现对该一个应用的正常运行的关系。存在依赖关系的两个应用,分别为被依赖的应用和依赖的应用,电子设备将检测出的将被前台应用依赖的后台运行的待处理应用判定为被前台应用依赖的后台应用。电子设备可对检测出的被前台应用所依赖的后台应用设置对应的被依赖标记,并从后台应用池中获取带有被依赖标记的后台应用,将该后台应用判定为被前台应用依赖的后台应用。前台应用即为前台运行的应用。
针对该待处理应用,若被前台应用依赖,则可将将待处理应用判定为被前台应用依赖的应用,将被前台应用依赖的待处理应用的优先级调整至与前台应用的优先级相匹配。
可选地,针对查询出的被前台应用依赖的待处理应用,电子设备可对其优先级进行调整,使得调整后的优先级与该前台应用的优先级相匹配。电子设备可设置不同的被前台应用依赖的待处理应用的优先级与前台优先级的匹配关系。根据该匹配关系,获取对应的适用于被前台应用依赖的待处理应用的优先级,并将被前台应用依赖的待处理应用的优先级调整至该优先级,降低对被前台应用依赖的待处理应用的资源限制程度,使得对被前台应用依赖的待处理应用所能使用的资源的限制程度与前台应用的限制程度相匹配。
在一个实施例中,与该前台应用的优先级相匹配的优先级,可为与该前台应用的优先级相同的优先级。即电子设备可将该被前台应用依赖的待处理应用的优先级调整至与该前台应用的优先级相同的优先级,使得对被前台应用依赖的待处理应用所能使用的资源的限制程度与前台应用的限制程度相同。
通过对待处理应用进行依赖关系检测,将被前台应用所依赖的待处理应用的优先级调整至与前台应用相配的优先级。由于通常前台应用的优先级最高,对应可使用的资源的限制程度最低,而后台进程的优先级较低,以防止后台进程占用过多的资源,对前台应用造成影响。然而后台进程中存在着被前台应用所依赖的情况,被依赖的后台进程执行效率时,也会对前台应用造成影响。本申请实施例通过调整被依赖的待处理应用的优先级调整至与前台优先级相匹配的优先级,从而可降低被依赖的待处理应用所能使用的资源的限制程度,从而提高了被依赖的待处理应用的处理效率。由于该被依赖的待处理应用的处理效率提高了,从而也提高了依赖于该被依赖的待处理应用的前台应用的处理效率。
在一个实施例中,当待处理应用与前台应用之间存在socket通信、binder通信、内存共享或锁等待时,判定后台进程与前台应用之间存在通信机制。
可通过以下任意一种或几种方式检测是否存在与前台应用具有通信机制的后台进程:
(1)检测是否存在与前台应用具有socket和/或binder通信的后台进程;
(2)检测是否存在与前台应用之间进行内存共享的后台进程;
(3)检测是否存在前台应用等待在锁资源上的后台进程。
电子设备可在Binder驱动中设置对前台应用和后台进程之间是否存在Binder通信的检测机制,并调用在Binder驱动中设置的检测机制,以检测出与前台应用存在Binder通信的后台进程,将检测出的后台进程判定为被前台应用依赖的后台进程。
在一个实施例中,电子设备可检测各个锁资源,锁资源包括线程锁,文件句柄,信号等。针对每个锁资源,可检测是否发生锁等待,即锁资源等待。当检测到产生锁等待时,可进一步检测该发生等待的行为是否发生在前台应用上。若是,则遍历等待在该锁资源上面的所有后台进程,将检测到的等待在该锁资源上的后台进程均判定为被前台应用依赖的后台进程。
在一个实施例中,电子设备可在操作***的内核空间中设置锁资源监控模块和优先级调整模块,将锁资源监控模块内嵌到内核原生的等待接口当中。通过该锁资源监控模块,检测线程锁,文件句柄,信号等锁各种锁资源,是否发生等待,发生等待的行为是否是发生在前台应用上面,如果是发生在前台任务上面,则将检测到的消息发送至优先级调整模块。通过该优先级调整遍历等待在该锁资源上面的所有后台线程,将这些后台进程判定为被前台应用依赖的后台进程。并通过该优先级调整模块将相应的待处理应用的优先级调整至相匹配的优先级。
在一个实施例中,当后台进程与前台应用之间存在同步机制时,判定具有同步机制的待处理应用为被前台应用依赖的后台进程。
电子设备还可通过调用futex***调用检测后台进程集合中,是否存在与前台应用具有同步机制的后台进程,将具有同步机制的后台进程判定为被前台应用依赖的后台进程。
并发程序设计中,各进程对公共变量的访问必须加以制约,这种制约称为同步。在操作***中,用户态(user mode)的同步机制可通过调用futex***调用实现。其中,用户态指非特权状态。同步机制包括信号量、互斥锁等。当通过futex***调用检测到与前台应用存在任意一种同步机制的后台进程时,可将检测到的后台进程判定为被前台应用依赖的后台进程。
通过对前台应用和后台进程之间的通信机制和/或同步机制的检测,将检测出的与前台应用具有通信机制和/或同步机制的后台进程判定为被前台应用依赖的后台进程,可提高对被前台应用依赖的待处理应用的检测的效率。
应该理解的是,虽然图3和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种应用处理装置,该装置包括:内存页获取模块602、存储数据处理模块604以及应用处理模块606。其中,内存页获取模块602用于获取待处理应用所占用的内存页;存储数据处理模块604用于将内存页中存储的数据迁移至用于临时回收数据的临时存储空间中;应用处理模块606用于在预设的加载界面中运行待处理应用;存储数据处理模块604还用于将运行待处理应用的过程中在临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收。
在一个实施例中,内存页获取模块602还用于遍历待处理应用的内存映射文件;通过内存映射文件查询待处理应用占用的所有内存页;从所有内存页中剔除携带占用标记的内存页;从剔除后的内存页中获取可回收内存页。
在一个实施例中,如图7所示,提供了另一种内存处理装置,该装置还包括:
时长确定模块608,用于获取待处理应用对每个内存页的空闲时长;根据每个内存页的空闲时长确定时长阈值。
存储数据处理模块604还用于将空闲时长超过时长阈值的内存页中存储的数据迁移至临时存储空间中。
在一个实施例中,时长确定模块608还用于获取每个内存页的时间戳记录的更新时间,根据更新时间计算出对应内存页的空闲时长;或获取通过最近最久未使用LRU管理单元记录的每个内存页的更新时间,根据更新时间计算出对应内存页的空闲时长。
在一个实施例中,时长确定模块608还用于根据每个内存页的空闲时长计算出待处理应用对内存页的平均空闲时长,将平均空闲时长作为时长阈值。
在一个实施例中,临时存储空间包括页缓存中的存储空间;加载界面为不接收焦点的、屏幕不可见的界面,该加载界面的尺寸与***显示界面的尺寸相同。
在一个实施例中,如图8所示,提供了又一种应用处理装置,该装置还包括:
依赖检测模块610,用于检测待处理应用是否被前台应用依赖。
优先级调整模块612,用于当待处理应用被前台应用依赖时,将待处理应用的优先级调整至与前台应用相匹配。
上述应用处理装置中各个模块的划分仅用于举例说明,在其他实施例中,可将应用处理装置按照需要划分为不同的模块,以完成上述应用处理装置的全部或部分功能。关于应用处理装置的具体限定可以参见上文中对于应用处理方法的限定,在此不再赘述。上述应用处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本申请实施例中提供的应用处理装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器等电子设备上运行。该计算机程序构成的程序模块可存储在电子设备的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述的应用处理方法的步骤。
在一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各实施例所提供的应用处理方法的步骤。
在一个实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序对处理器执行时,实现本申请各实施例中所描述的应用处理方法的步骤。
在一个实施例中,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请各实施例中所描述的应用处理方法。
本申请实施例还提供了一种计算机设备。如图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中。比如,该处理器980可集成应用处理器和基带处理器,基带处理器与和其它***芯片等可组成调制解调器。手机900还包括给各个部件供电的电源990(比如电池),优选的,电源可以通过电源管理***与处理器980逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
在一个实施例中,手机900还可以包括摄像头、蓝牙模块等。
在本申请实施例中,该手机所包括的处理器执行存储在存储器上的计算机程序时实现上述所描述的应用处理方法。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(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 (10)

1.一种应用处理方法,其特征在于,包括:
获取待处理应用所占用的内存页;
将所述内存页中存储的数据迁移至用于临时回收所述数据的临时存储空间中;
在预设的加载界面中运行所述待处理应用;
将运行所述待处理应用的过程中在所述临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收。
2.根据权利要求1所述的方法,其特征在于,所述获取待处理应用所占用的内存页,包括:
遍历待处理应用的内存映射文件;
通过所述内存映射文件查询所述待处理应用占用的所有内存页;
从所述所有内存页中剔除携带占用标记的内存页;
从剔除后的内存页中获取可回收内存页。
3.根据权利要求1所述的方法,其特征在于,在所述将所述内存页中存储的数据迁移至用于临时回收所述数据的临时存储空间中之前,还包括:
获取所述待处理应用对每个所述内存页的空闲时长;
根据所述每个所述内存页的空闲时长确定时长阈值;
所述将所述内存页中存储的数据迁移至用于临时回收所述数据的临时存储空间中,包括:
将空闲时长超过所述时长阈值的内存页中存储的数据迁移至临时存储空间中。
4.根据权利要求3所述的方法,其特征在于,所述获取所述待处理应用对每个所述内存页的空闲时长,包括:
获取每个内存页的时间戳记录的更新时间,根据所述更新时间计算出对应内存页的空闲时长;或
获取通过最近最久未使用LRU管理单元记录的每个内存页的更新时间,根据所述更新时间计算出对应内存页的空闲时长。
5.根据权利要求3所述的方法,其特征在于,所述根据所述每个所述内存页的空闲时长确定时长阈值,包括:
根据所述每个所述内存页的空闲时长计算出所述待处理应用对内存页的平均空闲时长,将所述平均空闲时长作为时长阈值。
6.根据权利要求1所述的方法,其特征在于,所述临时存储空间包括页缓存中的存储空间;所述加载界面为不接收焦点的、屏幕不可见的界面;所述加载界面的尺寸与***显示界面的尺寸相同。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述获取待处理应用所占用的内存页之前,还包括:
检测待处理应用是否被前台应用依赖;
若是,则将所述待处理应用的优先级调整至与前台应用相匹配;
否则,执行所述获取待处理应用所占用的内存页。
8.一种应用处理装置,其特征在于,所述装置包括:
内存页获取模块,用于获取待处理应用所占用的内存页;
存储数据处理模块,用于将所述内存页中存储的数据迁移至用于临时回收所述数据的临时存储空间中;
应用处理模块,用于在预设的加载界面中运行所述待处理应用;
所述存储数据处理模块还用于将运行所述待处理应用的过程中在所述临时存储空间中使用到的数据重新读回至内存页中,将未使用到的数据进行回收。
9.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
CN201711484431.XA 2017-12-29 2017-12-29 应用处理方法和装置、电子设备、计算机可读存储介质 Pending CN109992522A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711484431.XA CN109992522A (zh) 2017-12-29 2017-12-29 应用处理方法和装置、电子设备、计算机可读存储介质
PCT/CN2018/116507 WO2019128542A1 (zh) 2017-12-29 2018-11-20 应用处理方法、电子设备、计算机可读存储介质

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
CN109992522A true CN109992522A (zh) 2019-07-09

Family

ID=67065077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711484431.XA Pending CN109992522A (zh) 2017-12-29 2017-12-29 应用处理方法和装置、电子设备、计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN109992522A (zh)
WO (1) WO2019128542A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258965A (zh) * 2020-01-10 2020-06-09 北京猎豹移动科技有限公司 一种数据获取方法、装置、电子设备及存储介质
CN114168225A (zh) * 2021-12-08 2022-03-11 深圳忆联信息***有限公司 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质
CN114861209A (zh) * 2022-05-24 2022-08-05 Oppo广东移动通信有限公司 内存空间的占用信息的获取方法、装置及终端
CN114942800A (zh) * 2021-02-09 2022-08-26 荣耀终端有限公司 一种应用程序运行加速的方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231619A (zh) * 2008-02-22 2008-07-30 浙江大学 一种基于非连续页的动态内存管理方法
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
CN102831073A (zh) * 2012-08-17 2012-12-19 广东威创视讯科技股份有限公司 一种内存数据处理方法和***
CN106484472A (zh) * 2016-09-29 2017-03-08 华为技术有限公司 一种内存回收方法及终端
CN107066335A (zh) * 2017-03-23 2017-08-18 华南师范大学 一种云平台内存的优化方法和优化***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231619A (zh) * 2008-02-22 2008-07-30 浙江大学 一种基于非连续页的动态内存管理方法
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
CN102831073A (zh) * 2012-08-17 2012-12-19 广东威创视讯科技股份有限公司 一种内存数据处理方法和***
CN106484472A (zh) * 2016-09-29 2017-03-08 华为技术有限公司 一种内存回收方法及终端
CN107066335A (zh) * 2017-03-23 2017-08-18 华南师范大学 一种云平台内存的优化方法和优化***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258965A (zh) * 2020-01-10 2020-06-09 北京猎豹移动科技有限公司 一种数据获取方法、装置、电子设备及存储介质
CN111258965B (zh) * 2020-01-10 2024-03-08 北京聚云立方科技有限公司 一种数据获取方法、装置、电子设备及存储介质
CN114942800A (zh) * 2021-02-09 2022-08-26 荣耀终端有限公司 一种应用程序运行加速的方法及设备
CN114168225A (zh) * 2021-12-08 2022-03-11 深圳忆联信息***有限公司 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质
CN114168225B (zh) * 2021-12-08 2024-05-14 深圳忆联信息***有限公司 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质
CN114861209A (zh) * 2022-05-24 2022-08-05 Oppo广东移动通信有限公司 内存空间的占用信息的获取方法、装置及终端
CN114861209B (zh) * 2022-05-24 2024-06-04 Oppo广东移动通信有限公司 内存空间的占用信息的获取方法、装置及终端

Also Published As

Publication number Publication date
WO2019128542A1 (zh) 2019-07-04

Similar Documents

Publication Publication Date Title
CN109992523A (zh) 内存处理方法和装置、电子设备、计算机可读存储介质
CN109992393A (zh) 应用处理方法和装置、电子设备、计算机可读存储介质
CN109992402A (zh) 内存处理方法和装置、电子设备、计算机可读存储介质
CN110018900A (zh) 内存处理方法和装置、电子设备、计算机可读存储介质
CN110018902A (zh) 内存处理方法和装置、电子设备、计算机可读存储介质
CN109992522A (zh) 应用处理方法和装置、电子设备、计算机可读存储介质
CN110008008A (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109992398A (zh) 资源管理方法、装置、移动终端及计算机可读存储介质
CN109992397A (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
CN110032266B (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
CN109992367A (zh) 应用处理方法和装置、电子设备、计算机可读存储介质
CN104424211A (zh) 一种基于微博的业务数据的发布方法、装置和***
CN110046032A (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109992399A (zh) 资源管理方法、装置、移动终端及计算机可读存储介质
CN110018903A (zh) 资源管理方法、装置、移动终端及计算机可读存储介质
CN110032439A (zh) 资源管理方法、装置、移动终端及计算机可读存储介质
CN109992360A (zh) 进程处理方法和装置、电子设备、计算机可读存储介质
CN110032397A (zh) 应用处理方法和装置、电子设备、计算机可读存储介质
CN109992309A (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109992363A (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109375995A (zh) 应用冻结方法和装置、存储介质、电子设备
CN110045811A (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109992371A (zh) 应用程序处理方法、装置、电子设备、计算机可读存储介质
CN109992369A (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN109992322A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190709