首页 > 技术 > 正文

耗时大半年,开源一本 Android 电子书《Android 技术内幕:系统机制、性能优化与工具实战》

2026-10-30  ·  阅读:375

Android 内部机制的资料,网上不缺。AOSP、官方文档、博客、论文、trace 讨论,想找都找得到。麻烦的是各说各的版本:这篇是 Android 12 的结论,那篇没写版本,再一篇是某台机器上的现象。

AIW 想补的就是这个缺口。全称 Android Internal Wiki,中文书名是《Android 工艺内幕:系统机制、表现优化与工具实战》,五部分二十六章,正文钉在 Android 17。仓库准备开源:

https://github.com/Gracker/android-internals-wiki

打开仓库能拿到的是二十六章正文、一份完整目录,和每周编一次的 EPUB。

这二十六章现在到了可以拿出来给人读的程度。读到哪一段和源码对不上,欢迎提 issue 或者 PR。

这本书想解决什么

做 Android 性能或者系统的人大概都遇到过:官方文档讲的是 API 和平台行为,博客讲的是某一次排查,源码解析贴的是一串调用关系。三种材料各有各的用处,但拼不出一条从App代码追到内核、每一步还能回源码核对的完整路径。

每一章尽量回答四件事:这个机制为什么存在、现在怎么跑、用什么工具观察、结论在哪些版本和条件下成立。

读者主要是这三类人:

  • 应用工程师:启动慢、滑动卡、ANR、内存抖动、功耗异常,想从App层追到平台层成因。
  • 系统工程师:需要把 Framework、Native、HAL、Kernel 放在同一个视角里看。
  • 性能工程师:需要一套稳定的知识框架,用来读 trace、判断瓶颈、解释优化收益和风险。

这本书不适合当入门课。Android 18 以后的结论书里也没有,正文停在 Android 17。

AIW 要做的是一套对照源码的中文整理

现在写到哪了

全书五部分、二十六章,外加少量附录。完整目录在仓库的 src/SUMMARY.md。下面把每一章讲什么列出来,挑和自己相关的那几章看就行。

第一部分:Android 系统运行机制

平台怎么把软件跑起来,画面、输入、内存、调度和存储分别在哪一层等待。

  • 第 1 章 操作系统架构全景:进程模型、Zygote、Binder、cgroup 和系统服务边界。慢启动、ANR 或 native 崩溃时,先确认代码跑在哪个进程、跨过哪条 IPC。
  • 第 2 章 渲染平台:从主线程、RenderThread、BufferQueue、SurfaceFlinger 到 HWC 和面板。掉帧、首帧晚、SurfaceView 错位,要先分清帧走哪条生产和合成路径。
  • 第 3 章 输入操作系统:点击无响应、滑动不跟手、返回动画晚一拍。帧率正常也不能证明输入及时到达App,要把事件和产生反馈的那一帧放在同一条时段线上。
  • 第 4 章 内存管理:GC、缺页、direct reclaim、zram、进程冻结和图形缓冲。OOM 只是其中一种结局,内存压力也会变成卡顿和后台重建。
  • 第 5 章 CPU 调度与能耗管理:可运行却排队、大小核放置、DVFS、温控和后台执行规定。只看 CPU 使用率分不清这些成因。
  • 第 6 章 存储与 I/O:page fault、fsync、块设备争用,以及共享存储上的 MediaProvider / FUSE。只看 Java 栈,容易把存储等待当成业务计算。

第二部分:实力问题与优化

用户能感觉到的卡、慢、无响应、耗电和网络差,分别对应哪类系统行为。

  • 第 7 章 流畅性:掉帧、输入延迟、合成降级和温控限制。相似的「卡」背后,要改的位置可能完全不同。
  • 第 8 章 响应速度:从操作到可见反馈或恢复可交互的时间。和流畅性分开:一个看首响,一个看连续帧间隔。
  • 第 9 章 ANR:平台判定App没有在时限内完成输入、广播或服务回调。机制、Kernel Trace 联合诊断和典型路径。
  • 第 10 章 内存性能:从软件表现视角看 OOM、频繁 GC、换页和图形内存。先分清攀升发生在哪类内存、谁持有、怎样变成可感知延迟。
  • 第 11 章 功耗:功耗速率和一段时间的耗电量。WakeLock、蓝牙扫描、后台执行和用户设置,时间窗口通常比卡顿更长。
  • 第 12 章 网络性能:请求进入网络栈之后的排队、DNS、连接复用、TLS 和 netd。
  • 第 13 章 渲染管线专题:View、SurfaceView、Vulkan、Compose、Flutter、WebView、Camera、视频 Overlay、游戏引擎和 XR。先确认谁生产 buffer、写入哪个 Surface、合成发生在哪一层。

第三部分:表现工具与途径论

怎么采集证据、读懂工具,以及怎样把一次调查写到能复查。

  • 第 14 章 Perfetto:把渲染、输入、调度、Binder、I/O 和功耗放到同一条时刻轴。方向是采到够用的数据,读懂 track / slice,并写成可复核的 SQL。
  • 第 15 章 其他分析工具:Android Studio Profiler、simpleperf、HPROF、dumpsys、Battery Historian、GPU capture、Winscope 和 eBPF。Perfetto 覆盖不了的证据形态在这里。
  • 第 16 章 办法论:现象怎么定义,现有证据能证明什么,App、平台和测试环境各作用哪一段,修复后怎么验证。
  • 第 17 章 APM 工具与性能监控生态:Firebase、Matrix、KOOM、LeakCanary、Benchmark 和崩溃 / ANR / 耗电采集机制。面向选型和实现,不替代第 14 到 16 章的线下分析。

第四部分:系统与厂商优化

平台和量产设备上还能改什么,以及不能把 AOSP 基线当成某台机器的行为。

  • 第 18 章 AOSP 性能优化:操作平台业务、编译调试、Kernel 6.18、AutoFDO、Profile 安装编译和开机耗时。面向可以改平台代码的人。
  • 第 19 章 OEM 与设备差异:Power HAL、SoC、游戏模式、Media Performance Class,以及 Private Space、车机等产品形态。量产设备会叠加内核、固件和散热差异。

第五部分:App表现实践

软件班底能改的启动、渲染、内存、I/O、功耗和线上观测。

本文由News整理发布,仅供参考。

123
评论加载中…

友情链接申请友链

联盟矩阵53