perfboot工具是个Python的脚本,在源码/system/core/init/目录下,通过运行./perfboot.py -h 可以看到相关参数。
运行perfboot需要在编译环境下,因为perfboot的运行需要依赖AOSP/development/python-packages/adb/目录下的相关模块。
cd system/core/init/
./perfboot.py --iterations=5 --interval=30 -v --output=/tmp/bf.tsv
1.重复次数 –iterations=5 获取5次数据
2.每次之间的间隔时间。 –interval=30 每次的时间间隔是30s
3.输出结果路径 -v –output=/tmp/bf.tsv 得到的结果写到bf.tsv文件中。
记录的时间点和以下log是一样的
adb logcat -b events|grep boot
boot_progress_start: 4927 android虚拟机开始启动
boot_progress_preload_start: 7037 ZygoteInit class preload start
boot_progress_preload_end: 8837 ZygoteInit class preload end
boot_progress_system_run: 9154 SystemServer.run() start
boot_progress_pms_start: 9770 pms开始扫描package
boot_progress_pms_system_scan_start: 10012 pms开始扫描system目录下的package
boot_progress_pms_data_scan_start: 10208 pms开始扫描data目录下的package
boot_progress_pms_scan_end: 10214 pms扫描结束
boot_progress_pms_ready: 10361 pms.systemReady()
boot_progress_ams_ready: 11578 ams.systemReady()
boot_progress_enable_screen: 13233 ams调用enableScreenAfterBoot()
sf_stop_bootanim: 17042 设置service.bootanim.exit属性值为1
wm_boot_animation_done: 17044 开机动画结束
没找到怎么用tsv文件生成人家那种折线图
报错记录: No module named adb
Traceback (most recent call last):
File "./perfboot.py", line 55, in <module>
import adb
ImportError: No module named adb
这个报错找不到adb模块,此时在AOSP/system/core/init/目录下执行命令无法找到AOSP/development/python-packages/adb/目录的依赖
解决办法:使拷贝adb目录和perfboot.py放到同级目录下(这个部分涉及Python的包管理,简单的做法使用下面的就可以了)
cp development/python-packages/adb/ system/core/init/ -vr