android 11源码中如何提高应用oom_adj级别,保活应用(csdn)————程序.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)

在Android 11源码中,提高应用的`oom_adj`级别是为了确保应用程序在系统内存紧张时能够保持活跃,防止被系统强制关闭。`oom_adj`(Out-of-Memory Adjuster)是Android用来管理进程优先级和内存分配的一个关键参数。较高的`oom_adj`值意味着该应用在内存清理过程中具有更高的保活优先级。以下是如何在Android 11源码中实现这一目标的步骤和相关知识点: 1. **修改`OomAdjuster`类**: 我们需要关注`frameworks/base/services/core/java/com/android/server/am/OomAdjuster.java`文件中的`OomAdjuster`类。这个类是负责处理内存管理和进程调整的核心组件。 2. **获取白名单列表**: 在`applyOomAdjLocked`方法中,可以看到一个名为`pkgArray`的变量,它用于存储白名单列表。这个列表包含需要保活的应用程序包名。你可以通过调用`mService.getOomAdjusterArray()`来获取这个列表,确保你的应用在其中。 3. **动态调整`oom_adj`值**: 当系统需要进行内存优化时,`applyOomAdjLocked`方法会被调用。在这个方法中,你需要检查当前进程的`oom_adj`值,并根据需要进行调整。通常,会比较`app.getCurRawAdj()`和`app.setRawAdj`,如果它们不相等,则说明需要更新`oom_adj`值。 4. **判断是否在白名单中**: 在调整`oom_adj`值之前,可以遍历`pkgArray`,检查当前应用的包名是否在白名单内。如果是,那么可以将它的`oom_adj`值设置为一个较高的值,以增加其保活概率。 5. **处理缓存和主界面应用**: Android会特别关注缓存应用(如最近使用的应用)和主界面应用,因为它们对用户体验有直接影响。在`applyOomAdjLocked`方法中,可以看到对这些应用进行特殊处理的逻辑,例如当一个感知性应用成为前台或最近任务时,可能会触发一次轻量级的内存压缩操作。 6. **`ProcessList`类**: 引入`import com.android.server.am.ProcessList;`,这表明`ProcessList`类在内存管理中扮演了重要角色。它维护着系统中所有活动进程的信息,包括它们的`oom_adj`值、状态等。 7. **`mCachedAppOptimizer`和`mService.mBooted`**: 这两个变量分别表示缓存应用优化器的状态和系统是否已经启动完成。只有在系统启动后且缓存应用优化器启用时,才会执行特定的内存优化策略。 8. **实际操作**: 要在实际项目中应用这个策略,你需要修改系统的源代码,编译并安装到设备上。由于这涉及到系统级别的更改,因此通常只适用于定制ROM或设备制造商。对于普通开发者,可以通过在运行时获取权限并调用相应的系统服务接口来尝试调整`oom_adj`值,但这可能需要root权限,并且不是所有设备都支持。 9. **注意事项**: 提高`oom_adj`值可能会导致其他应用的性能受到影响,因为系统会优先保障具有较高`oom_adj`值的应用。因此,除非绝对必要,否则应谨慎使用这种策略,以免破坏整体系统的内存管理平衡。 通过理解Android 11源码中`OomAdjuster`类的工作机制,我们可以针对性地调整白名单应用的`oom_adj`值,从而在系统资源有限的情况下,保证关键应用的保活。但必须注意的是,这可能会对系统整体性能带来负面影响,所以需谨慎操作。




























- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 实验一Linux基本操作实验研究分析报告.doc
- 大数据安全与隐私保护.docx
- 北京化工大学自动化专业卓越工程师培养技术方案.doc
- 上半年信息处理技术员网络直播培训.docx
- PLC安装环境.doc
- 试论网络思想政治教育的理论基础.docx
- 互联网+教育环境下基于智慧校园的高校教育信息化建设探究.docx
- 论4G通信工程技术的要点.docx
- Git高级技巧大全之深入探究基础教程
- NOIP2016初赛普及组C++题目及标准答案.doc
- 电子商城网站建设策划.doc
- 51单片机直流电机控制系统大学本科方案设计书.doc
- 财务公司行业信息化发展最佳实践研究.doc
- 大数据时代网络信息安全及防范措施.docx
- MATLAB课程设计方案研究报告(绝对完整).doc
- 土木工程C语言课程方案任务书.doc



评论10