前言
阅读安卓源码心得总结
【知识点】SystemServer 与 SystemService、SystemServiceManager 的关系
【SystemServer】:是系统所有服务起航的地方,一般自己添加的服务也需要添加在这里启动
【SystemService】:系统服务一般需要继承实现的类
【SystemServiceManager】: 是在 SystemServer 中用来管理系统服务的类,他有一个 SystemService 链表
保存了系统服务。
【应用举例】:
public final class SystemServer
{
...
///////////////////////////////////////////////////////////////////////////////
// 一、创建一个 SystemServiceManager 管理系统服务
mSystemServiceManager = new SystemServiceManager(mSystemContext);
...
////////////////////////////////////////////////////////////////////////////////
// 二、启动系统服务,并添加到 SystemServiceManager 中的 SystemService 链表中进行管理
mActivityManagerService = mSystemServiceManager.startService(ActivityManagerService.Lifecycle.class).getService();
mPowerManagerService = mSystemServiceManager.startService(PowerManagerService.class);
mSystemServiceManager.startService(BluetoothService.class);
...
////////////////////////////////////////////////////////////////////////////////
// 三、真正启动系统服务:调用系统服务覆写的 onBootPhase 接口
mSystemServiceManager.startBootPhase(SystemService.PHASE_WAIT_FOR_DEFAULT_DISPLAY);
...
}