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