一、簡介
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
圖表如下: