Android开机简要流程如下
其中部分关键过程的打印
Bootloader start count
LK 启动(Little Kernel)
Bootloader end count
LK 结束
Kernel MPM timestamp
bootloader运行完成
|boot_progress_start|
系统进入用户空间,标志着kernel启动完成
|boot_progress_preload_start|
Zygote启动
|boot_progress_preload_end|
Zygote结束
|boot_progress_system_run|
SystemServer ready,开始启动Android系统服务,如PMS,APMS等
|boot_progress_pms_start|
PMS开始扫描安装的应用
|boot_progress_pms_system_scan_start|
PMS先行扫描/system目录下的安装包
|boot_progress_pms_data_scan_start|
PMS扫描/data目录下的安装包
|boot_progress_pms_scan_end|
PMS扫描结束
|boot_progress_pms_ready|
PMS就绪
|boot_progress_ams_ready|
AMS就绪
|boot_progress_enable_screen|
AMS启动完成后开始激活屏幕,从此以后屏幕才能响应用户的触摸,它在WindowManagerService发出退出开机动画的时间节点之前,而真正退出开机动画还会花费少许时间,具体依赖animation zip 包中的desc.txt。wm_boot_animation_done才是用户感知到的动画结束时间节点
|sf_stop_bootanim|
SF设置service.bootanim.exit属性值为1,标志系统要结束开机动画了,可以用来跟踪开机动画结尾部分消耗的时间
|wm_boot_animation_done|
开机动画结束,这一步用户能直观感受到开机结束
tips:假如系统有多次重启,通过判断Bootloader start count和boot_progress_preload_start的时间戳差值,可以大致确定是整机重启还是上层重启
其中部分关键过程的打印
Bootloader start count
LK 启动(Little Kernel)
Bootloader end count
LK 结束
Kernel MPM timestamp
bootloader运行完成
|boot_progress_start|
系统进入用户空间,标志着kernel启动完成
|boot_progress_preload_start|
Zygote启动
|boot_progress_preload_end|
Zygote结束
|boot_progress_system_run|
SystemServer ready,开始启动Android系统服务,如PMS,APMS等
|boot_progress_pms_start|
PMS开始扫描安装的应用
|boot_progress_pms_system_scan_start|
PMS先行扫描/system目录下的安装包
|boot_progress_pms_data_scan_start|
PMS扫描/data目录下的安装包
|boot_progress_pms_scan_end|
PMS扫描结束
|boot_progress_pms_ready|
PMS就绪
|boot_progress_ams_ready|
AMS就绪
|boot_progress_enable_screen|
AMS启动完成后开始激活屏幕,从此以后屏幕才能响应用户的触摸,它在WindowManagerService发出退出开机动画的时间节点之前,而真正退出开机动画还会花费少许时间,具体依赖animation zip 包中的desc.txt。wm_boot_animation_done才是用户感知到的动画结束时间节点
|sf_stop_bootanim|
SF设置service.bootanim.exit属性值为1,标志系统要结束开机动画了,可以用来跟踪开机动画结尾部分消耗的时间
|wm_boot_animation_done|
开机动画结束,这一步用户能直观感受到开机结束
tips:假如系统有多次重启,通过判断Bootloader start count和boot_progress_preload_start的时间戳差值,可以大致确定是整机重启还是上层重启