您的位置:首页 > 移动开发 > Android开发

[Android 系统源代码研究] SystemService启动

2016-03-29 23:52 651 查看
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: