Email the Author
You can use this page to email El Zhang about Extending Android Builds.
About the Book
Extending Android Builds (EAB) goes beyond Gradle configuration. It focuses on Gradle Plugin development that cooperates with Android Gradle Plugin (AGP) and related build tools such as AAPT2, Kotlin Symbol Processing (KSP) and bytecode modifiers. With the help of multiple hands-on demos and case studies, you will learn how to craft Gradle plugins and tasks, how to integrate with the AGP APIs, and best practices for architecting, testing, and debugging Android builds. EAB explains not only "what" and "how", but also "why"—the art behind Gradle and AGP designs.
After reading this book, you will be able to:
- Utilize the Kotlin language for both Gradle scripts and plugins.
- Author Gradle plugins/tasks with confidence while effectively interacting with AGP APIs and Gradle raw APIs.
- Monitor and modify various aspects of the Android build process, including resource files, source code, JVM bytecode, and even their combinations using AAPT2, Kotlin Symbol Processing (KSP), and multiple bytecode modifiers.
- Ensure that the plugin is both robust and low-cost to maintain, following the simple test pyramid.
- Adhere to the latest best practices in App architecture that align with many Gradle golden rules and offer extensibility for developers.
- Reduce the build time of the Android application and enhance the efficiency of their existing CI/CD workflows.
Table of Contents:
- Chapter 1, Concepts and Little Handmade: Provides insight into Gradle and Android Gradle Plugin basics, alongside manual Android app creation.
- Chapter 2, Quick Start: Offers hands-on experience in structuring Gradle projects, understanding lifecycle, plugins, tasks, and creating a basic Gradle plugin for Slack notifications.
- Chapter 3, The Key of Extending Android Builds: Focuses on mastering Android Gradle Plugin's Variant and Artifact APIs for efficient and customizable builds.
- Chapter 4, Diving into the Gradle Raw APIs: Explores advanced Gradle raw API features like lifecycle hooks, lazy properties, task orchestration, and caching mechanisms.
- Chapter 5, Extension of Android Resources Build: Covers manipulation of Android resources through AGP Extensions, with insights into AAPT2 internals for optimized builds.
- Chapter 6, Extension of Source Code Build: Discusses manipulating source code through AGP Extensions and understanding Kotlin Symbol Processing (KSP) for code generation.
- Chapter 7, Extension of the JVM Bytecode Build: Explores JVM bytecode manipulation using AGP APIs and tools, including Aspect-oriented Programming (AOP) at the bytecode level.
- Chapter 8, Improving the Build Experience: Focuses on optimizing build experiences through analysis, performance tuning, and conditional plugin application.
To learn more about the book including features, sample chapters, and code bases, please visit https://eab.2bab.com/
News: It was featured by Gradle official Newsletter in Apri 2024 https://newsletter.gradle.org/2024/04
About the Author
El (Bingquan) Zhang is a seasoned software engineer residing in Singapore. With a wealth of experience in Android application infrastructure, he has spent years delving into technologies like Gradle, AGP, KSP, bytecode transformation, and modularity. His passion for Android development extends beyond coding—he finds immense joy in sharing insights through blog posts, podcasts, books, and conference presentations in both English and Mandarin. Since 2022, he has been recognized as a Google Developer Expert (GDE) for Android. During his downtime, he enjoys maintaining various open-source plugins and utilities that add value to the developer community. You can find him across platforms under the identity “2BAB”.