前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Android][Framework]使用bootchart分析开机数据

[Android][Framework]使用bootchart分析开机数据

作者头像
wOw
发布2020-01-20 16:37:22
1.9K0
发布2020-01-20 16:37:22
举报
文章被收录于专栏:wOw的Android小站wOw的Android小站

Mac安装Bootchart

下载

通过下面链接下载bootchart源码:bootchart-0.9.tar.bz2

安装

解压缩,因为是ant构建的,需要安装ant

代码语言:javascript
复制
brew install ant

进入源码目录,执行

代码语言:javascript
复制
ant

目录会生成bootchart.jar

使用

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

代码语言:javascript
复制
java  -jar   bootchar.jar   /path/to/bootchart.tgz

Android开启Bootchart

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

代码语言:javascript
复制
//在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/目录下文件为:

代码语言:javascript
复制
header 
kernel_pacct 
proc_diskstats.log 
proc_ps.log 
proc_stat.log 
start

那可以看到stop文件消失了。所以这里需要注意把start文件也删除,不然下次重启手机又会启动bootchart,而启动它是要耗费资源的。

采集数据

可以把生成出来的5个文件pull出来打包,也可以使用系统提供的脚本做这个操作。系统脚本在 AOSP/system/core/init/grab-bootchart.sh。我把脚本放在前面bootchart源码目录中,然后做了一些修改以适应我的开发环境。

代码语言:javascript
复制
#!/bin/sh
#
# This script is used to retrieve a bootchart log generated by init.
# All options are passed to adb, for better or for worse.
# See the readme in this directory for more on bootcharting.

TMPDIR=~/Temp
rm -rf $TMPDIR
mkdir -p $TMPDIR
# log在手机的路径
LOGROOT=/data/bootchart
TARBALL=bootchart.tgz
# 5个文件
FILES="header proc_stat.log proc_ps.log proc_diskstats.log kernel_pacct"
# 把文件pull到本地电脑
for f in $FILES; do
    adb "${@}" pull $LOGROOT/$f $TMPDIR/$f 2>&1 > /dev/null
done
# 文件打包
(cd $TMPDIR && tar -czf $TARBALL $FILES)
#bootchart ${TMPDIR}/${TARBALL}
#gnome-open ${TARBALL%.tgz}.png
# 通过bootchart源码生成png  这和linux环境不一样
java -jar bootchart.jar ${TMPDIR}/bootchart.tgz
rm -rf $TMPDIR
echo "./${TARBALL%.tgz}.png is generated"

这样就能生成直观的开机状态统计图了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mac安装Bootchart
    • 下载
      • 安装
        • 使用
        • Android开启Bootchart
        • 采集数据
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档