Android 10.0 app应用保活设置oom_adj的值为0

本文介绍了Android应用保活的原理,特别是通过调整oom_adj值为0来实现后台进程保活。讨论了Android系统如何通过ActivityManagerService和OomAdjuster管理进程,以及不同oom_adj值对应的不同进程优先级。重点分析了核心代码,如OomAdjuster.java和ActivityManagerService.java中更新oom_adj值的方法。
摘要由CSDN通过智能技术生成

1.概述

  在定制化开发中,对于应用保活可以做到长时间在后台运行进程不会被杀掉,所以对于一些长期在后台运行的app就需要做到这一点想办法来让这些app运行在后台,这就需要了解杀进程的机制以后来实现这个功能

1.2保活原理

知己知彼,百战不殆。既然我们想要保活,那么首先得知道我们是怎么死的。一般来说,系统杀进程有两种方法,这两个方法都通过 ActivityManagerService 提供:
1.killBackgroundProcesses
2.forceStopPackage

LMK基本原理
所有应用进程都是从zygote孵化出来的,记录在AMS中mLruProcesses列表中,由AMS进行统一管理,AMS中会根据进程的状态更新进程对应的oom_adj值,这个值会通过文件传递到kernel中去,kernel有个低内存回收机制,在内存达到一定阀值时会触发清理oom_adj值高的进程腾出更多的内存空间,这就是Lowmemorykiller工作原理。
而对于在Android的lowmemroykiller机制中,会对于所有进程进行分类,对于每一类别的进程会有其oom_adj值的取值范围,oom_adj值越高则代表进程越不重要,在系统执行低杀操作时,会从oom_adj值越高的开始杀

1.3 oom_adj 值对应的进程优先级

UNKNOWN_

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值