内存回收方法、电子设备以及存储介质与流程

文档序号:37423890发布日期:2024-03-25 19:11阅读:7来源:国知局
内存回收方法、电子设备以及存储介质与流程

本技术实施例涉及计算机,尤其涉及一种内存回收方法、电子设备以及存储介质。


背景技术:

1、随着电子设备的发展,电子设备上安装的应用程序(application,app)越来越多。当应用程序在后台运行时也会占用电子设备的内存,导致电子设备的内存不足。当电子设备的内存不足时,会出现应用程序运行卡顿、应用程序响应慢等问题。

2、目前在电子设备内存不足时,电子设备会进行内存回收,以增加电子设备的可用内存,如电子设备会杀死后台运行的应用程序的进程,释放这些进程占用的内存。但是杀死进程的方式,会导致应用程序冷启动慢、耗时长。


技术实现思路

1、本技术实施例提供一种内存回收方法、电子设备以及存储介质,可以回收与用户界面ui相关的内容占用的内存,而非直接杀死进程,可以避免应用程序冷启动慢、耗时长的问题。

2、第一方面,本技术实施例提供一种内存回收方法,该内存回收方法的执行主体可以为电子设备或电子设备中的芯片、处理器等,下述以电子设备为例进行说明。该方法中,电子设备可以检测所述电子设备的剩余可用内存,在剩余可用内存不足的情况下,根据所述剩余可用内存,采用与所述剩余可用内存对应的内存回收方式,进行内存回收,所述内存回收方式用于回收与所述电子设备的用户界面ui相关的内容占用的内存。

3、本技术实施例中并未采用直接杀死进程的方式回收内存,而是采用与所述剩余可用内存对应的内存回收方式,进行内存回收,可以避免应用程序冷启动慢、耗时长的问题。另外,本技术实施例中回收的是与所述电子设备的用户界面ui相关的内容占用的内存,在应用切换至前台运行时,便于电子设备重新加载与ui相关的内容,不影响ui的显示。

4、下面对本技术实施例中剩余可用内存,以及所述剩余可用内存对应的内存回收方式进行说明:

5、其一,当所述电子设备的剩余可用内存小于第一阈值且大于第二阈值时,电子设备可以删除所述电子设备的内存中缓存的第一应用的目标图片,所述第一应用为运行在后台的应用,所述目标图片为所述第一应用的页面上的图片。在一种示例中,目标图片为第一应用中内存占用超过占用阈值的图片。

6、另外,电子设备可以释放所述第一应用的页面对应的窗口占用的内存。

7、其中,目标图片为所述第一应用的页面上的图片,目标图片为与第一应用的ui相关的内容。第一应用的页面对应的窗口用于绘制页面,也是与第一应用的ui相关的内容。本技术实施例中,在所述电子设备的剩余可用内存小于第一阈值且大于第二阈值时,电子设备释放目标图片占用的内存,以及第一应用的页面对应的窗口占用的内存,目的在于,目标图片占用的内存,以及第一应用的页面对应的窗口占用的内存均较大,进行内存释放后,内存回升明显,即可以快速增加电子设备的剩余可用内存。

8、在该实现方式中,响应于所述第一应用切换至前台运行,电子设备可以从所述电子设备的磁盘中读取所述目标图片,以缓存至内存中,以及电子设备为所述第一应用的页面对应的窗口分配内存。换句话说,当第一应用切换至前台运行时,电子设备可以重新加载目标图片以及重新为第一应用的页面对应的窗口分配内存,这样电子设备可以快速显示第一应用的页面,提高用户体验。

9、其二,当所述电子设备的剩余可用内存小于或等于第二阈值且大于第三阈值时,电子设备可以获取运行在后台的应用的内存回收优先级,将内存回收优先级最高的应用作为第二应用。电子设备可以先保存第二应用的页面栈,以及所述第二应用的页面上ui控件的状态。电子设备可以删除所述电子设备的内存中的所述第二应用的活动、页面以及所述ui控件,以释放所述第二应用的活动、页面以及所述ui控件占用的内存。应理解,第二应用的页面包含于活动中,其中,活动可以为ability或activity或其他名称,本技术实施例对此不作限制。

10、本技术实施例中,电子设备之所以保存第二应用的页面栈,以及所述第二应用的页面上ui控件的状态,是因为:便于第二应用切换至前台运行时,电子设备可以根据第二应用的页面栈,以及所述第二应用的页面上ui控件的状态,继续显示第二应用的页面,即电子设备可以基于第二应用的页面的进度,继续显示页面。

11、其中,若电子设备删除所述电子设备的内存中的所述第二应用的页面以及所述ui控件之后,所述电子设备的剩余可用内存仍小于或等于所述第二阈值且大于所述第三阈值,则电子设备可以按照运行在后台的应用的内存回收优先级,继续确定新的第二应用。电子设备可以先保存新的第二应用的页面栈,以及新的所述第二应用的页面上ui控件的状态。电子设备可以删除所述电子设备的内存中的所述新的第二应用的活动、页面以及所述ui控件,以继续释放内存。

12、在电子设备删除所述电子设备的内存中的所述新的第二应用的活动、页面以及所述ui控件之后,若电子设备的剩余可用内存仍小于或等于所述第二阈值且大于所述第三阈值,则电子设备还可以继续确定新的第二应用,电子设备可以先保存新的第二应用的页面栈,以及新的所述第二应用的页面上ui控件的状态,以及删除所述电子设备的内存中的所述新的第二应用的活动、页面以及所述ui控件,以继续释放内存。如此迭代,直至电子设备的剩余可用内存大于第二阈值。

13、其中,在电子设备删除电子设备的内存中的所述第二应用的活动、页面以及所述ui控件之后,若所述第二应用切换至前台运行,电子设备可以根据所述第二应用的页面栈,以及所述第二应用的页面上ui控件的状态,确定所述第二应用的待显示的页面,以及所述待显示的页面的进度,且根据所述待显示的页面的进度,显示页面。

14、在该实现方式中,电子设备在删除内存中的所述第二应用的活动、页面以及所述ui控件之前,可以保存页面栈以及页面上的ui控件的状态,因此电子设备可以根据第二应用的页面栈,确定当前显示的页面,以及根据所述第二应用的页面上ui控件的状态,确定页面的进度。示例性的,页面为播放视频的页面,页面的进度可以理解为视频播放的进度。如此,在该实现方式中,第二应用在后台释放内存后,切换至前台时,电子设备可以继续显示第二应用的页面,用户可以看到第二应用连续的页面,无需执行其他操作,调整页面的进度,可以提高用户体验。

15、其三,当所述电子设备的剩余可用内存小于或等于第三阈值时,杀死目标进程。示例性的,电子设备可以根据进程的优先级,和/或运行在前台或后台,和/或进程占用的内存,确定目标进程。

16、本技术实施例中,针对电子设备的不同的剩余可用内存,可以采用不同的内存回收方式对内存进行回收,不仅可以有效提高剩余可用内存,且回收粒度更细。另,电子设备回收的是与ui相关的内容占用的内存,在应用切换至前台运行时,电子设备可以重新加载与ui相关的内容,不影响页面的显示。另,电子设备在删除活动、页面以及所述ui控件之前,可以先保存页面栈以及ui控件的状态,以便于用切换至前台运行时,电子设备可以根据页面的进度,继续显示页面。

17、下面结合电子设备中的内部模块,对本技术实施例提供的内存回收方法进行说明:

18、在一种可能的实现方式中,所述电子设备包括内存管理模块、页面管理服务ams,以及窗口管理服务wms。

19、其中,当所述电子设备的剩余可用内存小于第一阈值且大于第二阈值时,所述内存管理模块向所述ams发送第一内存回收通知。所述ams响应于所述第一内存回收通知,向所述第一应用发送第一指示,以及向所述wms发送第二指示。所述第一应用响应于所述第一指示,删除所述电子设备的内存中缓存的所述第一应用的目标图片。所述wms响应于所述第二指示,释放所述第一应用的页面对应的窗口占用的内存,所述第二指示中包括所述第一应用的页面对应的窗口的标识。

20、其中,当所述电子设备的剩余可用内存小于或等于第二阈值且大于第三阈值时,所述内存管理模块向所述ams发送第二内存回收通知。所述ams响应于所述第二内存回收通知,获取后台进程的内存回收优先级。所述ams将内存回收优先级最高的后台进程所属的应用作为所述第二应用,且向所述第二应用发送第三指示。

21、所述第二应用响应于所述第三指示,保存所述第二应用的页面栈,以及所述第二应用的页面上ui控件的状态;以及,删除所述电子设备的内存中所述第二应用的页面以及所述ui控件。

22、第二应用所述删除所述电子设备的内存中所述第二应用的页面以及所述ui控件之后,还可以向所述ams发送回收完成的消息。所述ams响应于所述回收完成的消息,检测所述电子设备的剩余可用内存是否大于第二阈值;若否,所述ams按照运行在后台的应用的内存回收优先级,继续选择新的第二应用。

23、在该实现方式中,电子设备中内部模块可以交互实现内存回收方法,且针对电子设备的不同的剩余可用内存,可以采用不同的内存回收方式对内存进行回收,不仅可以有效提高剩余可用内存,且回收粒度更细。

24、第二方面,本技术实施例提供一种电子设备,该电子设备可以包括:处理器、存储器。存储器用于存储计算机可执行程序代码,程序代码包括指令;当处理器执行指令时,指令使所述电子设备执行如第一方面中的方法。

25、第三方面,本技术实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中的方法。

26、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面中的方法。

27、上述第二方面至第四方面的各可能的实现方式,其有益效果可以参见上述第一方面所带来的有益效果,在此不加赘述。

28、本技术实施例提供了一种内存回收方法、电子设备以及存储介质,电子设备可以检测电子设备的剩余可用内存;且根据剩余可用内存,采用与剩余可用内存对应的内存回收方式,进行内存回收,内存回收方式用于回收与电子设备的用户界面ui相关的内容占用的内存。本技术实施例中并非直接以杀死进程的方式回收内存,不仅可以避免应用程序冷启动慢、耗时长的问题,还可以根据剩余可用内存,采用与剩余可用内存对应的方式,回收与电子设备的用户界面ui相关的内容占用的内存,能够释放内存,增大剩余可用内存。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1