系统原理
2026/9/14大约 5 分钟
系统原理
深入 Android 系统底层,理解机制背后的设计。
模块
| 模块 | 说明 | 入口 |
|---|---|---|
| Binder | 跨进程通信核心 | Binder |
| AMS / WMS | 系统核心服务 | AMS / WMS |
| 启动流程 | 系统与应用启动 | 启动流程 |
| APK | 打包与签名 | APK |
| ART / DEX | 运行时与类加载 | ART / DEX |
| 操作系统 | 操作系统与 IPC | 操作系统 |
| 输入系统 | 输入事件读取与分发 | 输入系统 |
| 电源与功耗 | 电源管理 / WakeLock / Doze | 电源与功耗 |
| 网络与连接 | WiFi / 蓝牙 / 网络框架 | 网络与连接 |
| 存储系统 | vold / 分区 / 应用存储 | 存储系统 |
| 音频系统 | AudioFlinger / 音频焦点 | 音频系统 |
| 图形显示系统 | SurfaceFlinger / VSYNC / HWC | 图形显示系统 |
| 安全体系 | 沙箱 / 权限 / 加密 / 启动安全 | 安全体系 |
| HAL 硬件抽象层 | Treble / HIDL / VINTF | HAL 硬件抽象层 |
知识框架
Linux 内核(进程/内存/驱动)
↑
Android 系统服务(AMS / WMS / PMS)
↑
Binder IPC(进程通信骨架)
↑
应用框架层(四大组件、View)全部文章导航
Binder 机制
- Binder 跨进程通信机制详解:驱动 / 代理 / 流程
- Binder 驱动层深入:binder_proc / mmap / BC_TRANSACTION
- AIDL 深入解析:Stub / Proxy / 双向通信
- Parcelable 序列化:与 Serializable 对比
- IPC 方式对比:Binder / Socket / Messenger
- Binder 线程池与并发模型:binder_thread / 线程池上限 / oneway
- ServiceManager 深入解析:svclist / 服务注册与查询
AMS / WMS
- AMS 与 Activity 启动:AMS 调度流程
- WMS 窗口管理:窗口层级 / 添加删除
- PMS 包管理机制:扫描解析 / 安装 / 权限
- WMS 触摸事件分发深入:InputDispatcher / 命中测试
- Android 进程优先级与回收:oom_adj / LMK / 保活
- 广播机制底层原理:AMS 分发 / 有序广播 / 8.0 限制
- ContentProvider 底层原理:Provider 启动 / 跨进程访问
启动流程
- 系统启动流程:Bootloader → init → Zygote
- 应用启动流程:Launcher → AMS → ActivityThread
- Zygote 进程深入:预加载 / fork / Socket 孵化
- init 进程与 init.rc 深入:init.rc / Service / 守护
- 属性系统 Property Service:共享内存 / getprop / setprop
- SystemServer 启动与系统服务注册:服务启动 / Watchdog
APK 打包与签名
- APK 打包流程与签名机制:AAPT / D8 / 签名 v1-v3
- APK 签名与校验机制:v1-v4 / 密钥轮换 / 多渠道
- 多渠道打包
- APK 安装流程与原理:PackageInstaller / dex2oat / 安装器
- APK 加固与安全防护:混淆 / 加壳 / 反调试
- AAPT2 资源编译与打包:compile / link / resources.arsc
- AssetManager 资源加载机制:资源查找 / 配置匹配 / 换肤
ART / DEX / 类加载
- ART 运行时与 GC:AOT / JIT / 回收器
- ART 编译优化深入:Profile 引导 / dex2oat
- ART 垃圾回收机制
- 类加载器与双亲委托:DexClassLoader / PathClassLoader
- DEX 文件格式
- ART 内存模型与对象布局:对象头 / 压缩引用 / GC Roots
- JNI 与 ART 交互机制:JNIEnv / 引用管理 / 性能优化
- 隐藏 API 限制机制:黑白灰名单 / 反射检测 / 兼容
操作系统
- 操作系统核心概念:进程 / 线程 / 内存
- Linux 内存管理深入:虚拟内存 / oom_adj / LMK
- 线程同步与 IPC:锁 / 信号量 / Linux IPC
- Linux 进程调度机制:CFS / nice / 优先级映射
- cgroup 与低内存回收:cpuset / lmkd / 进程冻结
- SELinux 与 Android 安全:MAC / policy / avc denied
输入系统
- 输入系统整体架构:IMS / EventHub / InputDispatcher 链路
- InputReader 事件读取与加工:触摸聚合 / 键位映射 / 设备配置
- InputDispatcher 分发策略:分发状态机 / 输入 ANR / 排查
电源与功耗
- 电源管理架构:PMS / 电源状态机 / 亮灭屏
- WakeLock 与唤醒机制:类型 / 引用计数 / 泄露排查
- Doze 模式与电池优化:状态机 / App Standby / 白名单
网络与连接
- 网络连接架构:ConnectivityService / NetworkAgent / 评分切换
- WiFi 框架与连接流程:WifiService / wpa_supplicant / 四步握手
- 蓝牙框架与协议栈:GATT / 配对 / 权限
存储系统
- 存储系统架构:vold / StorageManagerService / FUSE / FBE
- 分区布局与文件系统:动态分区 / A/B / ext4 / f2fs / dm-verity
- 应用存储与分区存储:Scoped Storage / MediaStore / SAF
音频系统
- 音频系统架构:AudioTrack / AudioFlinger / AudioPolicy / HAL
- AudioFlinger 混音与输出:共享内存 / 混音线程 / 低延迟
- 音频焦点与策略:焦点类型 / LOSS 响应 / 流类型
图形显示系统
- Android 图形架构:渲染 → BufferQueue → 合成 → 显示
- SurfaceFlinger 合成机制:Layer / Transaction / 掉帧
- VSYNC 与 Choreographer:帧调度 / 16.6ms / 掉帧检测
- HWC 硬件合成与显示:Composer HAL / Overlay / 多屏
安全体系
- Android 安全架构:沙箱 / 权限 / 签名 / 加密四层
- Keystore 与密钥管理:硬件密钥 / TEE / 密钥约束
- Verified Boot 与启动安全:AVB / dm-verity / 信任链
HAL 硬件抽象层
- HAL 架构与 Treble:HAL 演进 / 绑定式与直通式
- HIDL 接口与实现:.hal 接口 / HwBinder / 服务注册
- VINTF 兼容性验证:manifest / matrix / 启动校验