linux底层内核有自己的内存监控机制,即OOMKiller.一旦发现系统可用内存达到临界值就会跳出来“收拾残局”。
策略:
--进程消耗的内存
--进程占用的CPU时间
--oom_adj (OOM权重,存储在/proc/<PID>/oom_adj中)
系统会根据上面三个因素打分 oom_score(存储在/proc/<PID>/oom_score中)分数越低的进程,被杀死的概率越小。
改变进程adj值的办法
1.写文件
修改对应路径 如init.rc中有一句 write /proc/1/oom_adj-16
2.application标签添加android:persistent=true 属性
将应用设置为常驻内存