1.在Android T上,开机后的性能有所下降,报了一些ANR的问题.排查下来是T上有个新的feature: 开机完成10分钟内不杀缓存进程.
相关参数:
private static final boolean DEFAULT_NO_KILL_CACHED_PROCESSES_UNTIL_BOOT_COMPLETED = true;
private static final long DEFAULT_NO_KILL_CACHED_PROCESSES_POST_BOOT_COMPLETED_DURATION_MILLIS = 600_000;
2.这个feature从代码看,主要是针对memory比较大的平台。在开机后,让一些应用(开机后就会用到的)可以更快启动. 大内存一般是指6G和6G以上.
但是不适用4G,3G 内存的项目. 在内存较低项目上反而造成了开机10分钟内内存压力较大.容易造成apk启动慢和ANR.因此我们这边建议是关闭此feature来提升小内存项目开机后一段时间内的性能,且代码逻辑上看没有风险.
3.关闭方法:
代码路径:
frameworks/base/services/core/java/com/android/server/am/ActivityManagerConstants.java
private static final boolean DEFAULT_NO_KILL_CACHED_PROCESSES_UNTIL_BOOT_COMPLETED = true;//修改为false
private static final long DEFAULT_NO_KILL_CACHED_PROCESSES_POST_BOOT_COMPLETED_DURATION_MILLIS = 600_000; //修改为0
3/4G项目关闭,4G和6G都有的项目,也建议关闭.纯6G以上的,根据实际情况判断.
4.验证方法:
默认开启10分钟不杀进程:
log中有这种log: OomAdjuster: Not killing cached processes
修改后:adb shell dumpsys activity settings ,查看属性配置
no_kill_cached_processes_until_boot_completed=false
no_kill_cached_processes_post_boot_completed_duration_millis=0
5965

被折叠的 条评论
为什么被折叠?



