内存回收方法及装置、终端设备及计算机可读存储介质制造方法及图纸

技术编号:18458591 阅读:38 留言:0更新日期:2018-07-18 12:37
本发明专利技术提供一种内存回收方法及装置、终端设备及计算机可读存储介质,该方法包括获取对目标应用程序执行软重启的指令,目标应用程序执行软重启操作;判断目标应用程序是否执行完毕软重启操作,如是,目标应用程序执行内存回收操作。该装置包括获取模块,用于获取对目标应用程序执行软重启的指令;软重启模块,用于对目标应用程序执行软重启操作;内存回收模块,用于确定目标应用程序执行完毕软重启操作后,对目标应用程序执行内存回收操作。本发明专利技术的终端设备具有处理器以及存储器,处理器执行计算机程序时可以实现上述的内存回收方法。本发明专利技术的计算机可读存储介质上存储有用于实现上述方法计算机程序。本发明专利技术可以回收软重启后的应用程序的内存。

Memory recovery method and device, terminal equipment and computer readable storage medium

The invention provides a memory recovery method and device, a terminal device and a computer readable storage medium. The method includes obtaining instructions for the soft restart of the target application, the target application executes the soft restart operation, and determines whether the target application has completed the soft restart operation, for example, the target application executes. Row memory recovery operation. The device includes the acquisition module to obtain the instructions for the soft restart of the target application; the soft restart module is used to execute the soft restart operation on the target application; the memory recovery module is used to determine the memory recovery operation for the target application after the target application is executed after the execution of the soft restart operation. The terminal device of the invention has a processor and a memory, and the memory recovery method can be realized when a processor executes a computer program. The computer readable storage medium of the invention is stored with a computer program for realizing the above method. The invention can recover the memory of the application program after soft restart.

【技术实现步骤摘要】
内存回收方法及装置、终端设备及计算机可读存储介质
本专利技术涉及电子设备的控制领域,具体地,是在一种在终端设备上实现内存回收方法以及实现这种方法的装置,还涉及一种实现上述方法的终端设备以及计算机可读存储介质。
技术介绍
智能手机、平板电脑等终端设备成为人们日常生活中最经常使用的电子设备,人们喜欢在智能电子设备上安装各种应用程序,并且在终端设备上同时运行大量的应用程序。应用程序运行过程中,可能会出现异常情况,如同时接收到大量的指令而无法及时响应,导致应用程序崩溃。如果应用程序出现异常后仍让应用程序继续运行,将导致应用程序占用大量的内存,且应用程序所占用的内存往往无法释放。另一方面,崩溃的应用程序还可能占用CPU等资源,最终导致终端设备运行缓慢,出现卡顿现象设置死机。因此,当应用程序出现异常情况时,系统通常需要强行关闭应用程序,或者,应用程序自己执行关闭操作,从而避免占用大量的硬件资源。然而,如果出现异常的应用程序是后台运行的应用程序,并且此时将后台运行的应用程序关闭,用户是不清楚该应用程序已被关闭,用户会认为该应用程序一直在后台运行。为了不影响用户的使用,在应用程序出现异常关闭后,需要对重新启动应用程序。由于现在对应用程序启动的方式都是依赖于用户发出的指令,如点击应用程序的图标或者发出声控指令等,因此当应用程序被系统关闭或者自己关闭后,难以自动的重新启动。为此,现有技术提出了一种对应用程序执行软重启的操作,也就是在判断应用程序因异常而被关闭后,在后台静默的启动,这样,应用程序的启动过程并不会在前台显示,用户感觉不到应用程序执行了重启的操作,从而不影响用户的使用。在应用程序软重启时,操作系统将发出对应用程序执行软重启的指令,也就是模拟用户点击应用程序图标的指令,操作系统将根据该指令执行应用程序的启动操作,并且在软重启后,应用程序仍在后台运行,并不会在前台显示,因此用户感觉不到应用程序已经重启,从而不影响用户的操作。另一方面,终端设备的操作系统中,为了加快对磁盘进行读写操作的速度,通常会将大量的数据缓存在内存中。进程在使用内存前,需要提出申请并开始占用内存,当使用完内存后再及时回收内存。由于用户在使用终端应用的过程中,经常会频繁更换应用,为了减少用户的等待时长,操作系统通常会为转入后台的应用进程保留其占用的内存。但是,当后台应用过多,内存被大量占用而得不到回收时,会因为内存分配不足导致操作系统运行出现异常。为了避免因内存分配不足导致的系统异常,操作系统引入了对内存的回收机制。例如,当内存不足时,系统会关闭一些后台进程来回收其占用的内存。但是,当用户需要使用这些进程对应的应用程序时,这些进程需要完全的进行重新加载,耗时长,降低用户体验。因此,现有技术提出在不关闭进程的情况下进行内存回收的方法。近期最少使用链表LRU,将物理页按照近期的使用情况进行排列,当内存不足时,系统会优先对其中的INACTIVE_ANON和INACTIVE_FILE这两个链表中的物理页进行回收。ANON代表匿名映射,没有后备存储器,FILE代表文件映射,INACTIVE代表处于非活动状态。当进程需要使用回收的物理页上的内容时,只要从磁盘中加载相应内容即可,减少耗时。但是,前台运行的应用进程或者后台运行的优先级高的应用进程,其占用的物理页也可能处于INACTIVE_ANON和INACTIVE_FILE这两个链表中,对这两个链表中的物理页进行回收可能会影响这两类应用的正常运行,降低用户体验。为了保证前台应用进程和后台运行的优先级高的应用进程的正常运行,现有技术提出针对进程进行内存回收的方法,首先获取目标进程的物理页,之后查找未被目标进程使用的目标物理页并回收目标物理页。但是在现有的对进程进行内存回收的方法中,其回收的目标物理页仅仅针对未被目标进程使用的目标物理页,目标物理页主要是目标进程在INACTIVE_ANON和INACTIVE_FILE这两个链表中的物理页,也就是非活动状态的物理页,这种方法的内存回收效率很低。此外,在应用程序软重启后,将产生大量的碎片,也就是占用大量的内存,如果不及时回收这些内存,将导致终端设备可使用的内存量减小,影响终端设备的运行速度。
技术实现思路
本专利技术的第一目的是提供一种及时对软重启后的应用程序执行内存回收的内存回收方法。本专利技术的第二目的是提供一种避免软重启后的应用程序占用大量内存的内存回收装置。本专利技术的第三目的是提供一种能够实现上述内存回收方法的终端设备。本专利技术的第四目的是提供一种被处理器读取并执行时能够实现上述内存回收方法的计算机可读存储介质。为了实现上述的第一目的,本专利技术提供的内存回收方法应用于终端设备,该方法包括获取对目标应用程序执行软重启的指令,目标应用程序执行软重启操作;判断目标应用程序是否执行完毕软重启操作,如是,目标应用程序执行内存回收操作。由上述方案可见,在目标应用程序执行软重启操作以后,对目标应用程序执行一次内存回收操作,可以有效的对软重启后的应用程序所占用的内存进行回收,确保目标应用程序软重启后的碎片能够得到及时的清理。一个优选的方案是,确定目标应用程序执行完毕软重启操作后,目标应用程序执行内存回收操作包括:确定目标应用程序执行完毕软重启操作后开启计时器,并判断是否到达第一计时时间,如是,目标应用程序执行第一轮内存回收操作。由此可见,在目标应用程序执行软重启后经过一个预定的时间才执行内存回收操作,可以确保执行内存回收操作时,目标应用程序的软重启操作已经完成,从而避免目标应用程序的内存回收操作影响软重启操作。进一步的方案是,确定到达第一计时时间后,目标应用程序执行第一轮内存回收操作前,还执行:确定在第一计时时间内,未收到对目标应用程序的用户操作指令或者目标应用程序未置于前台运行。如果在第一计时时间内,目标应用程序接收到用户操作指令或者置于前台运行,则表示目标应用程序当前有活跃的运行操作,因此不能对目标应用程序执行内存回收操作,以避免影响目标应用程序的运行。优选的,目标应用程序执行第一轮内存回收操作后,还执行:开启计时器,并判断是否到达第二计时时间,如是,目标应用程序执行第二轮内存回收操作;第二计时时间的时间长度大于第一计时时间的时间长度。优选的,确定到达第二计时时间后,目标应用程序执行第二轮内存回收操作前,还执行:确定在第二计时时间内,未收到对目标应用程序的用户操作指令或者目标应用程序未置于前台运行。并且,目标应用程序执行第一轮内存回收操作时,目标应用程序执行第一预设次数的内存回收操作,目标应用程序执行第二轮内存回收操作时,目标应用程序执行不少于第二预设次数的内存回收操作;且第一预设次数小于第二预设次数。由此可见,在应用程序执行软重启后,先后两次执行内存回收操作,例如,第一轮执行内存回收操作时可回收的内存量较少,而经过第二计时时间后,可以执行深度的内存回收操作,如连续执行二次或者三次的内存回收操作,从而回收更多的内存。进一步的方案是,对目标应用程序执行内存回收操作包括:获取目标应用程序正在运行的目标进程,并获取目标进程对应的目标物理页;读取目标物理页的活跃度的值,目标物理页的活跃度用于标记目标物理页的活动程度,目标物理页的活跃度的值与目标物理页的活动程度正相关;若目标物理页的活跃度的值本文档来自技高网
...

【技术保护点】
1.一种内存回收方法,应用于终端设备,其特征在于,该方法包括:获取对目标应用程序执行软重启的指令,所述目标应用程序执行软重启操作;判断所述目标应用程序是否执行完毕软重启操作,如是,所述目标应用程序执行内存回收操作。

【技术特征摘要】
1.一种内存回收方法,应用于终端设备,其特征在于,该方法包括:获取对目标应用程序执行软重启的指令,所述目标应用程序执行软重启操作;判断所述目标应用程序是否执行完毕软重启操作,如是,所述目标应用程序执行内存回收操作。2.根据权利要求1所述的内存回收方法,其特征在于,确定所述目标应用程序执行完毕软重启操作后,所述目标应用程序执行内存回收操作包括:确定所述目标应用程序执行完毕软重启操作后开启计时器,并判断是否到达第一计时时间,如是,所述目标应用程序执行第一轮内存回收操作。3.根据权利要求2所述的内存回收方法,其特征在于,确定到达所述第一计时时间后,所述目标应用程序执行第一轮内存回收操作前,还执行:确定在所述第一计时时间内,未收到对所述目标应用程序的用户操作指令或者所述目标应用程序未置于前台运行。4.根据权利要求2或3所述的内存回收方法,其特征在于,所述目标应用程序执行第一轮内存回收操作后,还执行:开启所述计时器,并判断是否到达第二计时时间,如是,所述目标应用程序执行第二轮内存回收操作;所述第二计时时间的时间长度大于所述第一计时时间的时间长度。5.根据权利要求4所述的内存回收方法,其特征在于,所述目标应用程序执行第一轮内存回收操作包括:所述目标应用程序执行第一预设次数的内存回收操作;所述目标应用程序执行第二轮内存回收操作包括:所述目标应用程序执行不少于第二预设次数的内存回收操作;所述第一预设次数小于所述第二预设次数。6.根据权利要求1至3任一项所述的内存回收方法,其特征在于,对所...

【专利技术属性】
技术研发人员:王文
申请(专利权)人:珠海市魅族科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1