Android 11.0 Framework 核心原理与系统启动流程解析
学习 Framework 的重要性
深入理解 Android Framework 对于高级开发至关重要。在性能优化领域,如腾讯 Matrix 等监控框架的实现,涉及掉帧监控、函数插装、慢函数检测、ANR 监控及启动监控等功能,都需要对 Framework 底层机制有深刻理解。开发者需知晓如何利用反射调用特定类方法、如何定位函数插桩位置以及利用何种机制进行数据采集。
在企业技术面试中,随着 Android 开发者数量增加,筛选标准逐渐从应用层转向底层原理。考察重点包括 Android Framework 中各组件的运行原理,例如 Binder 通信机制、ServiceManager 的作用、进程间通信模型等。掌握这些知识有助于解决复杂问题并提升架构设计能力。
第一章:系统启动
第一节 - Android 系统架构
Android 系统架构自下而上分为 Linux Kernel、HAL、Runtime、Framework 和 Application 层。Framework 层作为中间件,提供了丰富的 API 供上层应用调用,同时屏蔽了底层硬件差异。
第二节 - Android 是怎么启动的
系统启动始于 Bootloader 加载内核,内核初始化硬件后启动 init 进程(PID 1)。Init 进程负责解析配置文件,启动关键服务,最终触发 Zygote 进程,进而启动 SystemServer 和应用进程。
第三节 - Android 11.0 系统启动之 init 进程
Init 是用户空间第一个进程,负责挂载文件系统、设置权限、启动其他守护进程。它通过读取 /init.rc 文件定义的服务配置来管理系统生命周期。
第四节 - Android 11.0 系统启动之 Zygote 进程
Zygote 是 Android 所有应用进程的孵化器。它预加载常用类和资源,通过 fork 方式快速创建新进程,显著降低应用启动时间。Zygote 还负责处理 Socket 监听以接收启动指令。
第五节 - Android 11.0 系统启动之 SystemServer 进程
SystemServer 由 Zygote fork 而来,负责启动核心系统服务。它运行在独立的进程中,包含 ActivityManagerService (AMS)、WindowManagerService (WMS) 等关键服务。
第六节 - Android 11.0 系统服务之 ActivityManagerService-AMS 启动流程
AMS 是 Framework 的核心服务之一,负责管理所有应用程序的活动、任务栈和服务。其启动流程涉及 Binder 注册、系统属性检查及状态机初始化。
第七节 - Android 11.0 系统启动之 Launcher(桌面) 启动流程
Launcher 作为默认主屏幕应用,在 SystemServer 启动完成后被激活。它负责显示应用图标列表,处理用户点击事件并启动目标应用进程。
第八节 - Android 11.0 应用进程创建过程以及 Zygote 的 fork 流程
当用户点击应用图标时,AMS 通知 Zygote 创建新进程。Zygote 复制自身内存空间,执行 preload 操作,然后执行应用的 main 方法,完成进程初始化。
第九节 - Android 11.0 PackageManagerService(一)工作原理及启动流程
PMS 负责管理已安装的应用包信息。它在 SystemServer 阶段启动,扫描 /data/app 目录,解析 AndroidManifest.xml,构建包名到路径的映射表。
第十节 - Android 11.0 PackageManagerService-APK 安装流程
安装 APK 涉及校验签名、解析资源、拷贝文件至指定目录、更新 PMS 数据库以及广播安装完成事件。Framework 层确保安装过程的原子性和安全性。

