SystemServer启动过程
1.设置时间、时区、语言等;
2.startBootstrapServices:读配置,启动开机必备的服务:AMS、PMS等等
startCoreServices:其他重要服务,DropBox、电池、应用使用情况服务等
startOtherServices:通知、蓝牙、wifi等设备相关服务。
3.在AMS的systemReady 中调用startHomeActivityLocked 启动launcher。
4.Launcher启动后,会在ActivityThread.handleResumeActivity中通过Idler 最终通过 finishBooting(里面设置sys.boot_completed 属性为1) 调用UserController.sendBootCompleted。这里涉及各种开机相关广播,在对credential-encrypted storage解锁后,BOOT_COMPLETED在UserController.finishUserUnlockedCompleted 中发出。
几种开机广播
ACTION_LOCKED_BOOT_COMPLETED 表示解锁之前的Direct Boot Mode 启动完成。
ACTION_BOOT_COMPLETED 我们平时监听的开机广播
参考资料: