perfboot工具使用

504 阅读1分钟

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

Android 中的 perfboot工具