EN

一本讲 Android 流畅性的书,应该有什么内容?

字数统计: 3.4k阅读时长: 12 min
2021/10/27
loading

最近读了一本新书:《打造流畅的 Android App》,京东链接:https://item.jd.com/10035215362170.html 。因为书名所以买了这本书,读完之后觉得有必要写一篇文章,让还没有买此书的同学了解一下

我个人的建议是:如果你是个老鸟,不建议买,这本书里面没有介绍太多原理性的东西,对于 Android 流畅性也没有一个比较全面的介绍;如果你是新手,这本书用来当做开阔视野 + 查漏补缺还可以,想更深入的了解 Android 流畅度还是差了点东西

之所以我会这么建议,是因为这本书确实没有讲太多性能或者流畅度相关的东西,也没有比较深入的原理部分,篇幅更多在讲静态代码审查、AS Profiler 的使用、App 架构、保活、网络性能优化、APK 大小优化、App 耗电等,内容也不深,浅尝辄止

阅读说明(2026-10 核查):本文是 2021 年的读书评价和写书提纲,个人感受保留。书单、购买链接和微信读书收录情况均是当时的记录,不代表今天仍在售或仍可阅读;下面修正流畅性分类,并补充工具和系统版本边界。

打造

内容介绍

简单介绍一下这本书的内容,其章节如下

  1. 概述 :简单介绍为何要做性能优化,以及 Android Studio 的配置
  2. 静态代码审查 :大篇幅讲了各种静态代码审查工具,比如 Android Lint 、CheckStyle、SpotBugs、PMD 等,除了 Lint 其他的我接触不多,也算是查漏补缺了
  3. 使用 Android Profiler 优化性能 :主要讲了 AS Profiler 工具里面的 CPU Profiler、Memory Profiler、Network Profiler ,这里主要重点是工具的使用,大概性地介绍了一下
  4. 高质量的 App 从架构开始:主要是架构原则、MVC、MVP、MVVM 这些
  5. 优雅地保活 App :简单介绍了下保活相关的技术
  6. 网络性能优化专题 :网络交互与多线程 + 海量数据传输优化
  7. 优化 APK 体积 :老生常谈的 APK 大小优化,多渠道打包 + 优化资源文件 + 代码混淆
  8. App 耗电及 Crash 体验优化:简单介绍了一下

从上面章节标题大家也可以看到,跟流畅性相关的内容比较少,内容相对会比较杂一些,感兴趣的可以买一本看看

我认为一本讲流畅性的书,应该有什么?

如果让我写这么一本书,我肯定是写不来的,非常钦佩能出书的技术小伙伴,给作者点个赞。

不过这并不妨碍我嘴炮打个山响(I am good at it):所以我觉得如果让我来写这本书,我会加入下面这些内容,确保大家通过这本书,就可以深入理解 Android 的流畅性原理,且可以熟练使用各种工具来分析所遇到的流畅性问题

讨论 Android 性能时,卡顿(流畅性)、响应速度、ANR 经常一起出现,但它们不是按严重程度划分的同一种问题。卡顿关注帧是否按预期节奏呈现,响应速度关注从用户操作到可见结果的延迟,ANR 则是系统在特定场景下检测到超时;不同 ANR 类型的触发条件和超时规则也不同。主线程阻塞等原因可能同时影响三者,但不能从“掉帧很多”直接推出 ANR,也不能把所有响应慢都当成渲染问题。本文把它们合称广义的“流畅性”,只是为了组织章节;面对用户反馈,仍要先确认具体症状和测量口径。可参考官方的渲染性能说明和 ANR 分类与诊断。

所以我设想的章节应该包含下面的内容

  1. 第一章:Android 流畅性概述:这一章主要会讲性能相关的一些概念,包括从用户角度、开发角度、测试角度、AOSP 的角度、硬件角度等,讲述流畅性的一些概念。这一点需要先说明,因为在实践中发现,用户和开发、测试往往是从不同的角度来看待流畅度的,思考问题的时候别把自己的思维定在某一个角色,往往会有不一样的结果
  2. 第二章:Android 运行机制概述:这一章主要会讲一些 Android 运行机制相关的内容,了解这些知识点,对于分析 Android 流畅性问题是必须的,当下面这些知识点你非常熟悉之后,碰到流畅性的问题,你的脑海中就有一个图形化的工具在运转:用户怎么操作的、系统怎么反馈的、App 运行到了哪里、最有可能是哪里出现了问题、用什么工具去 Debug 最方便
    1. App 主线程运行原理(主线程和渲染线程)
    2. Message、Handler、MessageQueue、Looper 机制
    3. 屏幕刷新机制和 Vsync
    4. Choreographer 机制
    5. Buffer 工作流和 SurfaceFlinger 工作流
    6. Input 流程
    7. ANR 的设计思想
  3. 第三章:性能分析工具介绍:正所谓 工欲善其事必先利其器,趁手的工具对于分析性能问题很重要,这一章主要会讲性能分析经常遇到的工具,并非是简单的介绍,会结合 Android 系统机制来讲解,工具主要包括但不限于 Perfetto 与历史上的 Systrace 、AS Profiler、Simpleperf、MAT、Log 工具(Log 内容分析和 Log 原理)、命令行工具(dumpsys meminfo、dumpsys gfxinfo、dumpsys cpuinfo、dumpsys SurfaceFlinger、dumpsys activity、dumpsys input、dumpsys window 等)、三方性能库(Koom、Matrix、Facebook profilo、BlockCanary、LeakCanary、Tailor/Raphael 等)
  4. 第四章:深入分析 Android 卡顿问题:运行机制和工具都介绍完了,那么接下来就是如何进行实战了,这一章主要会讲卡顿出现的原因、分析卡顿问题的套路、案例分享、编码最佳实践等
  5. 第五章:深入分析 Android 响应速度问题:同上,响应速度问题实战环节,这一章主要会讲响应速度问题出现的原因、分析响应速度问题的套路、案例分享、编码最佳实践等
  6. 第六章:深入分析 Android ANR 问题:ANR 也是用户体验的一部分,这里主要会讲 ANR 的设计思想、ANR 的几种类型、ANR 出现的原因、ANR 问题的分析套路、案例分享、编码最佳实践等(目测会有很大的篇幅)
  7. 第七章:深入分析 Android 内存问题:内存问题同样是影响用户体验一部分,而且是一个比较重要的性能指标,你懂得。本章会介绍 App 的内存占用、App 内存分析工具、内存泄漏分析、内存持续增长分析等,这里面的内容估计会牵扯到比较多的知识点,任重而道远啊….
  8. 第八章:性能测试:从测试的角度来看流畅性问题,这里会讲一些 性能指标获取(侵入式和非侵入式)、性能标准制定、竞品分析、提 Bug 的标准和流程、整机测试方法、第三方测试规范与平台口径介绍(原提纲中的绿色联盟、鲁大师、友盟、Bugly 等,需要分别辨明其规范、评分或监控功能,不能视为一套统一权威标准)、性能监控与自动化测试(Matrix、KOOM 等监控组件;Fastbot、UI Automator 等操作驱动工具;内存增长等测试场景),以及一些软技能:如何区分 Android 系统问题和 App 问题、如何与开发和 PM 扯皮(开个玩笑) 等
  9. 第九章:线上性能监控:上一章讲的是本地性能测试,而这一章会讲线上是如何监控流畅度的,跟线下监控有区别的是,线上监控既要能体现真实的用户体验,又要尽量减少对用户的影响,还需要在发现问题的时候,能及时进行数据上报
  10. 第十章:系统性能优化介绍:App 开发者使用各种方法和黑科技来进行性能监控和性能分析,那么 Android 系统开发者又是如何做的呢?这一章会介绍一些各种厂商的性能优化、AOSP 的性能优化、高通和 MTK 的优化等
  11. 第十一章:高效工作指南:内容暂定,包括但不限于
    1. AOSP 代码编译的必要性和流程
    2. 阅读 AOSP 代码的技巧,比如 cs.android.com、导入 AS、导入 vscode 等、画流程图等
    3. Windows、Linux 、Mac 开发环境推荐、配置命令行等
    4. 工作方式推荐:多写、多记、多总结、多分享

嘴炮输出完毕,万事俱备,只欠大佬来完善内容了…

工具与验证补充(2026-10):上面的章节设想保留,但今天使用工具时需要区分以下几件事。

  • 系统追踪:Systrace 与 Perfetto 不是同一工具的两个名字。Android 官方建议 Android 10 及以上使用 Perfetto;在支持的 Android 12(API 31)及以上系统上,还可用 FrameTimeline对照预期与实际帧时间线。是否采到所需数据、窗口及帧类型是否被覆盖,仍需检查,不能只看一个平均 FPS。
  • 应用工具:旧书中的 Profiler 界面应按年代看待。当前 Network Inspector 位于 Android Studio 的 View > Tool Windows > App Inspection。第三方库也不是都保持维护:Profilo 的官方仓库已归档,可作历史实现参考,不宜直接当作新项目的默认接入方案;其他库要分别核对版本和兼容性。
  • 可复现测试:可用 Macrobenchmark测量启动、滚动等交互,并结合 trace 分析。要固定场景、设备、构建类型、编译状态和测试次数,记录热状态等影响因素。UI Automator和 Fastbot负责驱动操作,它们不会自动给出统一的“流畅合格”结论。
  • 开发环境:Windows、Linux、macOS 上的 App 开发环境,不能等同于 AOSP 系统构建环境。当前 AOSP 要求是 64 位 x86 主机和 64 位 Linux;官方已不支持 Android 11 及之后的 macOS 系统构建。

市面上还有哪些讲性能的书?

讲道理目前市面上的书都有点年代了,倒是掘金社区的 Android 性能优化文章非常多,各种大厂也乐意将他们的内部工具开源,给这些热爱分享小伙伴点个赞,让我们站在巨人的肩膀上前行

我本人看过的几本书

  1. 腾讯 TMQ 专项测试团队出的:《移动 App 性能评测与优化》,2016 年出版,专业性和实战拉满,值得一看,https://item.jd.com/11976603.html 微信读书:有电子书
  2. 邓老师的 《深入理解 Android:Java 虚拟机 ART》,ART 虚拟机的大部头书,对于了解 ART 虚拟机的运行有很大的帮助,App 的不少黑科技都会涉及到虚拟机 https://item.jd.com/12510921.html 微信读书:有电子书
  3. 道格・西勒斯(Doug Sillars)的 《高性能 Android 应用开发》,2016 年出版,英文原版更早一些,算是一个比较早的全方位讲解 Android App 性能的书了,感兴趣的可以收藏一本 https://item.jd.com/11995735.html 微信读书:没有电子书
  4. 腾讯大佬出的:《Android 应用性能优化最佳实践》,2017 年出版,内容也是性能相关 https://item.jd.com/12043655.html 微信读书:有电子书
  5. Brendan Gregg 大师新作:《BPF 之巅:洞悉 Linux 系统和应用性能》,中文版 2020 年出版,大部头工具书,屯之 https://item.jd.com/12769029.html 微信读书:没有电子书
  6. 同样是 Brendan Gregg 的 《性能之巅:洞悉系统、企业与云计算》,中文版 2020 年出版,大部头工具书,搞性能的应该人手一本… https://item.jd.com/12749867.html 微信读书:有电子书
  7. 张绍文的《Android 开发高手课》https://time.geekbang.org/column/intro/142 最近重新听的感悟:高手就是高手
  8. 倪朋飞的 Linux 性能优化实践

写在最后

  1. 欢迎大家留言分享自己看过的觉得非常不错的 Android 性能相关的书籍、博客、视频课、官方教程等
  2. 欢迎大家留言分享你们认为一本讲 Android 流畅性的书,应该包含哪些内容
  3. 本文不涉及任何推广,大家放心食用
  4. 博客交流不方便,有疑问的可以在知乎或者微信公众号下面留言,或者直接加我微信(553000664),备注 Blog 即可
    1. 本文知乎地址:https://zhuanlan.zhihu.com/p/423605434
    2. 本文微信公众号地址:https://mp.weixin.qq.com/s/WUGWJx5FRJqXboQ2KKGRwA

关于我 && 博客

下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!

  1. 博主个人介绍 :里面有个人的微信和微信群链接。
  2. 本博客内容导航 :个人博客内容的一个导航。
  3. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  4. Android性能优化知识星球 :付费社群已于 2026 年停止运营,不再招收新成员;此处保留历史介绍。

一个人可以走的更快 , 一群人可以走的更远

微信扫一扫

CATALOG
  1. 1. 内容介绍
  2. 2. 我认为一本讲流畅性的书,应该有什么?
  3. 3. 市面上还有哪些讲性能的书?
  4. 4. 写在最后
  5. 5. 关于我 && 博客