公开/公告号CN113268284A
专利类型发明专利
公开/公告日2021-08-17
原文格式PDF
申请/专利权人 广州欢网科技有限责任公司;
申请/专利号CN202110608988.X
发明设计人 槐仁刚;
申请日2021-06-01
分类号G06F9/445(20180101);G06F11/30(20060101);
代理机构11471 北京细软智谷知识产权代理有限责任公司;
代理人牛晴
地址 510000 广东省广州市番禺区小谷围街中二横路22号A513-A514
入库时间 2023-06-19 12:14:58
技术领域
本发明属于智能终端技术领域,具体涉及一种安卓APP快速释放内存的实现方法、装置及计算机设备。
背景技术
智能手机是指具有移动操作系统,可通过安装应用软件、游戏等程序来扩充功能,并可以通过移动通讯网络来实现无线网络接入手机类型的总称。安卓系统是一款手机系统,现在流行的主流的手机系统之一。
相关技术中,随着Android智能终端硬件设备内存越来越大,APP占用的空间也快速增加,APP使用过程中因为每个打开的Activity不会主动销毁,占用的内存越来越多。因此,当系统APP打开过多时,会造成可用内存降低,对于当前正在使用的APP而言,可能还需要继续申请系统内存,但是当前的剩余系统内存已经不足以被当前APP所申请了,造成系统运行缓慢、卡顿现象。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种安卓APP快速释放内存的实现方法、装置及计算机设备,以解决现有技术中系统内存不足时造成系统运行缓慢、卡顿现象的问题。
为实现以上目的,本发明采用如下技术方案:一种安卓APP快速释放内存的实现方法,包括:
在Application的OnCreate方法中注册Activity生命周期的回调接口;
当APP每打开一个页面时,将Activity实例保存至所述回调接口中的链表;实时监测系统内存,当所述内存低于预设阈值时,依照预设规则销毁所述链表中的所有Activity实例以释放系统内存。
进一步的,如果所述回调接口包括多个,则逐一保存Activity实例,当一个回调接口内链表饱和时将Activity实例保存至下一个回调接口的链表,直至所述内存低于预设阈值。
进一步的,所述将Activity实例保存至所述回调接口中的链表,包括:
在保存待保存的Activity实例时,判断所述链表中是否存在具有相同名称的Activity实例,如果存在,则销毁所述链表中的具有相同名称的Activity实例并继续保存待保存的Activity实例;如果不存在,则直接保存。
进一步的,所述注册Activity生命周期后,还包括:
实时监测所述Activity生命周期是否发生异常,并在所述Activity生命周期发生异常时进行强制恢复操作以使得终端显示用户界面。
进一步的,实时监测所述Activity生命周期是否发生异常,包括:
实时监测进程的状态,判断状态是否终结;
如果所述状态总结,则Activity生命周期发生异常。
进一步的,所述预设规则为:
Activity实例的保存的先后顺序。
本申请实施例提供一种安卓APP快速释放内存的实现装置,包括:
注册模块,用于在Application的OnCreate方法中注册Activity的生命周期回调接口;
保存模块,用于当APP每打开一个页面时,将Activity实例保存至所述回调接口中的链表;
比较模块,用于实时监测系统内存,当所述内存低于预设阈值时,依照预设规则销毁所述链表中的所有Activity实例以释放系统内存。
本申请实施例提供一种计算机设备,包括处理器,以及与处理器连接的存储器;
存储器用于存储计算机程序,计算机程序用于执行上述任一实施例提供的安卓APP快速释放内存的实现方法;
处理器用于调用并执行存储器中的计算机程序。
本发明采用以上技术方案,能够达到的有益效果包括:
本发明提供一种安卓APP快速释放内存的实现方法、装置及计算机设备,所述方法包括在Application的OnCreate方法中注册Activity的生命周期回调接口;当APP每打开一个页面时,将Activity实例保存至所述回调接口中的链表;实时监测系统内存,当所述内存低于预设阈值时,依照预设规则销毁Activity实例以释放系统内存。本发明提供的技术方案实现了快速释放APP内存,以使得APP占用内存比较小,不会引起系统内存异常的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明安卓APP快速释放内存的实现方法的步骤示意图;
图2为本发明安卓APP快速释放内存的实现方法的流程示意图;
图3为本发明安卓APP快速释放内存的实现装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
下面结合附图介绍本申请实施例中提供的一个具体的安卓APP快速释放内存的实现方法、装置及计算机设备。
如图1所示,本申请实施例中提供的安卓APP快速释放内存的实现方法,包括:
S101,在Application的OnCreate方法中注册Activity生命周期的回调接口;
S102,当APP每打开一个页面时,将Activity实例保存至所述回调接口中的链表;
S103,实时监测系统内存,当所述内存低于预设阈值时,依照预设规则销毁所述链表中的所有Activity实例以释放系统内存。
安卓APP快速释放内存的实现方法的工作原理为:参见图2,本申请提供的技术方案是在安卓系统的APP中的Application类的OnCreate方法中通过registerActivityLifecycleCallbacks这个方法,将Activity生命周期的回调接口ActivityLifecycleCallbacks进行注册,并注册onLowMemory方法,实时监听安卓系统的内存。APP每打开一个页面,在ActivityLifecycleCallbacks回调对象的onCreate方法中将Activity的实例保存到链表中,当APP打开的页面过多时,造成系统内存过低,会回调onLowMemory这个方法,在这里将保存到链表中的所有Activity实例全部主动销毁,达到快速释放内存的效果。
一些实施例中,如果所述回调接口包括多个,则逐一保存Activity实例,当一个回调接口内链表饱和时将Activity实例保存至下一个回调接口的链表,直至所述内存低于预设阈值。
优选的,所述将Activity实例保存至所述回调接口中的链表,包括:
在保存待保存的Activity实例时,判断所述链表中是否存在具有相同名称的Activity实例,如果存在,则销毁所述链表中的具有相同名称的Activity实例并继续保存待保存的Activity实例;如果不存在,则直接保存。
具体的,回调接口可以包括多个,可以预先建立不同的Activity实例与回调接口的对应关系,从而进行相应的保存;还可以对多个回调接口逐一保存,一个回调接口中的链表满后,将Activity实例保存至下一个回调接口中的链表,如果链表中存在具有相同名称的Activity实例,则销毁所述链表中的具有相同名称的Activity实例,然后保存将要保存的Activity实例,否则直接保存,直至安卓系统的内存低于预设阈值,销毁所有保存的Activity实例,以实现快速释放内存。
一些实施例中,所述注册Activity生命周期后,还包括:
实时监测所述Activity生命周期是否发生异常,并在所述Activity生命周期发生异常时进行强制恢复操作以使得终端显示用户界面。
优选的,实时监测所述Activity生命周期是否发生异常,包括:
实时监测进程的状态,判断状态是否终结;
如果所述状态总结,则Activity生命周期发生异常。
具体的,本申请能够实时监测Activity生命周期是否发生异常,并在发生异常时,强制恢复操作以使得终端显示用户界面,保证系统处于恢复状态,使得Activity生命周期处于正常状态,避免了系统死机、卡顿问题。
优选的,所述预设规则为:
Activity实例的保存的先后顺序。
如图3所示,本申请实施例提供一种安卓APP快速释放内存的实现装置,包括:
注册模块301,用于在Application的OnCreate方法中注册Activity的生命周期回调接口;
保存模块302,用于当APP每打开一个页面时,将Activity实例保存至所述回调接口中的链表;
比较模块303,用于实时监测系统内存,当所述内存低于预设阈值时,依照预设规则销毁所述链表中的所有Activity实例以释放系统内存。
本申请实施例提供一种安卓APP快速释放内存的实现装置的工作原理为,注册模块301在Application的OnCreate方法中注册Activity的生命周期回调接口;保存模块302当APP每打开一个页面时,将Activity实例保存至所述回调接口中的链表;比较模块303实时监测系统内存,当所述内存低于预设阈值时,依照预设规则销毁所述链表中的所有Activity实例以释放系统内存。
本申请实施例提供一种计算机设备,包括处理器,以及与处理器连接的存储器;
存储器用于存储计算机程序,计算机程序用于执行上述任一实施例提供的安卓APP快速释放内存的实现方法;
处理器用于调用并执行存储器中的计算机程序。
综上所述,本发明提供一种安卓APP快速释放内存的实现方法、装置及计算机设备,所述方法包括在Application的OnCreate方法中注册Activity的生命周期回调接口;当APP每打开一个页面时,将Activity实例保存至所述回调接口中的链表;实时监测系统内存,当所述内存低于预设阈值时,依照预设规则销毁Activity实例以释放系统内存。本发明提供的技术方案实现了快速释放APP内存,以使得APP占用内存比较小,不会引起系统内存异常的问题。
可以理解的是,上述提供的方法实施例与上述的装置实施例对应,相应的具体内容可以相互参考,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令方法的制造品,该指令方法实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
机译: 台式计算机与安卓终端之间蓝牙通信控制照明的方法和装置
机译: 台式计算机与安卓终端之间蓝牙通信控制照明的方法和装置
机译: 基于安卓操作系统的内容回放装置,方法及其计算机程序