Android开机流程(二)--简单的性能分析技巧.md

文章目录

  • 参考资料
  • 一、通过Log文件分析
    • 1.1 event.log
    • 1.2 android.log
  • 二、通过systrace分析
    • 2.1 抓取开机systrace的步骤

参考资料

这里简单分享下如何分析开机速度的问题。有如下方法:

  1. 通过android.log 和 event.log

  2. 通过systrace

  3. 通过bootchart

bootchart方法暂时不研究,用的也不多,主要是log和systrace一般已足够分析了。

一、通过Log文件分析

1.1 event.log

最常用的方式先看event.log,搜索关键字: “boot_progress_”,如下:


01-11 11:11:58.550 672 672 I boot_progress_start: 4103
08-13 21:39:23.405 672 672 I boot_progress_preload_start: 5360
08-13 21:39:24.177 672 672 I boot_progress_preload_end: 6133
08-13 21:39:24.308 1326 1326 I boot_progress_system_run: 6263
08-13 21:39:24.576 1326 1326 I boot_progress_pms_start: 6532
08-13 21:39:24.708 1326 1326 I boot_progress_pms_system_scan_start: 6664
08-13 21:39:25.574 1326 1326 I boot_progress_pms_data_scan_start: 7529
08-13 21:39:26.037 1326 1326 I boot_progress_pms_scan_end: 7993
08-13 21:39:26.219 1326 1326 I boot_progress_pms_ready: 8175
08-13 21:39:27.426 1326 1326 I boot_progress_ams_ready: 9381
08-13 21:39:28.854 1326 1372 I boot_progress_enable_screen: 10809

这里看的时间是每个boot_progress所花费的时长,单位ms。可以整体看到每个步骤的耗时。

1.2 android.log

看完event.log之后,可以大致推算出耗时点,如果是SystemServer耗时,可以在android.log里面看每个服务的启动时间推算卡在哪个服务,搜索关键字“SystemServer”即可。

比如经常会因为Sensor启动慢或者出问题,会卡住WMS的启动。

二、通过systrace分析

搞Android性能分析的,怎么能绕开systrace呢。不过要开启开机systrace的debug开关后才能抓取。

2.1 抓取开机systrace的步骤

装systrace工具的方式就不说了,不清楚的同学请戳:Android性能专项测试之Systrace工具

1.首先将atrace.rc和build.prop这两文件pull出来


adb pull /system/etc/init/atrace.rc 
adb pull /system/build.prop

2.修改相应值


atrace.rc 
adb shell ls /system/etc/init/atrace.rc
chown root shell /sys/kernel/tracing/buffer_size_kb
添加:write /sys/kernel/debug/tracing/buffer_size_kb 409600
注意下面注释掉关闭trace开关语句
    # Tracing disabled by default
  # write /sys/kernel/debug/tracing/tracing_on 0
  # write /sys/kernel/tracing/tracing_on 0
///
build.prop
最后加入语句:debug.atrace.tags.enableflags=0x8106e
// 这个flag的值就是对应的traceTag

3.抓取
替换这两个文件后,开机后直接输入 adb shell atrace --async_stop -z > atrace.out 就行了
然后进入 /sdk/platform-tools/systrace,运行:
python systrace.py --from-file atrace.out
这样开机的trace文件就出来了。最后用chrome(网址:chrome://tracing/)打开这个html文件就可以愉快的分析了。
至于trace文件如何看,网上教程很多,就不赘述了。

你可能感兴趣的:(Android)