当前位置: 首页 > news >正文

Android 系统的进程保活方案的一些思路

Android 系统的进程保活方案是为了解决系统内存资源有限和功耗压力下,进程被系统查杀导致用户体验下降的问题。同时,三方应用为了常驻后台,采用了各种规避查杀的策略,进一步恶化了用户体验。为此,设计了以下保活方案,核心原理如下:

1.优先级调整(Adj调整)

最近使用的三个应用提升优先级:通过调整最近使用的三个应用的 adj(进程优先级),降低它们被杀的概率。

前台服务保活:检测前台服务进程是否被冻结,若被冻结则降级至 SERVICE_ADJ 等级,避免被系统查杀。

2.保活白名单机制

系统应用后台保活:通过保活白名单机制,允许系统应用在后台保活,并提供接口供应用主动请求或关闭保活能力。

从 Android O 版本开始,系统对后台应用拉起服务的能力进行了严格限制。只有满足以下 三个条件之一 的应用才能在后台拉起服务:

1.Persistent 应用:系统常驻应用。

2.后台白名单:被加入后台运行白名单的应用。

3.电池白名单:被加入电池优化白名单的应用。

如果应用不满足以上任一条件,则无法在后台拉起服务。

为了应对这一限制,新增了一个白名单机制,允许系统应用在后台拉起服务,绕过系统限制。该白名单专门用于提供系统应用的保活能力,确保关键服务在后台能够正常运行。

3.死亡监控与拉活

Binder 死亡回调监控:通过监控 Binder 对象的死亡回调,当应用进程异常退出时,自动拉活。

异常 Crash 处理:统计应用异常 Crash 次数,超过一定次数(如 10 次)后不再拉活,避免频繁拉活导致资源浪费。

4.拦截杀应用行为

查杀白名单:

1.通过白名单机制,拦截用户手动杀应用的行为,确保白名单内的应用不会被用户手动清理。

2.通过白名单机制,拦截系统杀应用的行为(例如CPU高负载查杀),确保白名单内的应用不会被用户手动清理。

5.测试与验证

优先级提升验证:通过命令行查看最近使用的三个应用的 adj 值,确保优先级提升成功。

拉活功能验证:通过杀死进程并监控其是否被重新拉起,验证拉活功能的有效性。

拦截用户杀应用验证:通过手动清理应用并检查进程是否存活,验证拦截功能的有效性。

6.总结

该保活方案通过优先级调整、白名单机制、死亡监控与拉活、拦截杀应用行为等多种手段,确保系统应用和关键进程在后台的存活,提升用户体验。同时,通过保活白名单机制和异常 Crash 处理,避免滥用保活能力导致系统资源浪费。

相关文章:

  • nmcli创建wpa-psk2 wifi热点
  • 2.0 全栈运维管理:Linux网络基础核心概念解析、Proxmox网络组件详解、虚拟化网络模型分类
  • AI 课招生啦
  • 英语单词 list 11
  • IPV6应用最后的钥匙:DDNS-GO 动态域名解析工具上手指南--家庭云计算专家
  • Vue3+elementPlus中 树形控件封装
  • 从自然语言到 JSON 数据交互:探索 MCP 协议的自动化任务实现
  • 【论文阅读】UniAD: Planning-oriented Autonomous Driving
  • mysql建表一对多--多对多之间的外键关联
  • 202529 | RocketMQ 简介 + 安装 + 集群搭建 + 消费模式 + 消费者组
  • DHCP中继
  • 安卓关机和重启源码流程
  • 【HDFS入门】Hadoop 2.0+ HDFS核心架构深度解析:高可用设计揭秘
  • C. Good Subarrays
  • 操作系统基础:07 我们的任务
  • MySQL-锁
  • leetcode 3508 设计路由器 模拟 深拷贝 二分 bound
  • (即插即用模块-特征处理部分) 三十二、(TGRS 2024) MDAF 多尺度双表示对齐过滤器
  • 深入解析TCP拥塞控制机制:从原理到现代算法优化
  • 如何在Agent中设置Memory
  • 多家国有大行存款利率即将迎来新一轮下调
  • 中国预警机雷达有多强?可数百公里外看清足球轨迹
  • 无人机企业从科技园区搬到乡村后,村子里变得不一样了
  • 肖钢:一季度证券业金融科技投资强度在金融各子行业中居首
  • 墨西哥海军一载两百余人帆船撞上纽约布鲁克林大桥,多人落水
  • 俄外长与美国务卿通电话,讨论俄美接触等问题