android低内存管理的宗旨是:对于使用物理内存最多,并且重要性最小的进程进行kill操作,以达到内存优化的目的。
具体实现过程是:
1 首先在/sys/module/lowmemorykiller/parameters/adj指定lowmen_adj数组,lowmen_adj定义了各个阶段的adj临界值,该值越大,说明重要性越小;一样在/sys/module/lowmemorykiller/parameters/minfree里指定lowmen_minfree数组,该数组定义了空闲内存的大小临界值,该值越小,则说明空闲内存越少,占用的物理内存越多,因而对应该进程月可能被kill掉。
2 得到最小的oom_adj值,如果oom_adj等于初始化的值,等于没有变,则说明没有需要kill的进程,否则对于每个进程进行判断,如果该进程的oom_adj小于临界值,则说明其要重要些,则不杀该进程;如果oom_adj恰好等于临界值,则判断该进程的任务数,如果大于上次选中的进程的任务数,则该进程更应该被kill掉,依次比较下去,最后得到最不重要的进程,并给该进程发送kill signal,杀掉该进程。
android 低内存管理机制
最新推荐文章于 2021-05-26 07:26:56 发布