SystemServer是由ZygoteInit Fork()出的第二个进程。
1. 在SystemServer.java里,首先会去创建SystemServer对象。
2. 在run里去实现相关的初始化工作。
a.初始化系统时间
b.设置默认语言系统
c. 设置VMRuntime属性值和初始化VMRuntime相关设置
d. 创建System上下文createSystemContext
e. 创建SystemServiceManager对象mSystemServiceManager
f. 重要的服务启动
g. 启动什么服务呢,请继续看:
startBootstrapServices()启动mActivityManagerService,mPowerManagerService,LightsService,DisplayManagerService,mPackageManagerService,startSensorService()等。
startCoreServices()启动BatteryService,UsageStatsService,LocalServices,WebViewUpdateService等
startOtherServices()启动更多的其他重要度没有之前的高的服务。AccountManagerService,ContentService,VibratorService,IAlarmManager,IMountService,NetworkManagementService,NetworkStatsService,NetworkPolicyManagerService,ConnectivityService,NetworkScoreService,NsdService,WindowManagerService,UsbService,SerialService ,NetworkTimeUpdateService,CommonTimeManagementService,InputManagerService,TelephonyRegistry,ConsumerIrService,AudioService,MmsServiceBroker,EntropyMixer,CameraService,StatusBarManagerService,INotificationManager,InputMethodManagerService,WallpaperManagerService,LocationManagerService,CountryDetectorService,TextServicesManagerService,LockSettingsService,MediaRouterService,AssetAtlasService,LauncherAppsService,等等
h.然后告知某些服务,systemReady。
i. 然后启动SystemUiService, Watchdog,
最终进入Launcher。