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