AIW:从系统机制到性能排查,一本可以对照源码的 Android 电子书

AIW 是一本可以在线阅读、下载 EPUB、对照源码查机制的 Android 系统与性能电子书。 全书五部分、二十六章,从应用一路讲到 Framework、Native 和 Kernel,也讲怎样用 Perfetto 等工具把问题查下去。

如果你手上正有一个启动慢、滑动卡、ANR 或耗电问题,可以带着问题读;想补系统知识,也可以按目录往下走。网页版和电子书都能免费阅读:

这次把介绍更新到 2026 年 11 月的内容。书仍在 alpha 阶段,当前正文以 Android 17 / API 37 为最高确定性版本;英文完整正文计划在 v1.0 之后提供。

想把什么讲到一起

Android 的资料不缺。麻烦的是,一篇讲 Android 12 的源码,一篇讲某台设备上的现象,再一篇只告诉你某个 API 怎么用。单独看都能读懂,轮到自己排查时,还得重新确认它们能不能放在一起。

我想把系统机制、性能问题和工具放进同一套结构里:为什么会这样,代码走到哪里,工具上能看到什么,这个判断在哪些版本和条件下成立。

比如应用有渲染活动,不代表画面已经显示;CPU 使用率不高,不代表线程没有排队;内存紧张,也可能先表现为卡顿和后台重建。把现象直接翻译成原因,很容易找错要改的地方。

AIW 的全名是 Android Internal Wiki,中文书名是《Android 技术内幕:系统机制、性能优化与工具实战》。它适合已经有 Android 开发、系统服务或性能测试经验,想继续往下查的人。完整的 AOSP 开发经验不是前提,第一次接触应用开发的话,先有一个能跑起来的项目会更容易读。

五部分、二十六章,怎样挑着读

全书结构保留五条线。完整的小节目录以仓库的 SUMMARY 为准,不必从第一页读到最后一页才开始用。

部分 内容 读它能解决什么
系统运行机制,第 1---6 章 架构、渲染、输入、内存、CPU 调度与能耗、存储 I/O 先弄清对象、进程和线程之间的关系,知道等待发生在哪一层
性能问题与优化,第 7---13 章 流畅性、响应速度、ANR、内存、功耗、网络、渲染管线 把用户说的"卡、慢、不跟手"拆成可以继续查的系统行为
工具与方法论,第 14---17 章 Perfetto、其他分析工具、调查方法、APM 选择采集方式,读数据,写出能复查的判断
系统与厂商优化,第 18---19 章 AOSP 优化、OEM 与设备差异 区分平台机制与量产设备上的内核、HAL、固件和散热条件
应用性能实践,第 20---26 章 稳定性、启动、渲染、内存、I/O 与网络、功耗与包体积、可观测性 回到应用团队能改的代码,以及怎样观察上线后的结果

现在的目录里也能直接找到 Android 17 的 AVF / pKVM 隔离边界、ACK 6.18 的 BPF 可观测性、折叠屏显示切换,以及自动化性能测试与 CLI Agent 工作流。遇到这些问题,不必拿一篇旧版本的通用介绍硬套。

附录还有版本变化、命令速查、Perfetto 模板、分析检查清单、术语、推荐阅读和学习路径。临时要查命令或准备采集,可以从这些入口开始。

带着一个问题进去,比背目录更有用

启动慢,先分清慢在哪一段。 第 21 章看应用启动,第 1 章补进程与系统服务关系,第 14 章用 Perfetto 对照。进程创建、初始化、首帧和业务可用是不同时间点,只优化其中一段,未必能缩短用户真正等待的时间。

滑动不跟手,把输入和画面放到一起。 可以从第 3 章输入、第 7 章流畅性和第 13 章渲染管线交叉看。View、Compose、Flutter、WebView、Camera 和游戏的 buffer 生产路径并不相同。先确认是哪条管线,再判断是输入晚、应用产帧晚,还是合成与呈现晚。

内存占用没到 OOM,也值得继续查。 第 4 章讲系统机制,第 10 章讲内存性能,第 23 章回到应用实践。Java Heap、Native Heap、Bitmap、图形缓冲和换页,各自需要不同的证据。一个总内存数字解释不了这些区别。

线上只剩一句"用户说卡"。 第 17 章看 APM 怎么采集,第 26 章看应用怎样把证据留下来。Crash、ANR、启动、网络和存储的观测都有对应入口;线下再用第 14---16 章的方法,把记录和实际问题对上。

书内的机制图可以和文字一起看。下面这张来自渲染章节:同一时刻,主线程、RenderThread、GPU 和显示侧可能正在处理不同帧,读 trace 时需要按目标帧关联,不能沿一条竖线就把它们当成同一帧。

图为书内机制示意,不是设备实测时间线。原图见渲染章节配图。

这里没有一套"照做就能优化所有应用"的参数表。我更希望读者看完之后,能知道下一步该取什么数据,哪些判断现在还做不了。

版本和依据,读的时候就能查

机制说明会给出 AOSP 的类、方法或文件路径,方便回到同一份代码。当前平台基线是 android-17.0.0_r1,内核研究基线是 Android Common Kernel 的 android17-6.18-2026-06_r6。

固定基线解决的是"我们在讨论哪份代码"。它不表示每节都在 Android 17 真机验证过,也不表示升级到 Android 17 的设备都使用同一内核。厂商对调度、功耗、显示和后台管理的改动,仍要看具体机器。

工具章节同时交代数据能说明什么。trace 没采到的东西不能靠解释补出来,一条相关性也不能直接当成原因。有些机制可以从源码讲清楚,但性能收益还缺真机量化;这些地方只能按已有证据读,不能把文字完整当作验证完整。

书还会继续更新。如果发现正文和源码对不上,带上版本、源码路径和具体段落提 Issue 或 PR,就很容易定位。

在线查、离线读,或放进分析工作流

网页版适合临时查一节、沿目录跳转,支持搜索和浅色、深色主题。EPUB 适合放进阅读器,按自己的节奏往下读。当前每周发布电子书,2026 年 11 月 15 日的版本已在 Releases 提供;在线正文和下载版各有更新时间,不一定包含完全相同的最新改动。

AIW 还提供给 SmartPerfetto 使用的公开 Knowledge Pack:把二十六章正文做成可检索、带版本的知识快照。它适合在分析时回查机制与方法,不能代替当前 trace 的证据,也不意味着模型引用过书就验证了结论。普通读者直接看网页版或 EPUB 就够了。

几个项目可以这样搭配:

不需要把这些项目都装一遍。先解决手上的问题,再选缺的工具;完整导航在 Android Performance Ecosystem。

免费阅读,怎样使用和参与

正文与 EPUB 按 CC BY-NC-SA 4.0 提供:非商业转载、改编要署名,并保留相同许可。出版、上架销售、收费培训或把正文放进付费产品,需要另行取得书面授权,具体看 许可 和 商业授权说明。引用的 AOSP、Linux 和第三方代码保留各自许可,不能由书的内容许可替代。

欢迎纠错,也欢迎补充有版本、有出处、能复查的案例。新章节或大幅改写先开 Issue 讨论,当前主要精修现有二十六章。完整规则见 CONTRIBUTING。

GitHub 下载不方便的话,公众号 Android Performance 回复「电子书」「书」「AIW」或「Android Internals Wiki」,也能拿到下载链接。

如果正好有一个问题卡在系统机制上,先打开目录找一节读。哪一句说得不对,带着源码来改它。一本能在实际工作里反复查、也允许被纠正的书,对我来说比一本看起来什么都确定的书更有用。

相关推荐
三少爷的鞋22 分钟前
代码越来越便宜,判断力越来越贵:AI 时代的 Android 架构与协程避坑指南
android
Gracker2 小时前
SmartPerfetto 1.19.0:换过分析引擎之后,这次更新了什么
android
HQL_seven6 小时前
【Android】BroadcastReceiver 详解
android
_祝你今天愉快7 小时前
Paint Cavans高级绘制:[二] Paint-滤镜,XFERMODE
android
小乖写代码7 小时前
字段获取代码(Android) · Android Input Examples
android·whatsapp·账号注册
booboosui7 小时前
停一个活只有杀进程:界面上少了「说点要求」
android
传奇开心果编程10 小时前
【Flutter踩坑排雷】第28课:平台目录缺失与修复坑|`flutter create` 的“重建”与“覆盖”边界
android·flutter·ios·移动开发·跨平台·dart·声明式ui
longxibo19 小时前
【AIBIZ低代码平台:能长出业务系统的平台】
android·低代码·rxjava
AI_Gump1 天前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek