通过Android 端开源的Low Memory Killer内核源码可以分析到什么?
根据APP的优先级和使用总内存的多少, 系统会在设备内存吃紧情况下强杀应用。
内存吃紧的判断取决于系统R S S (实际使用物理内存, 包含共享库占用的全部内存)的大小。
关键参数有3 个:
ooom_adj:在Framework层使用,代表进程的优先级, 数值越高,优先级越低,越容易被杀死。
ooom_adjthreshold:在Framewo r k 层使用,代表oom_adj的内存阈值。AndroidKernel会定时检测当前剩余内存是否低于这个阀值, 若低于则杀死oom_adj≥该阈值对应的oom_adj中,数值最大的进程, 直到剩余内存恢复至高于该阀值的状态。
ooom_score_adj:在Kernel 层使用,由oom_adj换算而来, 是杀死进程时实际使用的参数。以上内容摘自《高德技术2020年刊合集》电子书,点击https://developer.aliyun.com/topic/download?id=1135可下载完成版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。