Android launcher 分析
SystemServer.java (frameworks/base/services/java/com/android/server) 中启动系统各种 services。 处理各种先后顺序和依赖关系。
BootstrapServices
- Installer
- ActivityManagerService (ActivityManagerService.Lifecycle)
- PowerManagerService
- LightsService
- DisplayManagerService
- PackageManagerService
- UserManagerService
- ActivityManagerService.setSystemProcess()
- 各种系统进程 activity_service, process_service, meminfo, gfxinfo, dbinfo, cpu, permission, process, etc
- startSensorService (native call, android_servers)
- frameworks/native/services/sensorservice
通过 SystemServiceManager.java 启动 SystemService。
CoreServices
- BatteryService
- UsageStatsService
- ActivityManagerService.setUsageStatusManager(UsageStatsManagerInternal)
- WebViewUpdateService
OtherServices
ActivityManagerService
先启动 ServiceThread 启动时获取 ActiveServices 和 ProviderMap
等待 systemReady
并调用 startHomeActivityLocked
mStackSupervisor.resumeTopActivitiesLocked