从熟悉入口出发
从 startActivity、setContentView 和一次触摸开始,追进 Android 系统内部。
看懂系统协作
同时标出进程、线程与调用边界,不把源码阅读变成类名清单。
用证据定位问题
把 logcat、dumpsys、Perfetto 和源码节点连成可复核的排障链。
你已经会写 App,接下来学什么?
当 startActivity()、setContentView() 或 getSystemService() 离开应用代码后,请求去了哪个 进程?由哪个线程执行?为什么系统需要 AMS、WMS 和 Binder?
AndroidFrameworkGuide 面向会写 Android App、刚开始接触 Framework 的开发者。这里从源码出发, 但不会一上来堆类名。每篇教程都尽量回答三个问题:请求从哪里开始、系统如何协作、出现异常时 应该检查什么证据。
第一次来:沿一条路线走进去
不需要先通读全部专题。先完成开始学习中的三阶段课程:
- 建立地图:分清系统层、源码目录、进程和线程。
- 看懂协作:认识 Handler、Binder、Context 和源码入口。
- 跟完真实链路:从
startActivity()一路追到 Activity 首帧与输入。
完成后,你应该能画出一次请求的调用边界,并用系统状态验证自己的判断。
带着问题来:从现象进入
先读这三篇
- Android Framework 到底是什么:建立系统层、进程和源码目录地图。
- Android 系统如何从按下电源走到桌面:看懂系统启动的交接链。
- Binder 是什么,Android 为什么需要它:理解系统服务协作的通信基础。
学完以后,你应该能做到
- 看到一段调用链时,标出当前进程、执行线程和跨边界方式。
- 从 App API 找到 Framework 客户端、系统服务和 Native/Kernel 入口。
- 用日志看历史事件,用 dumpsys 看当前状态,用 trace 看时间花在哪里。
- 区分源码已经证明的事实、设备观察、版本差异和个人推断。
精选专题
- 系统启动:从上电到 Launcher 的阶段地图。
- Binder 通信:从一次调用到驱动、线程池和死亡通知。
- AMS 生命周期:从启动请求到进程与 Activity 生命周期。
- WMS 窗口生命周期:从加窗到首帧、焦点、输入与移除。
- SurfaceFlinger:从 Surface 与 Buffer 到最终合成。
完整内容与成熟度说明见专题地图。项目仍在持续建设,核心专题会优先补充源码证据、 命令输出和真实排障案例。

