7-2: System Server启动过程中service的启动(数据结构)phase startBootstrapServices
2016-04-06 15:28:56 1 举报
在Android系统的启动过程中,System Server扮演着核心的角色。当System Server启动时,它会经历一个名为`startBootstrapServices`的阶段。这个阶段主要负责启动各种关键的系统服务。为了有效地管理和组织这些服务,Android使用了一种称为Binder的数据结构。Binder允许不同的进程之间进行通信和数据交换。在`startBootstrapServices`阶段,System Server会遍历一个预先定义的服务列表,并使用Binder机制逐个启动这些服务。这确保了系统中的关键组件能够有序地初始化,从而保证了整个系统的稳定运行。
作者其他创作
大纲/内容
mDisplayManagerService = mSystemServiceManager.startService(DisplayManagerService.class);
ActivityManagerService.LifeCycle
UserManagerService
PowerManagerService
permission
Context.DISPLAY_SERVICE
updateOomAdjLocked();
ServiceManager.java 传递给service manager.c 进程
processinfo
gfxinfo
kernel driver binder
ArrayList可变数组:mServices
onBootPhase()
另外一个ArrayMap 变量:sLocalServicesObjects作用是什么
ActivityManagerInternal
mActivityManagerService.setSystemProcess();
mSystemServiceManager.startService(LightsService.class);
Context.APP_OPS_SERVICE
BatteryStats.SERVICE_NAME
system server进程
PHASE_THIRD_PARTY_APPS_CAN_START (对不上暗号)PHASE_BOOT_COMPLETED (对不上暗号)
DisplayManagerInternal
在继续启动其它services之前,对上面的service调用其onBootPhase(PHASE_WAIT_FOR_DEFAULT_DISPLAY)
LightsService
cpuinfo
ActivityManagerService
meminfo
DisplayManagerService
PHASE_SYSTEM_SERVICES_READY (对不上暗号)
Installer installer = mSystemServiceManager.startService(Installer.class)
Context.ACTIVITY_SERVICE
在继续 之前,
mActivityManagerService = mSystemServiceManager.startService(ActivityManagerService.Lifecycle.class).getService
mPowerManagerService = mSystemServiceManager.startService(PowerManagerService.class);
PowerManagerInternal
mSystemServiceManager.startService(UserManagerService.LifeCycle.class);
PHASE_WAIT_FOR_DEFAULT_DISPLAY (执行)
dbinfo
? 数据如何写到driver中的?driver中,又是如何保存的?
InstallerConnection
SystemServiceManager
mSystemServiceManager.startBootPhase(SystemService.PHASE_WAIT_FOR_DEFAULT_DISPLAY);
Context.USER_SERVICE
ProcessStats.SERVICE_NAME
链表:svcInfo
LightsManager
Context.POWER_SERVICE
0 条评论
下一页