图清晰地展示了应用启动的完整流程,它涉及多个进程(Launcher、AMS、Zygote、新应用进程)之间的协同工作:
🔍 流程详解
下面我们来分解图中的每一个关键步骤。
阶段一:Launcher 发起请求(用户交互层)
- 1.
用户点击图标:Launcher(桌面本身也是一个App)捕获点击事件。
- 2.
准备 Intent:Launcher 根据点击的图标,封装一个明确的 Intent,包含了要启动的 App 的主 Activity 信息(
action
为ACTION_MAIN
,category
为CATEGORY_LAUNCHER
)。 - 3.
发起 IPC 调用:Launcher 进程通过 Binder IPC 调用
ActivityManagerService(AMS)
的startActivity
方法。这是一个跨进程调用(IPC)。
阶段二:AMS 决策与调度(系统管理层)
- 1.
AMS 处理请求:
ActivityManagerService
(运行在system