Android 11.0 lowmemorykiller低内存时,禁止某个app被kill掉功能实现

1.前言

在11.0的系统ROM定制化开发中,在对于系统lowmemorykiller低内存的时候,应用保活功能是非常重要的,就是在低内存的情况下 禁止某个app被杀掉,所以就需要从lowmemorykiller机制入手,在杀进程的相关流程中进行分析来实现进程避免被杀掉,接下来 就来实现这个功能

2.lowmemorykiller低内存时,禁止某个app被kill掉功能实现的核心类

/system/memory/lmkd/lmkd.cpp

3.lowmemorykiller低内存时,禁止某个app被kill掉功能实现的核心功能分析和实现

Android系统中在app的应用中,当页面被遮挡或者当Activity切换到后台,activity所在进程并不会马上退出被系统杀掉进程,还是会继续存在内存中,便于再次启动activity时, 快速启动来提高响应速度(热启动),当内存达到一定极限值,lmkd会根据策略来杀掉一些优先级较低的进程来保障系统内存的正常运行。 lowmemorykiller的低内存机制中,关于在低内存时杀掉一些优先级低的进程,这部分功能在Android8.0之前主要实现在kernel中,8.0以后主要在lmkd中实现,kernel使用vmpressure机制, 达到和kernel解耦的目的 对于Android 系统来说,希望将这种 OOM killer 放在用户空间,例如这里的 lmkd,用户空间的 OOM killer 在希望释放内存的时候,必须要依靠 kill() 或者是 pidfd_send_signal(),这种方式杀死一个进程并不能使 OOM reaper 接受来发挥作用 所以说lmkd的主要源码功能就是在system\

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

安卓兼职framework应用工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值