概述
开机首先加载bootloader,由bootloader启动kernel,然后运行init程序,有init启动Zygote,Zygote进程启动SystemServ进程,在SystemServer进程启动系统服务:PMS,AMS等,最后在AMS中启动Launcher ,此时整个Android系统完毕。在整个启动过程需要加载相关资源和Java类,首次启动还要安装应用等,如果不做好优化,开机时间可能就非常不理想,下面的工具对优化开机时间有很大的帮助。
perfboot
使用说明
perfboot工具是个Python的脚本,在AOSP/system/core/init/目录下,通过运行./perfboot.py -h
可以看到相关参数,运行perfboot需要在编译环境下,因为perfboot的运行需要依赖AOSP/development/python-packages/adb/目录下的相关模块。
获取记录开机时间点的文件:./perfboot.py --iterations=2 --interval=30 -v --output=/tmp/J5D_UE.tsv
,相关参数的意思可以参考说明,脚本执行结束后,可以在Excel里直接打开文件进行分析。
报错记录
- 如下报错说明找不到adb模块,此时在AOSP/system/core/init/目录下执行命令无法找到AOSP/development/python-packages/adb/目录的依赖,解决办法可以使拷贝adb目录和perfboot.py放到同级目录下,然后执行命令。
Traceback (most recent call last):
File "./perfboot.py", line 55, in <module>
import adb
ImportError: No module named adb
未完待续