Android开机时间工具分析

背景

    android 上面有很多的方法可以分析开机时间 比如打log,通过log 分析。android 的官网上面提供了下面的两种图形化的方式来分析开机时间,一些异常很明显的拖长整个开机时间的活动
可以很容易就看出来。

问题

    android 官网和网上的教程很多都不适用于windows 的平台。会出现各种不同的报错,下面是整理的适用于windows的方式。

一、 bootchart

  • 生成bootchart.tgz

adb shell 'touch /data/bootchart/enabled'
adb reboot
# 开机后,pull出相关数据
adb shell 'tar -czf /sdcard/bootchart.tgz /data/bootchart'
adb pull /sdcard/bootchart.tgz .
  • window上面使用工具生成图像

下载 pybootchartgui。 将里面的main.py.in修改成main.py
先决条件:
需要先下载好python3以上的版本,
参考下面的文章
安装pycario,使用
pip install pycairo-1.19.1-cp38-cp38-win_amd64.whl
然后 将原先生成的压缩文件放到下载的 pybootchartgui里面 运行如下命令
就可以生成bootchart的图了。
python pybootchartgui.py --show-all -n -f png bootchart.tgz
网上其他方法都不行,要不生成的图是有问题的。

二、 用systrace进行分析

  • 修改atrace.rc

这个文件在/system/core/init/底下,注释掉下面两句
# write /sys/kernel/debug/tracing/tracing_on 0
# write /sys/kernel/tracing/tracing_on 0
同时添加下面的这些
on property:persist.debug.atrace.boottrace=1
   start boottrace
   service boottrace /system/bin/atrace --async_start -b 30720 gfx input view webview wm am sm audio video binder_lock binder_driver camera hal res dalvik rs bionic power pm ss database network adb vibrator aidl sched  
   disabled
   oneshot
  • 修改build.prop

1. 在build.prop 中添加
debug.atrace.tags.enableflags=802922
adb shell setprop persist.debug.atrace.boottrace 1
2. 重启获取trace
adb root && adb shell atrace --async_stop -z -c -o /data/local/tmp/boot_trace
adb pull /data/local/tmp/boot_trace

三、 分析systrace

  • 在chrome打开  Perfetto UI
  • 分析,可以用搜索栏搜索StartActivityManager,  可以看到下列时间先后顺序的activity的启动流程。
点击具体的某一项 在详细信息栏中就可以看到start某个activity持续的时间。如果在activity中有看到某一项持续的时间很长的话,那就是可疑的一项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值