一些工具用来分析
- 可以考虑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
驳斥网络上的观点
- 提高zygote优先级, 我这边zygote已经是-20 还能咋提高?
- reduce GC 减少zygote的GC,我这个版本preload过程的代码已经没有GC相关的判断了
- 并发preloadres preloadclasses等,再次不成立。 zygote无法创建线程。
- cpuset也不是很靠谱 参考文档这句话
请主要参考谷歌的两篇文章针对自己平台进行对比
借用伟大领袖一句话,有些人不要吃饱了没事儿干(在这写没用的文章)。
更新 开机systrace可以抓 ,但是不太会分析
0uyangsheng.github.io/2018/05/14/… www.cnblogs.com/zzcperf/p/1…
source.android.com/docs/core/r…