Android 5.0 SystemServer--->Android入口
2015-03-25 11:35
351 查看
main()--->new SystemServer.run()
run方法:
1、矫正时间
2、启动性能分析SamplingProfilerIntegration,开机后一小时执行一次
3、设置参数:获取更多内存,确保SystemServer一直有效,定义手势属性,设置UserRequired为true,确保binder的优先执行,准备Looper
4、加载android_servers库,并初始化nativeInit()
5、检查上次是否意外关机
6、初始化SystemContext
7、初始化类SystemServiceManager(用来启动服务),并将其对象加到LocalServices中
8、启动引导服务startBootstrapServices(),包括安装器、MessageMonitorService,ActivityManagerService,PowerManagerService,DisplayManagerService,RecoveryManagerService,PackageManagerService,UserManagerService,初始化AttributeCache(维护了一个Package的弱HashMap)
启动核心服务startCoreServices(),包括LightsService,BatteryService,UsageStatsService,WebViewUpdateService
启动其他服务startOtherServices(),包括启动SystemUIService,AccountManagerService,ContentService,VibratorService,MountService(USB挂载),NetworkManagementService,NetworkStatsService,NetworkPolicyManagerService,ConnectivityService,NetworkScoreService,NsdService,WindowManagerService,BluetoothManagerService,UsbService,SerialService,NetworkTimeUpdateService,CommonTimeManagementService,InputManagerService,TelephonyRegistry,ConsumerIrService,AudioService,MmsServiceBroker,StatusBarManagerService,INotificationManager,InputMethodManagerService,WallpaperManagerService,LocationManagerService,CountryDetectorService,TextServicesManagerService,LockSettingsService,PerfMgrStateNotifier,IPerfServiceManager,AssetAtlasService,MediaRouterService等,还有很多,通过SystemServiceManager.startService启动的都是。
run方法:
1、矫正时间
2、启动性能分析SamplingProfilerIntegration,开机后一小时执行一次
3、设置参数:获取更多内存,确保SystemServer一直有效,定义手势属性,设置UserRequired为true,确保binder的优先执行,准备Looper
4、加载android_servers库,并初始化nativeInit()
5、检查上次是否意外关机
6、初始化SystemContext
7、初始化类SystemServiceManager(用来启动服务),并将其对象加到LocalServices中
8、启动引导服务startBootstrapServices(),包括安装器、MessageMonitorService,ActivityManagerService,PowerManagerService,DisplayManagerService,RecoveryManagerService,PackageManagerService,UserManagerService,初始化AttributeCache(维护了一个Package的弱HashMap)
启动核心服务startCoreServices(),包括LightsService,BatteryService,UsageStatsService,WebViewUpdateService
启动其他服务startOtherServices(),包括启动SystemUIService,AccountManagerService,ContentService,VibratorService,MountService(USB挂载),NetworkManagementService,NetworkStatsService,NetworkPolicyManagerService,ConnectivityService,NetworkScoreService,NsdService,WindowManagerService,BluetoothManagerService,UsbService,SerialService,NetworkTimeUpdateService,CommonTimeManagementService,InputManagerService,TelephonyRegistry,ConsumerIrService,AudioService,MmsServiceBroker,StatusBarManagerService,INotificationManager,InputMethodManagerService,WallpaperManagerService,LocationManagerService,CountryDetectorService,TextServicesManagerService,LockSettingsService,PerfMgrStateNotifier,IPerfServiceManager,AssetAtlasService,MediaRouterService等,还有很多,通过SystemServiceManager.startService启动的都是。
相关文章推荐
- android源码解析之(九)-->SystemServer进程启动流程
- <为知更新>Android下一个apk安装多个程序入口图标
- zygote-->system_server
- 【Android】启动过程:Bootloader->System/Recovery
- Android 5.0内核和源代码学习(3)——SystemServer启动了什么服务?
- Android WITH_DEXPREOPT与PRODUCT_BOOT_JARS & PRODUCT_SYSTEM_SERVER_JARS
- 使用adb sideload 本地OTA升级Nexus 5(Android 5.0 -> Android 5.0.1)
- Android源码解析之(九)-->SystemServer进程启动流程
- Java-->Android 直连 Ms Sql Server 2008数据库
- 我的Android进阶之旅------>怎样解决Android 5.0中出现的警告: Service Intent must be explicit:
- WLS Exception: <BEA-149132> <Split-dir application HRSystem can only be deployed to the Admin Server
- 【Android】init -> Zygote(app_main) -> SystemServer(SystemServer.main)/AppProcess(ActivityThread.main)
- Android系统启动分析(Init->Zygote->SystemServer->Home activity)
- Android ApiDemos示例解析(45):App->Text-To-Speech
- java/android的Socket&&ServerSocket
- Android 编译命令 make j8 2>&1 | tee build.log 解释
- Android下通过root实现对system_server中binder的ioctl调用拦截
- <Android>入门的一点知识
- Linux 安装SVN Server<转>
- 读书笔记: optimizing program performance<computer system a programmer perspective>