一、简介
Bootchart是一个用于GNU/Linux启动过程的性能分析和可视化呈现的开源软件工具。在系统启动过程中,自动收集CPU占用率、磁盘吞吐率、进程等信息,然后生成PNG、SVG或EPS编码的图表。
Android系统已经集成了Bootchart工具,位于源码的system/core/init/bootchart.cpp,特别值得关注的是system/core/init/README.md,在里面有详细的使用说明。在系统启动过程中,由于Bootchart是在init进程启动之后,才在后台执行测量任务,所以采集的结果不包含bootloader和kernel的启动时间。
二、数据采集
1. Android 5.1及之前
没有将bootchart编译进系统中,需要重新编译、替换boot.img文件。
bootchart工具在Android系统开机测量中的应用_金陵猿客的博客-CSDN博客
2. Android 6.0及之后
生成数据文件和Log:
adb shell
# 在6.0系统之后,需要通过su提权
su
# enabled文件作为启用bootchart的标记
touch /data/bootchart/enabled
# 自定义采样时间,且不能超过10*60s(可选,在6.0系统上必选)
echo $TIME_OUT > /data/bootchart/start
# 重启
reboot
路径data/bootchart/下本来为空,bootchart start的前提是存在enable标记。
Bootchart的start和stop点在init.rc中被标记。从下面截图可以看出,在data分区被mount后立即启动,在系统启动完成后stop。
生成结果如下所示:
压缩、导出:
adb shell
cd /data/bootchart/
tar -zcf boochart.tgz *
adb pull xxx xxx
exit
三、配置PC环境
亲测在Ubuntu 18.04上,提示错误:"没有可安装候选":
sudo apt-get install bootchart
方法一:(推荐)
sudo apt-get install pybootchartgui
方法二:
1. 下载源码bootchart-0.9.tar.bz2
Bootchart download | SourceForge.net
2. 安装Ant工具
sudo apt-get install ant
3. 使用Ant编译源码
解压源码:
tar –jxvf bootchart-0.9.tar.bz2
在根目录编译:
ant
4. 生成bootchart.jar
四、生成图表
方法一:(推荐)
bootchart bootchart.tgz
方法二:
java -jar bootchart.jar bootchart.taz
图表如下: