This application provides a process clearing method and device for Android platform. The memory allocation statistics before a fixed period of time, and on the basis of the statistics of the amount of memory allocated to computing the amount of memory the future of a set period of time may be required, according to the calculation of the amount of memory to choose some processes in the system to be cleared, the amount of memory in exchange for more free memory to satisfy the calculation, can in a short period of recovery of multiple processes for enough memory, meet the system needs continuous large memory allocation.
【技术实现步骤摘要】
应用于安卓平台的进程清除方法和装置
本申请涉及存储技术,特别涉及应用于安卓(Android)平台的进程清除方法和装置。
技术介绍
Android平台中,进程的生命周期都是由系统控制的,即使用户关掉了程序,进程依然是存在于内存之中。这样设计的目的是为了下次能快速启动。但是,随着系统运行时间的增长,其会导致内存会越来越少。基于此,Android平台提出了进程清除机制(LowMemoryKiller),其通过定时对内存执行检查,杀死一些进程,释放掉内存,避免内存不足。Android平台的Lowmemorykiller是基于其底层Linux系统的内存溢出清除(OOMKiller:OutOfMemoryKiller)而来。OOMKiller通过一种复杂的评分机制对进程打分,然后将分数最高即优先级最低的进程判定为选中的进程(如若进程优先级相同,则选取其中内存占用量最大的),杀死它并释放其相应内存。OOMKiller只有当系统内存分配失败的时候才会启动检查。LowMemoryKiller是在Linux原有OOMKiller的基础上进行了一定的改进而成的,它采用了相对主动的定时进行检查的方法。它在Linux内核线程监控,当空闲内存页面不足时,该线程则会调用注册的内存回收回调函数,来回收内存页面。内存回收的回调函数使用两个数组作为选择所要杀死进程的依据,这两个数组中分别定义了内存的阈值及各个阈值对应的优先级。例如:staticintlowmem_adj[6]={0,1,6,12,};staticintlowmem_adj_size=4;staticsize_tlowmem_ ...
【技术保护点】
一种应用于安卓平台的进程清除方法,其特征在于,该方法包括:在当前获知内存申请请求时,统计之前一固定时间段的内存分配量;在当前的空闲内存小于设定阈值时,依据统计出的内存分配量计算将来的一设定时间段内可能需要的内存量;根据计算的内存量从当前所有进程中选取至少一个进程添加至待清除进程列表中,以通过清除该待清除进程列表中所有进程来换取空闲内存满足计算的内存量。
【技术特征摘要】
1.一种应用于安卓平台的进程清除方法,其特征在于,该方法包括:在当前获知内存申请请求时,统计之前一固定时间段的内存分配量;在当前的空闲内存小于设定阈值时,依据统计出的内存分配量计算将来的一设定时间段内可能需要的内存量;根据计算的内存量从当前所有进程中选取至少一个进程添加至待清除进程列表中,以通过清除该待清除进程列表中所有进程来换取空闲内存满足计算的内存量;所述统计之前一固定时间段的内存分配量包括:步骤A1,按照循环统计方式先统计距离当前最近的固定时间段内的内存分配量,如果发现该最近的固定时间段内的至少一个时间段没有按照设定频率分配内存,将该最近的固定时间段内没有按照设定频率分配内存的时间段作为当前时间段,将该最近的固定时间段作为当前固定时间段;步骤A2,从当前固定时间段内排除当前时间段,并从当前固定时间段之前的时间选择最近、按照设定频率分配内存、且大小与当前时间段相等的一段时间替代当前时间段包含至当前固定时间段内,判断最近的固定时间段内是否还存在没有按照设定频率分配内存的时间段,如果是,返回步骤A1中将该最近的固定时间段内没有按照设定频率分配内存的时间段作为当前时间段的操作,并执行步骤A2;如果否,将替代的时间段内的内存分配量和之前已统计的时间段内的内存分配量作为当前固定时间段内的内存分配量。2.根据权利要求1所述的方法,其特征在于,所述依据统计出的内存分配量计算将来的一设定时间段内可能需要的内存量包括:按照线性预测方式或者非线性预测方式依据统计出的内存分配量预测将来的一设定时间段内可能需要的内存量。3.根据权利要求1所述的方法,其特征在于,所述根据计算的内存量从当前所有进程中选取至少一个进程添加至待清除进程列表中包括:B1,根据计算的内存量遍历当前所有进程以选取优先级最低的进程;B2,识别选取的优先级最低的进程数量是否大于1,如果是,则从该选取的优先级最低的进程中选取占用内存量最大的进程作为待选进程,如果否,直接将选取的优先级最低的进程作为待选进程;B3,判断待选进程的数量是否达到设定的进程上限阈值,如果是,将待选进程添加至待清除进程列表中,结束当前流程,如果否,执行步骤B4;B4,判断待选进程所占用的内存量是否满足所述计算的内存量,如果是,将待选进程添加至待清除进程列表中,结束当前流程,如果否,遍历当前所有进程中除待选进程之外的其他进程以选取优先级最低的进程,并返回步骤B2。4.根据权利要求1或3所述的方法,其特征在于,所述以通过清除该待清除进程列表中所有进程来换取空闲内存满足计算的内存量包括:一次性杀死待清除进程列表中所有进程,以使得被杀死的进程所占用的内存量释放满足所述计算的内存量。5.根据权利要求4所述的方法,其特征在于,该方法进一步包括:在...
【专利技术属性】
技术研发人员:潘影波,刘桦,金学烈,李文洸,
申请(专利权)人:三星电子中国研发中心,三星电子株式会社,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。