3. 放置在system/app 下面
注: 一个app 被设置为 persistent 后,将很难被low memory kill 杀掉(oom_adj=-12),请在设置之前仔细确认是否必须,否则将浪费掉memory。
2.[FAQ10559]如何更新LMK Low Memory Killer 的
阈值
[Description]
如何更新LMK Low Memory Killer 的阈值
[Keyword]
LMK Low Memory Killer 阈值 Threshold adj
[Solution]
Low Memory Killer 的阈值分成两个数组,一个是adj 数组,描述process 所对应的oom_adj,另外一个是minfree 数组,描述process 所对应的memory 的阈值。
上层可以直接通过读写:
/sys/module/lowmemorykiller/parameters/adj
/sys/module/lowmemorykiller/parameters/minfree
来进行调整.minfree 以KB 为单位
在JB 以后版本,AMS 起到后,将根据屏幕分辨率以及内存大小调整默认的LMK 的阈值,对应的具体的代码在:
frameworks/base/services/java/com/android/server/am/ProcessList.java#updat
eOomLevel
可以修正这个updateOomLevel 来调整LMK 的这两个参数
注意, 从JB9.MP 后,LMK 自动将oom_adj 转换成 oom_score_adj ,即写入时依旧是
按照oom_adj 写入,而读取出来时,则是oom_score_adj.
if oom_adj = 15 then oom_score_adj = 1000;
else oom_score_adj = oom_adj * 1000/17;
简单的oom_adj 与oom_score_adj 的转换表格:
oom_adj oom_score_adj
-16 -941
-12 -705
0 0
1 58
2 117
4 235
6 352
9 529
15 1000
问题3:清除掉已经被kill的应用的资源