CN106293924B - 安卓系统的内存管理方法及装置 - Google Patents

安卓系统的内存管理方法及装置 Download PDF

Info

Publication number
CN106293924B
CN106293924B CN201510263850.5A CN201510263850A CN106293924B CN 106293924 B CN106293924 B CN 106293924B CN 201510263850 A CN201510263850 A CN 201510263850A CN 106293924 B CN106293924 B CN 106293924B
Authority
CN
China
Prior art keywords
application
memory
starting
priority
restarted
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.)
Active
Application number
CN201510263850.5A
Other languages
English (en)
Other versions
CN106293924A (zh
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.)
TCL Corp
Original Assignee
TCL Corp
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 TCL Corp filed Critical TCL Corp
Priority to CN201510263850.5A priority Critical patent/CN106293924B/zh
Publication of CN106293924A publication Critical patent/CN106293924A/zh
Application granted granted Critical
Publication of CN106293924B publication Critical patent/CN106293924B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Abstract

本发明适用于软件领域,提供了一种安卓系统的内存管理方法及装置。所述方法包括:在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小;判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求;若不能满足,则根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,所述启动信息包括应用启动次数以及每一次启动对应应用的时间;选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求;当判断为是时,清理所选择的应用。本发明实施例能够快速释放应用占用的内存。

Description

安卓系统的内存管理方法及装置
技术领域
本发明实施例属于软件领域,尤其涉及一种安卓系统的内存管理方法及装置。
背景技术
目前,基于安卓系统的终端设备通常在后台保存开启的应用,以便在下次快速启动该应用。但是,由于后台保存的应用需占用一定的内存,因此,若后台保存的应用过多,将拖慢终端设备的运行速度。
为了提升终端设备的运行速度,安卓系统采用底层Linux系统本身自带的内存清理工具---内存溢出清理(Out of Memory Killer,OOM Killer)工具对后台保存的应用进行清理,该OOM Killer首先对应用进行优先级评定,再清除优先级最低(评分越高优先级越低)的应用。但由于该OOM Killer只有在为新启动的应用分配内存失败时才工作,因此,难以及时清理内存,从而难以及时启动新的应用。
与OOM Killer相比,低内存管理(Low Memory Killer,LM Killer)采用了相对主动的周期检查方法,该LM Killer的工作原理如下:在当前空闲内存的大小小于某个阈值(意味着内存不足)时,以该阈值对应的优先级为基准,遍历各个应用,计算每个应用占用内存的大小,找出优先级大于基准优先级的应用,并将优先级最大的应用杀死。但由于该方法每次仅杀死一个应用,因此,导致释放内存的速度过慢,从而无法满足系统连续、大内存的分配需求。
综上,现有的内存管理方法难以及时、快速地清理内存。
发明内容
本发明实施例提供了一种安卓系统的内存管理方法及装置,旨在解决现有的内存管理方法难以及时、快速地清理内存的问题。
本发明实施例是这样实现的,一种安卓系统的内存管理方法,所述方法包括:
S0、在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小;
S1、判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求;
S2、在当前系统剩余内存不能满足启动所述待启动应用需占用的内存大小要求时,根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,所述启动信息包括应用启动次数以及每一次启动对应应用的时间;
S3、选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求;
S4、当判断为是时,清理所选择的应用。
本发明实施例的另一目的在于提供一种安卓系统的内存管理装置,所述装置包括:
S0、在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小;
S1、判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求;
S2、在当前系统剩余内存不能满足启动所述待启动应用需占用的内存大小要求时,根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,所述启动信息包括应用启动次数以及每一次启动对应应用的时间;
S3、选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求;
S4、当判断为是时,清理所选择的应用。
在本发明实施例中,由于在应用启动时,主动判断当前系统剩余内存是否满足启动该应用需占用的内存大小的要求,因此,能够及时判断出是否需要清理内存,提高了释放内存的效率。并且,由于在清理应用占用的内存时,是多个应用占用的内存同时清理,因此,能够快速释放应用占用的内存,从而能够满足系统连续、大内存的分配需求。
附图说明
图1是本发明第一实施例提供的一种安卓系统的内存管理方法的流程图;
图2是本发明第二实施例提供的一种安卓系统的内存管理装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小,判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求,若不能满足,则根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,再选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求,在所选择的应用所占用的内存与当前系统剩余内存之和满足启动所述待启动应用需占用的内存大小的要求时,清理所选择的应用。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种安卓系统的内存管理方法的流程图,详述如下:
步骤S11,在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小。
通常,在应用启动后,系统收集应用所占用的内存,并记录、更新收集的应用所占用的内存对应的信息。这样,当该应用需启动,向系统申请内存时,系统从记录的信息中获取启动该应用需占用的内存大小。
步骤S12,判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求。
该步骤中,当前系统剩余内存为当前系统未被占用的内存。通常,若当前系统剩余内存的大小等于待启动应用占用的内存大小,则当前系统剩余内存也能满足启动该应用的内存大小的要求,但由于在应用运行时,可能出现多于该应用的内存大小的情况,因此,为了减少触发内存管理事件,通常使当前系统剩余内存的大小大于应用占用的内存大小,这时,所述判断当前系统剩余内存是否满足启动所述应用需占用的内存大小的要求,具体包括:
A1、确定预设倍数与所述应用需占用的内存大小的乘积,所述预设倍数大于1。假设应用需占用的内存大小为M,预设倍数与所述应用需占用的内存大小的乘积可表示为:预设倍数*M。其中,该预设倍数可设定为1.1,当然,也可设置为其他值,只需保证该预设倍数大于1即可。
A2、判断当前系统剩余内存是否大于预设倍数与所述应用需占用的内存大小的乘积,若大于,判定当前系统剩余内存满足启动所述应用需占用的内存大小的要求,否则,判定当前系统剩余内存不满足启动所述应用需占用的内存大小的要求。
步骤S13,在当前系统剩余内存不能满足启动所述待启动应用需占用的内存大小要求时,根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,所述启动信息包括应用启动次数以及每一次启动对应应用的时间。
该步骤中,统计的最近启动次数可预先设定,当系统的内存较大时,可设定统计的最近启动次数较大,否则,可设定统计的最近启动次数较小。通常,设定统计的最近启动次数为3次。在设定统计的应用最近启动次数之后,系统记录、更新该应用最近启动次数对应的最近启动时间,如假设设定应用X最近启动次数为3次,则系统将记录、更新该应用X距离当前时间最近的3次的启动时间。
可选地,所述根据预先统计的应用最近启动次数以及所述应用最近启动次数对应的应用最近启动时间,对启动的应用进行优先级赋权,具体包括:
B1、根据预先统计的应用最近启动次数以及每一次启动对应应用的时间计算每一个应用的平均启动时长,基于所述应用的平均启动时长确定近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用。
B2、对确定的近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用分别进行优先级赋权。
上述B1~B2中,通过确定出3种类型的应用,并为确定的3种类型的应用进行相应赋权。由于3种类型近期被重新启动的概率不同,因此,分别对这3种类型的应用的优先级进行不同的赋权,能够有效区分这3种类型的应用,进而为后续的应用内存的清理提供有力依据。
可选地,所述B1,根据预先统计的应用最近启动次数以及每一次启动对应应用的时间计算每一个应用的平均启动时长,基于所述应用的平均启动时长确定近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用,具体包括:
B11、根据下式确定应用的平均启动时长:
其中n表示应用最近预设启动总次数,tn表示n次启动中距离当前时间最近的一次启动时间,tn-1表示距离当前时间第二近的一次启动时间,以此类推,t1表示预设总启动次数n中,离当前时间最长的一次启动时间,所述启动时间为启动时间点,表示应用的平均启动时长,大于0。
B12、判断以下两式是否成立: 其中,tc表示当前时间,Δt表示与tc的差。
B13、在成立时,确定应用为近期最大概率被重新启动的应用。
B14、在不成立但成立时,确定应用为近期较大概率被重新启动的应用。在不成立但成立时,表示预估计的应用启动时间点己过,但该应用还没有被启动,此时应用很可能会稍后启动,因此,将该类应用确定为近期较大概率被重新启动的应用。进一步地,在不成立但成立时,继续判断是否接近于0,即判断Δt是否接近于0,若是,表明该应用过启动时间没有多久,这时,才将该应用确定为近期较大概率被重新启动的应用,进一步提高应用分类的精确性。
B15、在成立但不成立时,确定应用为近期将不重新启动的应用。在成立但不成立时,表示距离应用启动时间还远,因此将该类应用确定为近期将不重新启动的应用。
可选地,所述B2,对确定的近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用分别进行优先级赋权,具体包括:
B21、对近期最大概率被重新启动的应用进行最大优先级赋权。具体地,将确定为近期最大概率被重新启动的应用的优先级赋权为0,即赋权最大优先级。
B22、对近期较大概率被重新启动的应用进行优先级保持赋权。由于该类应用很可能稍后启动,因此,保持该类应用的优先级不变,仍保持安卓系统给定的优先级。
B23、根据下式对近期将不重新启动的应用分别进行优先级赋权:其中pw为应用当前的优先级。该pw为安卓系统为该应用计算的优先级,由于即降低该类应用的优先级。
步骤S14,选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求。
具体地,由低优先级到高优先级,对所述近期将不重新启动的应用进行排序,从所述近期将不重新启动的应用中选择预设个优先级低的应用。在该步骤中,预设个数大于1,比如预设个数为3。由于优先级越高,优先级的值越小,因此,选取预设个数较低优先级的应用相当于选取预设个数较大值优先级对应的应用。当相同优先级有多个时,从中先取内存占用量大的应用。
可选地,判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求,具体包括:
判断所选择的预设个数较低优先级的应用占用的内存与当前系统剩余内存之和是否大于预设倍数与所述应用需占用的内存大小的乘积,若大于,则判定所选择的预设个数较低优先级的应用占用的内存与当前系统剩余内存之和满足启动所述应用需占用的内存大小的要求,否则,判定所选择的预设个数较低优先级的应用占用的内存与当前系统剩余内存之和不满足启动所述应用需占用的内存大小的要求。
步骤S15,当判断为是时,清理所选择的应用。
由于预设个数大于1,因此,在清理所选择的应用时,是一次清理多个应用占用的内存,从而能够快速释放应用占用的内存。
在该步骤中,若选取的预设个数较低优先级的应用占用的内存与当前系统剩余内存之和不能满足启动所述应用需占用的内存大小的要求,则返回步骤S14,继续选取其他应用。
本发明第一实施例中,在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小,判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求,若不能满足,则根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,再选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求,在所选择的应用所占用的内存与当前系统剩余内存之和满足启动所述待启动应用需占用的内存大小的要求时,清理所选择的应用。由于在应用启动时,主动判断当前系统剩余内存是否满足启动该应用需占用的内存大小的要求,因此,能够及时判断出是否需要清理内存,提高了释放内存的效率。并且,由于在清理应用占用的内存时,是多个应用占用的内存同时清理,因此,能够快速释放应用占用的内存,从而能够满足系统连续、大内存的分配需求。
应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二:
图2示出了本发明第二实施例提供的一种安卓系统的内存管理装置的结构图,该一种安卓系统的内存管理装置可应用于终端设备,该终端设备可以包括经无线接入网RAN与一个或多个核心网进行通信的用户设备,该用户设备可以是移动电话(或称为“蜂窝”电话)、具有移动设备的计算机等,例如,用户设备还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。又例如,该移动设备可以包括智能手机、平板电脑、个人数字助理PDA、销售终端POS或车载电脑等。为了便于说明,仅示出了与本发明实施例相关的部分。
该安卓系统的内存管理装置包括:应用占用内存获取单元21、应用占用内存比较单元22、应用优先级赋权单元23、应用选取单元24、选取的应用内存比较单元25、内存清理单元26。其中:
应用占用内存获取单元21,用于在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小。
通常,在应用启动后,系统收集应用所占用的内存,并记录、更新收集的应用所占用的内存对应的信息。
应用占用内存比较单元22,用于判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求。
其中,当前系统剩余内存为当前系统未被占用的内存。
可选地,为了减少触发内存管理事件,所述应用占用内存比较单元22包括:
应用启动所需内存确定模块,用于确定预设倍数与所述应用需占用的内存大小的乘积,所述预设倍数大于1。其中,该预设倍数可设定为1.1,当然,也可设置为其他值,只需保证该预设倍数大于1即可。
剩余内存与应用启动所需内存比较模块,用于判断当前系统剩余内存是否大于预设倍数与所述应用需占用的内存大小的乘积,若大于,判定当前系统剩余内存满足启动所述应用需占用的内存大小的要求,否则,判定当前系统剩余内存不满足启动所述应用需占用的内存大小的要求。
应用优先级赋权单元23,用于在当前系统剩余内存不能满足启动所述待启动应用需占用的内存大小要求时,根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,所述启动信息包括应用启动次数以及每一次启动对应应用的时间。
其中,统计的最近启动次数可预先设定,当系统的内存较大时,可设定统计的最近启动次数较大,否则,可设定统计的最近启动次数较小。通常,设定统计的最近启动次数为3次。
可选地,所述应用优先级赋权单元23包括:
应用分类模块,用于根据预先统计的应用最近启动次数以及每一次启动对应应用的时间计算每一个应用的平均启动时长,基于所述应用的平均启动时长确定近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用。
分类应用的优先权确定模块,用于对确定的近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用分别进行优先级赋权。
由于划分得到的3种类型近期被重新启动的概率不同,因此,分别对这3种类型的应用的优先级进行不同的赋权,能够有效区分这3种类型的应用,进而为后续的应用内存的清理提供有力依据。
可选地,所述应用分类模块包括:
应用的平均启动时长确定模块,用于根据下式确定应用的平均启动时长:
其中n表示应用最近预设启动总次数,tn表示n次启动中距离当前时间最近的一次启动时间,表示应用的平均启动时长。
应用类型划分模块,用于判断以下两式是否成立: 其中,tc表示当前时间,Δt表示与tc的差。在成立时,确定应用为近期最大概率被重新启动的应用。在不成立但成立时,确定应用为近期较大概率被重新启动的应用。在成立但不成立时,确定应用为近期将不重新启动的应用。
进一步地,在不成立但成立时,继续判断是否接近于0,即判断Δt是否接近于0,若是,表明该应用过启动时间没有多久,这时,才将该应用确定为近期较大概率被重新启动的应用,进一步提高应用分类的精确性。
可选地,所述分类应用的优先权确定模块包括:
第一类应用优先权赋权模块,用于对近期最大概率被重新启动的应用进行最大优先级赋权。
第二类应用优先权赋权模块,用于对近期较大概率被重新启动的应用进行优先级保持赋权。
第三类应用优先权赋权模块,用于根据下式对近期将不重新启动的应用分别进行优先级赋权:其中pw为应用当前的优先级。
选取的应用内存比较单元24,用于选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求。
可选地,所述选取的应用内存比较单元24包括:
应用排序模块,用于由低优先级到高优先级,对所述近期将不重新启动的应用进行排序;
应用选择模块,用于从所述近期将不重新启动的应用中选择预设个优先级低的应用。
其中,预设个数大于1。由于优先级越高,优先级的值越小,因此,选取预设个数较低优先级的应用相当于选取预设个数较大值优先级对应的应用。当相同优先级有多个时,从中先取内存占用量大的应用。
可选地,判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求,具体包括:
判断所选择的预设个数较低优先级的应用占用的内存与当前系统剩余内存之和是否大于预设倍数与所述应用需占用的内存大小的乘积,若大于,则判定所选择的预设个数较低优先级的应用占用的内存与当前系统剩余内存之和满足启动所述应用需占用的内存大小的要求,否则,判定所选择的预设个数较低优先级的应用占用的内存与当前系统剩余内存之和不满足启动所述应用需占用的内存大小的要求。
内存清理单元26,用于在所选择的应用所占用的内存与当前系统剩余内存之和满足启动所述待启动应用需占用的内存大小的要求时,清理所选择的应用。
由于预设个数大于1,因此,在清理所选择的应用时,是一次清理多个应用占用的内存,从而能够快速释放应用占用的内存。
在本发明第二实施例中,由于在应用启动时,主动判断当前系统剩余内存是否满足启动该应用需占用的内存大小的要求,因此,能够及时判断出是否需要清理内存,提高了释放内存的效率。并且,由于在清理应用占用的内存时,是多个应用占用的内存同时清理,因此,能够快速释放应用占用的内存,从而能够满足系统连续、大内存的分配需求。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种安卓系统的内存管理方法,其特征在于,所述方法包括以下步骤:
S0、在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小;
S1、判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求;
S2、在当前系统剩余内存不能满足启动所述待启动应用需占用的内存大小要求时,根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,所述启动信息包括应用启动次数以及每一次启动对应应用的时间,包括:
S21、根据预先统计的应用最近启动次数以及每一次启动对应应用的时间计算每一个应用的平均启动时长,基于所述应用的平均启动时长确定近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用,其中,所述统计的最近启动次数为预先设定,当系统的内存较大时,设定统计的最近启动次数较大,否则,设定统计的最近启动次数较小;
S22、对确定的近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用分别进行优先级赋权;
S3、选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求;
S4、当判断为是时,清理所选择的应用。
2.根据权利要求1所述的方法,其特征在于,所述步骤S21具体包括:
根据下式确定应用的平均启动时长:
其中n表示应用最近预设启动总次数,tn表示n次启动中距离当前时间最近的一次启动时间,表示应用的平均启动时长;
判断以下两式是否成立:其中,tc表示当前时间,Δt表示与tc的差;
成立时,确定应用为近期最大概率被重新启动的应用;
不成立但成立时,确定应用为近期较大概率被重新启动的应用;
成立但不成立时,确定应用为近期将不重新启动的应用。
3.根据权利要求2所述的方法,其特征在于,所述步骤S22具体包括:
对近期最大概率被重新启动的应用进行最大优先级赋权;
对近期较大概率被重新启动的应用进行优先级保持赋权;
根据下式对近期将不重新启动的应用分别进行优先级赋权:其中pw为应用当前的优先级。
4.根据权利要求1所述的方法,其特征在于,所述步骤S1具体包括:
S11、确定预设倍数与所述应用需占用的内存大小的乘积,所述预设倍数大于1;
S12、判断当前系统剩余内存是否大于预设倍数与所述应用需占用的内存大小的乘积,若大于,判定当前系统剩余内存满足启动所述应用需占用的内存大小的要求,否则,判定当前系统剩余内存不满足启动所述应用需占用的内存大小的要求。
5.根据权利要求3所述的方法,其特征在于,所述步骤S3中,选择预设个优先级低的应用具体为:
由低优先级到高优先级,对所述近期将不重新启动的应用进行排序,从所述近期将不重新启动的应用中选择预设个优先级低的应用。
6.一种安卓系统的内存管理装置,其特征在于,所述装置包括:
应用占用内存获取单元,用于在为待启动应用申请内存时,获取启动所述待启动应用需占用的内存大小;
应用占用内存比较单元,用于判断当前系统剩余内存是否满足启动所述待启动应用需占用的内存大小的要求;
应用优先级赋权单元,用于在当前系统剩余内存不能满足启动所述待启动应用需占用的内存大小要求时,根据当前已启动的应用的启动信息,对所述当前已启动的应用进行优先级赋权,所述启动信息包括应用启动次数以及每一次启动对应应用的时间;其中,所述应用优先级赋权单元包括:
应用分类模块,用于根据预先统计的应用最近启动次数以及每一次启动对应应用的时间计算每一个应用的平均启动时长,基于所述应用的平均启动时长确定近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用;其中,所述统计的最近启动次数为预先设定,当系统的内存较大时,设定统计的最近启动次数较大,否则,设定统计的最近启动次数较小;
分类应用的优先权确定模块,用于对确定的近期最大概率被重新启动的应用、近期较大概率被重新启动的应用以及近期将不重新启动的应用分别进行优先级赋权;
选取的应用内存比较单元,用于选择预设个优先级低的应用,并判断所选择的应用所占用的内存与当前系统剩余内存之和是否满足启动所述待启动应用需占用的内存大小的要求;
内存清理单元,用于在所选择的应用所占用的内存与当前系统剩余内存之和满足启动所述待启动应用需占用的内存大小的要求时,清理所选择的应用。
7.根据权利要求6所述的装置,其特征在于,所述应用分类模块包括:
应用的平均启动时长确定模块,用于根据下式确定应用的平均启动时长:
其中n表示应用最近预设启动总次数,tn表示n次启动中距离当前时间最近的一次启动时间,表示应用的平均启动时长;
应用类型划分模块,用于判断以下两式是否成立:其中,tc表示当前时间,Δt表示与tc的差;在成立时,确定应用为近期最大概率被重新启动的应用;在不成立但成立时,确定应用为近期较大概率被重新启动的应用;在成立但不成立时,确定应用为近期将不重新启动的应用。
8.根据权利要求7所述的装置,其特征在于,所述分类应用的优先权确定模块包括:
第一类应用优先权赋权模块,用于对近期最大概率被重新启动的应用进行最大优先级赋权;
第二类应用优先权赋权模块,用于对近期较大概率被重新启动的应用进行优先级保持赋权;
第三类应用优先权赋权模块,用于根据下式对近期将不重新启动的应用分别进行优先级赋权:其中pw为应用当前的优先级。
CN201510263850.5A 2015-05-20 2015-05-20 安卓系统的内存管理方法及装置 Active CN106293924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510263850.5A CN106293924B (zh) 2015-05-20 2015-05-20 安卓系统的内存管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510263850.5A CN106293924B (zh) 2015-05-20 2015-05-20 安卓系统的内存管理方法及装置

Publications (2)

Publication Number Publication Date
CN106293924A CN106293924A (zh) 2017-01-04
CN106293924B true CN106293924B (zh) 2019-09-17

Family

ID=57632346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510263850.5A Active CN106293924B (zh) 2015-05-20 2015-05-20 安卓系统的内存管理方法及装置

Country Status (1)

Country Link
CN (1) CN106293924B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775894A (zh) * 2017-01-05 2017-05-31 深圳市金立通信设备有限公司 一种应用程序的运行方法及终端
CN108306913A (zh) * 2017-01-12 2018-07-20 中兴通讯股份有限公司 一种数据处理方法、装置、计算机可读存储介质及终端
CN108701037A (zh) * 2017-02-23 2018-10-23 华为技术有限公司 一种清理终端的应用任务列表的方法、装置及终端
CN106980525A (zh) * 2017-04-25 2017-07-25 北京奇虎科技有限公司 应用启动方法、装置及移动终端
CN107145215B (zh) * 2017-05-06 2019-09-27 维沃移动通信有限公司 一种后台应用程序清理方法及移动终端
CN107273023A (zh) * 2017-05-19 2017-10-20 努比亚技术有限公司 一种终端及终端资源分配的方法
CN107479967A (zh) * 2017-07-04 2017-12-15 深圳天珑无线科技有限公司 一种自动清除内存的方法和智能终端
WO2019036913A1 (zh) * 2017-08-22 2019-02-28 深圳传音通讯有限公司 电子终端的存储空间清理方法与电子终端
CN107656811A (zh) * 2017-09-12 2018-02-02 惠州Tcl移动通信有限公司 移动终端及存储器分配控制方法、及存储介质
CN107729145A (zh) * 2017-10-11 2018-02-23 广东欧珀移动通信有限公司 应用程序运行控制方法及装置
CN110413415B (zh) * 2019-07-30 2023-10-17 努比亚技术有限公司 一种内存管理控制方法、设备及计算机可读存储介质
CN110457136A (zh) * 2019-08-09 2019-11-15 四川虹美智能科技有限公司 一种安卓系统自动清理文件的方法、装置及终端设备
CN110543365B (zh) * 2019-08-20 2024-01-09 Oppo广东移动通信有限公司 内存优化方法及装置、计算机可读介质、电子设备
CN113495789B (zh) * 2020-04-08 2024-02-13 大唐移动通信设备有限公司 内存分配方法及装置
CN111756922A (zh) * 2020-06-15 2020-10-09 北京智明星通科技股份有限公司 一种手机游戏的运行方法、系统及游戏终端
CN114647509A (zh) * 2022-03-09 2022-06-21 深圳Tcl新技术有限公司 内存清理方法、装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984580A (zh) * 2012-11-12 2013-03-20 北京奇虎科技有限公司 内存清理方法及系统
CN103544063A (zh) * 2013-09-30 2014-01-29 三星电子(中国)研发中心 应用于安卓平台的进程清除方法和装置
CN103778007A (zh) * 2014-02-14 2014-05-07 贝壳网际(北京)安全技术有限公司 一种应用管理方法及装置
CN104077191A (zh) * 2014-07-18 2014-10-01 广州金山网络科技有限公司 一种用于管理内存资源的方法及装置
CN104298613A (zh) * 2014-09-29 2015-01-21 广州金山网络科技有限公司 一种系统内存的清理方法及终端设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9250958B2 (en) * 2012-11-19 2016-02-02 Qualcomm Innovation Center, Inc. System, method, and apparatus for improving application-launch latencies

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984580A (zh) * 2012-11-12 2013-03-20 北京奇虎科技有限公司 内存清理方法及系统
CN103544063A (zh) * 2013-09-30 2014-01-29 三星电子(中国)研发中心 应用于安卓平台的进程清除方法和装置
CN103778007A (zh) * 2014-02-14 2014-05-07 贝壳网际(北京)安全技术有限公司 一种应用管理方法及装置
CN104077191A (zh) * 2014-07-18 2014-10-01 广州金山网络科技有限公司 一种用于管理内存资源的方法及装置
CN104298613A (zh) * 2014-09-29 2015-01-21 广州金山网络科技有限公司 一种系统内存的清理方法及终端设备

Also Published As

Publication number Publication date
CN106293924A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106293924B (zh) 安卓系统的内存管理方法及装置
CN109343965A (zh) 资源调整方法、装置、云平台和服务器
CN104102543B (zh) 一种云计算环境中负载调整的方法和装置
CN108667654A (zh) 服务器集群自动扩容方法及相关设备
CN107682417B (zh) 一种数据节点的任务分配方法和装置
CN106330770A (zh) 一种共享缓存分配方法及装置
CN108205475A (zh) 内存管理方法、终端设备、计算机装置以及可读存储介质
CN108306874B (zh) 服务接口访问限流方法及装置
CN104346286B (zh) 数据储存装置以及快闪存储器控制方法
CN109039953B (zh) 带宽调度方法及装置
CN106445690A (zh) 虚拟机资源的动态调配方法及装置
CN112486642B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN110502321A (zh) 一种资源调度方法及系统
CN103778222A (zh) 一种分布式文件系统存储文件的方法及系统
CN107704317B (zh) 智能设备及其应用管理方法和具有存储功能的装置
CN106201665A (zh) 一种动态队列布置方法及设备
CN108287760A (zh) 终端设备控制方法及装置、终端设备及计算机可读存储介质
CN107704364B (zh) 后台应用程序管控方法、装置、存储介质及电子设备
CN108287761A (zh) 内存回收方法及装置、终端设备及计算机可读存储介质
CN110347477B (zh) 一种云环境下服务自适应部署方法和装置
CN115643178A (zh) 一种网络靶场配置方法、装置、设备及机器可读存储介质
CN109597734A (zh) 报表运行时长的监控方法及装置
CN107145495B (zh) 动态调整参数规则的方法及装置
CN105591980B (zh) 一种带宽消耗管理方法及装置
CN111290850B (zh) 一种数据存储方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant