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
网上其他方法都不行,要不生成的图是有问题的。

csdn下载链接:

https://download.csdn.net/download/H2008066215019910120/87752880

二、 用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中有看到某一项持续的时间很长的话,那就是可疑的一项。

猜你喜欢

转载自blog.csdn.net/H2008066215019910120/article/details/130494336