一、简介
Bootchart是一个用于GNU/Linux启动过程的性能分析和可视化呈现的开源软件工具。在系统启动过程中,自动收集资源利用率和进程信息,然后生成PNG、SVG或EPS编码的图表。
Android系统已经集成了Bootchart工具,位于源码的system/core/init/bootchart.cpp。在系统启动过程中,由于Bootchart是在init进程启动之后,才在后台执行测量任务,所以采集的结果不包含bootloader和kernel的启动时间。
二、数据采集
1. Android 5.1及之前
没有将bootchart编译进系统中,需要重新编译、替换boot.img文件。
https://blog.csdn.net/harry_helei/article/details/7281356
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
如下所示:
压缩、导出:
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
https://sourceforge.net/projects/bootchart/
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
图表如下: