当前位置 : 主页 > 网络编程 > 其它编程 >

安卓调试瑞士军刀系列:bootchart的配置和使用

来源:互联网 收集:自由互联 发布时间:2023-07-02
篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了安卓调试瑞士军刀系列:bootchart的配置和使用相关的知识,希望对你有一定的参考价值。 篇首语:本文由编程笔记#自由
篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了安卓调试瑞士军刀系列:bootchart的配置和使用相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#自由互联小编为大家整理,主要介绍了安卓调试瑞士军刀系列:bootchart 的配置和使用相关的知识,希望对你有一定的参考价值。

文章目录

    • 1. 基础步骤
    • 2. 安装工具
    • 3. 设备端使能bootchart标志位
    • 4. PC端方法1. 使用grab-bootchart.sh在线解析
    • 5. PC端方法2. 使用工具手动解析
      • 1设备端压缩bootchart文件
      • 2PC端解析bootchart文件
    • 6. 解析bootchart PNG的数据
    • 7. 结束语
bootchart 一般用于系统启动时间的分析可为调试人员快速地提供一副体现CPU、IO、进程启动情况的以时间序列展开的图表。

android 目前已将bootchart集成到源码中只需要在系统运行时设定其标志位即可采集到启动信息非常方便下面就介绍其使用方法。

1. 基础步骤

1安装必要工具

2在设备端使能bootchart抓取数据

3在PC端解析bootchart数据绘制成图

4分析bootchart.png

2. 安装工具

在grab-bootchart.sh中会调用到pybootchartgui所以避免不开需要安装

  • 在ubuntu 18.04 上找不到bootchart经过测试安装下面这个即可

sudo apt-get install pybootchartgui

  • 在ubuntu 16.04 上可安装下面两个工具

sudo apt-get install bootchartsudo apt-get install pybootchartgui

  • 置于ubuntu 20.04上以上两个工具均为找到安装方法知道的同学楼下留言区分享一下

3. 设备端使能bootchart标志位

adb connect 192.168.103.23adb rootadb shell touch /data/bootchart/enabled

4. PC端方法1. 使用grab-bootchart.sh在线解析

注意使用grab-bootchart.sh前需要先建立好adb连接这个工具会自动从adb连接的设备上拉去之前生成的bootchart数据自动生成bootchart.png文件

szhoubcsrv_02:~/aosp$ adb devicesList of devices attached192.168.103.23:5555 deviceszhoubcsrv_02:~/aosp$ system/core/init/grab-bootchart.shparsing /tmp/android-bootchart/bootchart.tgzparsing headerparsing proc_stat.logparsing proc_ps.logwarning: no parent for pid 2 with ppid 0parsing proc_diskstats.logmerged 0 logger processespruned 142 process, 0 exploders, 19 threads, and 0 runsFalsebootchart written to bootchart.pngsystem/core/init/grab-bootchart.sh: 21: system/core/init/grab-bootchart.sh: gnome-open: not foundClean up /tmp/android-bootchart/ and ./bootchart.png when doneszhoubcsrv_02:~/aosp$

5. PC端方法2. 使用工具手动解析

1设备端压缩bootchart文件

console:/data/bootchart # ls enabled header proc_diskstats.log proc_ps.log proc_stat.log console:/data/bootchart # tar -czf bootchart.tgz *console:/data/bootchart # ls bootchart.tgz enabled header proc_diskstats.log proc_ps.log proc_stat.log console:/data/bootchart #

2PC端解析bootchart文件

zhouyanfa-zs-502143:~$ adb connect 192.168.103.23* daemon not running; starting now at tcp:5037* daemon started successfully connected to 192.168.103.23:5555 szhouyanfa-zs-502143:~$ adb root adbd is already running as root szhouyanfa-zs-502143:~$ adb connect 192.168.103.23 already connected to 192.168.103.23:5555 szhouyanfa-zs-502143:~$ adb pull /data/bootchart/bootchart.tgz ./data/bootchart/bootchart.tgz: 1 file pulled. 8.3 MB/s (617106 bytes in 0.071s) szhouyanfa-zs-502143:~$ adb shell sync szhouyanfa-zs-502143:~$ bootchart bootchart.tgz parsing bootchart.tgzparsing enabledparsing headerparsing proc_diskstats.logparsing proc_ps.logwarning: no parent for pid 2 with ppid 0parsing proc_stat.logmerged 0 logger processes pruned 142 process, 0 exploders, 19 threads, and 0 runs False bootchart written to bootchart.pngszhouyanfa-zs-502143:~$

6. 解析bootchart PNG的数据

  • 如下图分为几个部分首先是一个头部信息在最后部分可以看到启动时间为time:00:18:42即启动到boot.completed1所使用的时间我们直到开机动画的结束也是以这个标志位为准可以抓到如下打印

    • console:/ $ [ 18.282519] ----- Boot animation finish -----: [ 18.287149] [AT][AN][finish boot]

  • 其次三部分图表CPU、Disk、进程列表时间轴从左到右每一小格子为1秒

  • 有时候我们需要注意进程列表中CPU执行时间有停止、跨越一段时间、继续执行的进程这个进程也许是因为等待某些资源导致执行被挂起

7. 结束语

最近开始需要使用到性能分析工具打算再出一个系列的文章欢迎交流~

【文章原创作者:阿里云代理 http://www.558idc.com/aliyun.html 复制请保留原URL】
上一篇:windows下mingw32编译libusb[实测可行]
下一篇:没有了
网友评论