bootchart是android原生自带的性能分析工具,可以收集android开机过程中的log。再利用jar包能够将开机时各个进程呈现在图表中。可以比较直观的看到开机时哪些比较耗时。
一、启用Bootchart
android中的bootchart源码位于system/core/init目录下,bootchart.cpp中有个do_bootchart_start()函数

代码中时通过判断是否有/data/bootchart/enabled文件来启动bootchart的,所以创建一个这个文件即可启动。
二、设置收集数据时间
这个在源码中没有找到相应的说明,按照网上说的6.0之后做法,试了下没看出效果
1、创建/data/bootchart/start文件存储bootchart采样时间(s)
2、adb shell ‘echo 120 > /data/bootchart/start’
三、生成图表
启用bootchart并且设置好时间后,重启机器,会在/data/bootchart下生成log文件,从源码中可以看到当前会生成哪些日志文件。除了这个log文件之外还会生成一个header文件,也是必须的。

然后利用bootchart工具把这些日志转成png图片。
1.使用系统自带脚本生成png图片
执行 /system/core/init/grab-bootchart.sh 自动生成png图片
2.使用bootchart.jar处理日志压缩文件
从官网下载bootchart源码,放到ubuntu目录下,执行

生成bootchart.jar
将手机 /data/bootchart/ 下文件 (header proc_diskstats.log proc_ps.log proc_stat.log) pull出来copy到服务器,执行下压缩命令生成bootchart.tgz

使用jar转成png图



