[灌水] 簡單聊下 SystemServer 都干了些什么
[灌水] 簡單聊下 SystemServer 都干了些什么
system_server 進程作為 Android 的操作系統基礎能力提供者,其本身啟動的時候需要進行一些處理才能保證 Android 系統的完整運行。本文簡單灌水式說明一下 system_server 初始化的時候執行的操作,總共分為三個部分。
第一步:創建 system_server 進程必須的輔助對象、上下文環境等。
例如通過 ActivityThread 創建 context / Application / Instrumentation
第二步:初始化上下文信息,初始化必備的輔助對象。
- 設置系統信息 (這部分信息會被各種 service 使用)
- 整體的 重啟信息、啟動時間 等相關信息
- 設備默認 區域、語言、城市 等信息
- 設置工具類信息 (這部分設置會影響各個 service )
- 設置 Environment 、 Binder 、Parcel 等的基本屬性
- 初始化一個 serviceManager 對象,用于管理下面要打開的其他 service
第三步:啟動其他的 services
這部分的 service 總共分為三類,bootstrp(鞋帶,表示這是第一步) 、核心 service 以及其他的雜項功能。分別簡單描述如下:
-
bootstrapService
- system-設備 一側 相關的: WatchDog / Recovery / PowerManagerService / PackageManagerService /
- 其他app - 平臺 一側相關的:AMS
- 這些 service 之間互相關系的初始化(加入到 watchDog 等)
-
coreService
- 一些系統狀況監測服務,例如 BatteryService / binder stats / looper stats
-
otherService 雜項 service
- 設備硬件服務 : 傳感器 、vr / inputManager /
- 系統軟件服務 : accountManager / 升級 、backup / 設備時間、時區、國家、位置 / 搜索
- 外設 : 打印機 、 HDMI 、 TV 、 媒體源 、 TV-remote 、
- 系統桌面 : 快捷方式 、 launcher 、 壁紙
- 代碼處理 : adb 、
- 手表??處理 :
- APP 功能 : 粘貼板 、 NotificationManager 、
- 安全 & 識別 : 臉部識別 、虹膜 、 指紋 、 聲音識別 、攝像頭前的手勢處理
- 藍牙網絡 :藍牙 / 網絡檢測、適配、狀態監控 / wifiAware / wifi-rtt / wifip2p / ethernet / connectivity /
- WMS
最后會初始化各個 service 之間的交互。
浙公網安備 33010602011771號