基于Android 6.0 源码

下面主要是从 Framework 层开始分析 Android 的启动过程,ZygoteInit.main() 是系统调用的第一个 Java 函数,这里是 c 到 java 的入口,分析从这里开始,整个流程如下:

android_start

Ps:

  1. Zygote 进程是Android系统的首个Java进程,Zygote是所有Java进程的父进程,init 进程 fork 出 Zygote进程()。
  2. System Server是Zygote孵化的第一个进程,也是上层framework的运行载体,System Server进程:负责启动和管理整个Java framework,包含ActivityManager,PowerManager等服务。System Server进程由 Zygote进程fork出来。
  3. Zygote进程接下来会孵化出的第一个App进程是Launcher,这是用户看到的桌面App;Zygote进程还会创建Browser,Phone,Email等App进程,每个App至少运行在一个进程上。 所有的App进程都是由Zygote进程fork生成的。

附录:

服务分类

分类1

  1. 引导服务:ActivityManagerService、PowerManagerService、LightsService、DisplayManagerService、PackageManagerService、UserManagerService、SensorService共7项服务;
  2. 核心服务:BatteryService、UsageStatsService、WebViewUpdateService共3项服务;
  3. 其他服务:AlarmManagerService、VibratorService等共70多项服务。

分类2

  1. 重量级服务:ActivityManagerService、PackageManagerService、WindowManagerService
  2. 功耗相关:PowerManagerService、BatteryService、BatteryStatsService、DreamManagerService
  3. 统计调度相关:DropBoxManagerService、SamplingProfilerService、UsageStatsService、DiskStatsService、SchedulingPolicyService、DeviceStorageMonitorService、AlarmManagerService、DeviceIdleController、DockObserver、ThermalObserver、JobSchedulerService、AccessibilityManagerService
  4. UI相关:DisplayManagerService、LightsService、GraphicsStatsService、StatusBarManagerService、NotificationManagerService、WallpaperManagerService、UiModeManagerService、AppWidgetService、LauncherAppsService、TextServicesManagerService、ContentService、LockSettingsService、InputManagerService、InputMethodManagerServiceMountService、FingerprintService、TvInputManagerService
  5. 网络相关:NetworkManagementService、NetworkScoreService、NetworkStatsService、NetworkPolicyManagerService、ConnectivityService、BluetoothService、WifiP2pService、WifiService、WifiScanningService、EthernetService、WebViewUpdateService
  6. Media相关:AudioService、MediaRouterService、VoiceInteractionManagerService、MediaProjectionManagerService、MediaSessionService、
  7. 设备相关:DevicePolicyManagerService、PrintManagerService、BackupManagerService、UserManagerService、AccountManagerService、TrustManagerService、SensorService、LocationManagerService、VibratorService、CountryDetectorService、GestureLauncherService、PersistentDataBlockService、ClipboardService
  8. 其他:TelephonyRegistry、TelecomLoaderService、NsdService、UpdateLockService、SerialService、SearchManagerService、CommonTimeManagementService、AssetAtlasService、ConsumerIrService、MidiServiceCameraService、TwilightService、RestrictionsManagerService、MmsServiceBroker、RttService、UsbService。

参考 Link: