注:这是本人两年多以前写的文档,贴在这里作为备份,由于当时是针对 Android 1.6(Donut)编写的,部分内容可能已经不适用于目前版本的Android,仅供参考。

1.    bootchart简介

bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。

2.    使用方法和步骤

目前Android已自带bootchart,但缺省时不被编译。要使用bootchart,可依循如下步骤(已在3200版本上验证通过):

1) 设置环境变量INIT_BOOTCHART=true,重新编译Android源码目录树下的system/core/init/

$ touch system/core/init/init.c

$ m INIT_BOOTCHART=true

编译生成新的可执行文件init,该文件在手机文件系统位于根/下,对应的flash image是boot.img,为此需重新烧写含有新的init的boot.img。

2) 在手机上创建文件/data/bootchart-start,其内容是bootchart的采样时间:

adb shell 'echo $TIMEOUT > /data/bootchart-start'

其中$TIMEOUT是期望采样的时间,单位为秒,例如要采样两分钟,则执行:

adb shell 'echo 120 > /data/bootchart-start'

3) 重启手机,init运行时将自动创建文件夹/data/bootchart/,并在其中保存采样数据,采样数据由5个文件组成:

header

proc_stat.log

proc_ps.log

proc_diskstats.log

kernel_pacct

需要注意,在手机上运行bootchart采样完成后若不再使用bootchart则需手工删除文件/data/bootchart-start,否则手机每次重启时都会运行bootchart。

4) 将上述5个文件上传到PC上并打包成bootchart.tgz,可借助Android源码目录树下提供的工具脚本system/core/init/grab-bootchart.sh自动完成这些过程,或手工通过adb pull将这5个文件上传到PC并打包。

5) 从www.bootchart.org下载安装bootchart在PC上的结果图表生成工具,我已下载uBuntu上的deb包bootchart_0.9-0ubuntu6_all.deb,安装即可:

dpkg -i bootchart_0.9-0ubuntu6_all.deb

会安装如下jar文件:

/usr/share/bootchart/bootchart.jar

6) 执行下面的命令生成分析结果图表,缺省生成png格式的图像文件bootchart.png:

java -jar /usr/share/bootchart/bootchart.jar /path/to/bootchart.tgz

7) 用看图软件查看分析结果bootchart.png。

3.    结果分析

参见bootchart官方网站文档(参考资料4)或参考资料3。