[灌水] 简单聊下 SystemServer 都干了些什么

[灌水] 简单聊下 SystemServer 都干了些什么

system_server 进程作为 Android 的操作系统基础能力提供者,其本身启动的时候需要进行一些处理才能保证 Android 系统的完整运行。本文简单灌水式说明一下 system_server 初始化的时候执行的操作,总共分为三个部分。

第一步:创建 system_server 进程必须的辅助对象、上下文环境等。

例如通过 ActivityThread 创建 context / Application / Instrumentation

第二步:初始化上下文信息,初始化必备的辅助对象。

  1. 设置系统信息 (这部分信息会被各种 service 使用)
    1. 整体的 重启信息、启动时间 等相关信息
    2. 设备默认 区域、语言、城市 等信息
  2. 设置工具类信息 (这部分设置会影响各个 service )
    1. 设置 Environment 、 Binder 、Parcel 等的基本属性
  3. 初始化一个 serviceManager 对象,用于管理下面要打开的其他 service

第三步:启动其他的 services

这部分的 service 总共分为三类,bootstrp(鞋带,表示这是第一步) 、核心 service 以及其他的杂项功能。分别简单描述如下:

  1. bootstrapService

    1. system-设备 一侧 相关的: WatchDog / Recovery / PowerManagerService / PackageManagerService /
    2. 其他app - 平台 一侧相关的:AMS
    3. 这些 service 之间互相关系的初始化(加入到 watchDog 等)
  2. coreService

    1. 一些系统状况监测服务,例如 BatteryService / binder stats / looper stats
  3. otherService 杂项 service

    1. 设备硬件服务 : 传感器 、vr / inputManager /
    2. 系统软件服务 : accountManager / 升级 、backup / 设备时间、时区、国家、位置 / 搜索
    3. 外设 : 打印机 、 HDMI 、 TV 、 媒体源 、 TV-remote 、
    4. 系统桌面 : 快捷方式 、 launcher 、 壁纸
    5. 代码处理 : adb 、
    6. 手表⌚️处理 :
    7. APP 功能 : 粘贴板 、 NotificationManager 、
    8. 安全 & 识别 : 脸部识别 、虹膜 、 指纹 、 声音识别 、摄像头前的手势处理
    9. 蓝牙网络 :蓝牙 / 网络检测、适配、状态监控 / wifiAware / wifi-rtt / wifip2p / ethernet / connectivity /
    10. WMS

    最后会初始化各个 service 之间的交互。

posted @ 2022-01-09 22:05  wkmcyz  阅读(101)  评论(0编辑  收藏  举报