【第一章-知识】2、性能优化-Android开机性能分析工具 BootChart的使用

我是程序员小小叶,为大家带来原创精彩技术内容。

BootChart启用:生成日志文件

方法一:在Android10模拟器上实测可行

在 Android 6.0 以上系统默认已经编译了 bootchart, 使用adb shell 命令进入文件系统,可以看到 data 下面已经有 bootchart 的目录。再输入:

touch /data/bootchart/enabled

或者连续按两次exit,退出到外面再执行:

adb shell 'touch /data/bootchart/enabled'

两者效果是一样的。
然后关闭手机重启,此时再打开/data/bootchart目录,可以看到已经生成了开机启动的log文件:
在这里插入图片描述
这里需要注意的是: 由于之前执行了命令’touch /data/bootchart/enabled’,导致出现了enabled文件,这个enabled文件会导致后面的图片生成失败;建议将其他的4个文件(header, proc_diskstats.log, proc_ps.log, proc_stat.log)复制到其他文件夹进行保存。
然后执行:

tar -zcf bootchart.tgz *

将4个文件打包,最后用adb pull 命令将bootchart.tgz放到电脑中。

adb pull /data/bootchart/bootchart.tgz

方法二:在实机上实测可行

在旧版Android中(6.0之前版本)需要修改一些文件,重新编译boot.img才可以开启bootchart,这个修改方法可以上网搜索一下。现在的Android系统已经配置好bootchart,只需要做以下操作就可以启动:

//在data/bootchart/目录中新建start文件
adb shell 'touch /data/bootchart/start'
/*
* 在start文件中写入采用时间timeout=120s
* 这里的时间可以自定义,通过查看源代码可知最长时间不能超过10*60 s
 */
adb shell 'echo 120 > /data/bootchart/start'
//在data/bootchart/目录中新建stop文件
adb shell 'touch /data/bootchart/stop'
//在stop文件中写入1标记,用于停止采集数据
adb shell 'echo 1 > /data/bootchart/stop'

重启之后,看到/data/bootchart/目录下文件为:
在这里插入图片描述
那可以看到stop文件消失了。所以这里需要注意把start文件也删除,不然下次重启手机又会启动bootchart,而启动它是要耗费资源的。
这里需要注意的是: stop文件会在timeout=120s时间到之后自动删除,start文件建议手动删除,避免bootchart生成png时出现警告
然后执行:

tar -zcf bootchart.tgz *

将4个文件打包,最后用adb pull 命令将bootchart.tgz放到电脑中。

adb pull /data/bootchart/bootchart.tgz

环境配置:Mac下安装BootChart

下载
通过下面链接下载bootchart源码:
bootchart-0.9.tar.bz2
安装
解压缩,因为是ant构建的,需要安装ant

brew install ant

进入源码目录,执行

ant

目录会生成bootchart.jar
使用
然后手机开启bootchart的过程最终会生成bootchart.tgz的文件,这个文件就是要处理的源文件,通过下面命令,可以在当前目录生成png图片。

java -jar bootchar.jar bootchart.tgz

注意
如果使用过bootchart,每次开机都会进行信息采集,会大约占用7%的开销,如果不想进行收集,需要把目录bootchart从手机上删除
注:要重新收集数据时,需做以下步骤:

cd /data
rm –r bootchart
rm bootchart-start

效果图

在这里插入图片描述

后续

将继续整理完成bootchart的分析过程。

同系列文章:
【第一章-知识】2、性能优化-Bootchart 分析之Android 7.1 版本Bug
【第二章-工具】【开机性能分析】BootChart

结语

欢迎关注我的公众号(程序员小小叶),如果你觉得本篇内容有帮助到你,可以转载转发但记得要关注,要标明原文哦,谢谢您的支持,您的支持是我最大的动力~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值