2023Android系统开机速度优化探索

1,143 阅读1分钟

一些工具用来分析

  • 可以考虑bootchart,个人认为最大的作用在看cpu是否跑满。
  • pefboot跑N次开机 分析平均时间。
  • events log 查看boot的时间 log上搜 boot_

fwk层能做的部分优化

  • 裁减 apk
  • preloadclasses
  • 部分场景考虑directbootware 这个有坑
  • 编译优化 主要针对dex2ota过程的过滤器部分 speed-profile verify等的使用

主要减少pkms scan过程,以及zygote preload这两块的时间。 preloadclass裁剪效果有限, apk + class优化整体我才提高1s

如果发生IO过大,可以考虑readahead参考其他文章,据说效果也在2~3s

驳斥网络上的观点

  1. 提高zygote优先级, 我这边zygote已经是-20 还能咋提高?
  2. reduce GC 减少zygote的GC,我这个版本preload过程的代码已经没有GC相关的判断了
  3. 并发preloadres preloadclasses等,再次不成立。 zygote无法创建线程。
  4. cpuset也不是很靠谱 参考文档这句话

请主要参考谷歌的两篇文章针对自己平台进行对比

借用伟大领袖一句话,有些人不要吃饱了没事儿干(在这写没用的文章)。

更新 开机systrace可以抓 ,但是不太会分析


0uyangsheng.github.io/2018/05/14/… www.cnblogs.com/zzcperf/p/1…

www.zybuluo.com/guhuizaifei…

source.android.com/docs/core/r…

source.android.com/docs/core/p…

elinux.org/Android_Boo…