Android开机时间查看
1.通过日志查看
等待adb进程启动后(一般出现Android字样后),执行如下命令抓取开机log
adb logcat -b all > logcat.txt
打开logcat.txt,搜索logcat关键字”boot_progress“、“sf_stop_bootanim”、“wm_boot_animation_done”
或者直接执行以下命令过滤logcat
adb logcat -b events | grep-E"boot_progress|sf_stop_bootanim|wm_boot_animation_done"
以上是Android系统启动的各个阶段耗时,可以看到,整个开机过程耗时14.383秒,其中从按下power键到zygote启动,耗时5.166秒。各阶段的解释如下:
启动阶段 | 说明 |
boot_progress_start | Linux kernel启动到Zygote进程启动的时间,包含从kernel启动到Init启动Zygote的时间 |
boot_progress_preload_start | ART虚拟机启动耗时/Zygote开始启动 |
boot_progress_preload_end | 虚拟机资源装载耗时/Zygote启动结束 |
boot_progress_system_run | System Server进程启动耗时 |
boot_progress_pms_start | Android一些在PMS前需要启动服务的启动耗时,package scan开始 |
boot_progress_pms_system_scan_start | system目录开始scan时间点 |
boot_progress_pms_data_scan_start | data目录开始scan时间点/system目录扫描耗时 |
boot_progress_pms_scan_end | 扫描结束时间点/data目录扫描耗时 |
boot_progress_pms_ready | PMS启动扫描包耗时 |
boot_progress_ams_ready | PMS后的系统服务启动时间 |
boot_progress_enable_screen | AMS启动完成后开始激活屏幕 |
sf_stop_bootanim | surfaceflinger结束开机动画 |
wm_boot_animation_done | 从enable_screen到animation_done包含壁纸和keyguard的绘制时间 |
注意,logcat只能看到上层启动后的log,即zygote启动后,开机期间kernel层的耗时无法通过logcat观察。
2.通过bootchart查看
待续