前言
閱讀安卓源碼心得總結
【知識點】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);
...
}