Android 10.0 app应用保活设置oom_adj的值为0
2023-09-14 09:05:08 时间
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_ADJ = 16 : 缓存进程 ;
CACHED_APP_MAX_ADJ = 15 : 不可见进程的 oom_adj 最大值 ;
CACHED_APP_MIN_ADJ = 9 : 不可见进程的 oom_adj 最小值 ;
SERVICE_B_ADJ = 8 : 在 B 列表中的 Service 服务 , 这
相关文章
- Android浏览器调用APP「建议收藏」
- Android native层实现MediaCodec编码H264/HEVC
- strictmode android,Android 应用性能优化-StrictMode(严格模式)
- android app 抓包
- android退出app代码,Android应用退出代码各种方式
- android sdk根目录,Android SDK位置
- android telephony 原理解析与开发指南_Android逆向pdf
- Android 编译_android线程
- 2022最新苹果APP上架App Store流程(超详细)
- android进程间通信的方式_Android进程注入
- 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )
- 【Android 逆向】Android 系统文件分析 ( /system/ 系统命令和系统应用数据目录 | /system/app/ 系统应用目录 | sys Linux 系统内核文件目录 )
- 【错误记录】Android 应用配置第三方 so 动态库 ( /data/app/comxxx==/base.apk/lib/arm64-v8a]couldn‘t find “libx.so“ )
- 【Android Gradle 插件】build.gradle 中的 android 配置 ( 配置项 | compileSdkVersion 配置 | buildToolsVersion 配置 )
- 【错误记录】Android 应用安装后出现两个启动图标 ( 排查应用及依赖库中配置了 android.intent.category.LAUNCHER 的 Activity )
- Android动态化框架App Bundles详解手机开发
- Android Studio Gradle Configuration Errors总结详解编程语言
- 使用Android实现连接MySQL数据库:实现快速数据交互与管理(android连接mysql数据库)
- Android应当从iOS处窃取的五大最佳功能
- 安卓APP配合MSSQL强势发力,创新移动应用体验(安卓app mssql)
- 基于MSSQL的手机APP编程实践(mssql编程app)
- 让App连接MySQL轻松实现数据库连接(app连mysql)
- App应用提交到MySQL中的实践与探索(app提交mysql)
- App联手Oracle实现多样化应用(app与oracle)
- 智能化应用App文件夹Oracle引领未来(app文件夹oracle)
- 怎么发布打包并发布自己的Android应用(APP)