外观
如何理解一次 Activity 冷启动从点击图标到显示界面经过哪些阶段?
标准回答
Launcher 发出启动请求,通过 Instrumentation 和 Binder 进入 ATMS。系统解析目标组件,检查权限与启动限制,根据启动模式选择任务和目标 Display,并协调已有 Activity 的状态。如果目标进程不存在,AMS 的进程管理路径向 Zygote 请求创建进程。子进程进入 ActivityThread.main,建立主线程 Looper 并向系统注册。系统发送应用绑定和 Activity 启动事务,应用完成 Application 与相关 Provider 初始化,创建 Activity 并执行生命周期。窗口被添加到 WMS 后,ViewRootImpl 调度首轮布局绘制,应用提交缓冲区,最终由 SurfaceFlinger 与 HWC 完成合成和显示。
延伸追问
如果进程已经存在,进程创建和应用绑定阶段可以省略。旧版本把更多 Activity 管理职责放在 AMS,具体类名和调用顺序要结合目标分支。
内容来源
- Android Framework 知识手册 · 原条目
1-2