Recently, I read a new book: Building Smooth Android Apps (JD link: https://item.jd.com/10035215362170.html). I bought it because of the title, and after reading it, I felt it was necessary to write an article so that colleagues who haven’t bought it yet can understand what it’s about.
My personal suggestion is: if you are an experienced developer, I don’t recommend buying it. This book doesn’t go into much depth on principles and doesn’t offer a comprehensive overview of Android smoothness. If you are a beginner, it’s decent for broadening your horizons and identifying gaps in your knowledge, but it’s still a bit lacking for a deep understanding of Android smoothness.
I say this because the book doesn’t focus much on performance or smoothness. It lacks deep theoretical parts. Instead, a large portion is dedicated to static code analysis, using Android Studio Profiler, App architecture, app stay-alive techniques, network performance optimization, APK size optimization, app power consumption, etc. These topics are covered briefly and at a shallow level.

Content Overview
Here is a brief introduction to the book’s content and chapters:
- Overview: Briefly introduces why performance optimization is needed and how to configure Android Studio.
- Static Code Analysis: Covers various static analysis tools in detail, such as Android Lint, CheckStyle, SpotBugs, PMD, etc. Except for Lint, I hadn’t used the others much, so this was a good refresher.
- Performance Optimization with Android Profiler: Focuses on the CPU, Memory, and Network Profilers within the AS Profiler tool. The emphasis is on tool usage, with high-level introductions.
- High-Quality Apps Start with Architecture: Discusses architectural principles like MVC, MVP, and MVVM.
- Elegant App Stay-Alive Techniques: A brief introduction to techniques for keeping apps running in the background.
- Network Performance Optimization: Covers network interaction, multi-threading, and large-scale data transfer optimization.
- Optimizing APK Size: The usual topics: multi-channel packaging, resource optimization, and code obfuscation.
- App Power Consumption and Crash Experience Optimization: A brief overview of these areas.
As you can see from the chapter titles, there is relatively little content specifically about “smoothness.” The topics are quite diverse. If you’re interested, you can buy a copy to take a look.
What Do I Think a Book on Smoothness Should Contain?
While I couldn’t write such a book myself—I have great respect for technical authors—I can certainly offer my “armchair” opinions. If I were to write this book, I would include the following content to ensure readers gain a deep understanding of Android smoothness principles and become proficient in using various tools to analyze issues.
In Android performance discussions, Jank (Smoothness), Responsiveness, and ANR are usually grouped together because their causes are similar. They are essentially categorized by severity: jank, slow response, and ANR. We can define Smoothness in a broad sense as encompassing all three. Most user complaints about “lag” or “stuttering” refer to this broad definition.
Here is my proposed chapter structure:
- Chapter 1: Overview of Android Smoothness: Concepts from the perspectives of users, developers, testers, AOSP, and hardware. It’s important not to limit your thinking to just one role.
- Chapter 2: Overview of Android Runtime Mechanisms: Essential knowledge for analyzing smoothness. Once you master these, you’ll have a mental model of how user actions trigger system feedback and where potential bottlenecks lie:
- App Main Thread Principles (Main Thread vs. Render Thread)
- Message, Handler, MessageQueue, and Looper mechanisms
- Screen Refresh Mechanism and Vsync
- Choreographer mechanism
- Buffer and SurfaceFlinger workflows
- Input handling flow
- Design philosophy of ANRs
- Chapter 3: Performance Analysis Tools: A craftsman is only as good as his tools. This chapter would go beyond simple introductions, explaining regular performance analysis tools in the context of system mechanisms: Systrace (Perfetto), AS Profiler, SimplePerf, MAT, Log tools (analysis and principles), Command-line tools (dumpsys for meminfo, gfxinfo, cpuinfo, SurfaceFlinger, activity, input, window, etc.), and Third-party libraries (Koom, Matrix, Profilo, BlockCanary, LeakCanary, Tailor/Raphael, etc.).
- Chapter 4: Deep Dive into Android Jank: Practical strategies for identifying causes, workflows for analysis, case studies, and coding best practices.
- Chapter 5: Deep Dive into Android Responsiveness: Similar to the above, but focused on responsiveness issues.
- Chapter 6: Deep Dive into Android ANR: Understanding the design, types, causes, and analysis workflows for ANRs, along with case studies and best practices. (Likely a very detailed chapter).
- Chapter 7: Deep Dive into Android Memory Issues: Memory is a critical performance metric. This chapter would cover app memory footprint, analysis tools, memory leaks, and continuous growth analysis.
- Chapter 8: Performance Testing: Smoothness from a testing perspective: retrieving metrics (intrusive vs. non-intrusive), setting standards, competitor analysis, bug reporting flows, full-device testing, third-party standards (Master Lu, Umeng, Bugly, etc.), and tool development (Matrix, Koom, Fastbot, etc.). Also covers soft skills: distinguishing between system and app issues and communicating with PMs and devs.
- Chapter 9: Online Performance Monitoring: Unlike offline testing, online monitoring must reflect real user experience with minimal impact while ensuring timely data reporting.
- Chapter 10: Introduction to System Performance Optimization: How do Android system developers (AOSP, Qualcomm, MTK, OEMs) optimize performance?
- Chapter 11: High-Efficiency Work Guide:
- Necessity and process of compiling AOSP code.
- Tips for reading AOSP code (cs.android.com, importing into AS/VS Code, flowcharts).
- Recommended dev environments (Windows, Linux, Mac) and command-line configurations.
- Work habits: writing, recording, summarizing, and sharing.
That’s my “armchair” outline. Everything is ready—just waiting for an expert to fill in the content!
What Other Performance Books Are Available?
Many books on the market are a bit dated. However, the Juejin community has a wealth of articles on Android performance, and many large companies open-source their internal tools. Let’s keep moving forward on the shoulders of giants.
Here are a few books I’ve read:
- Evaluation and Optimization of Mobile App Performance by Tencent TMQ: Published in 2016, very professional and practical. (Available on WeChat Reading).
- Understanding Android: Java Virtual Machine ART by Deng Fanheng: A massive tome on the ART VM, helpful for understanding “black tech” involving the VM. (Available on WeChat Reading).
- High-Performance Android Apps by Doug Sillars: Published in 2016, an early comprehensive guide.
- Best Practices for Android App Performance Optimization by Tencent developers: Published in 2017. (Available on WeChat Reading).
- BPF Performance Tools by Brendan Gregg: Chinese edition published in 2020. A fundamental tool for system performance.
- Systems Performance: Enterprise and the Cloud by Brendan Gregg: Chinese edition published in 2020. A must-have for anyone doing performance work. (Available on WeChat Reading).
- Android Development Master Class by Zhang Shaowen (Geek Time column): A true master’s perspective.
- Linux Performance Optimization by Ni Pengfei.
Final Thoughts
- Feel free to share your own recommendations for Android performance books, blogs, videos, or tutorials.
- What do you think should be included in a book about Android smoothness?
- This article is for sharing only, with no promotional links.
- Feedback is welcome on my Zhihu or WeChat accounts.
About Me && Blog
Below is my personal introduction and related links. I look forward to exchanging ideas with fellow professionals. “When three walk together, one can always be my teacher!”
- Blogger Intro: Includes personal WeChat and WeChat group links.
- Blog Content Navigation: A guide for my blog content.
- Curated Excellent Blog Articles - Android Performance Optimization Must-Knows: Welcome to recommend projects/articles.
- Android Performance Optimization Knowledge Planet: Welcome to join and thank you for your support~
One walks faster alone, but a group walks further together.
