Android adopted Gradle as the preferred build automation system a few years ago, but many Android developers are still unfamiliar with this open source tool. This hands-on guide provides a collection of Gradle recipes to help you quickly and easily accomplish the most common build tasks for your Android apps. You’ll learn how to customize project layouts, add dependencies, and generate many different versions of your app.
Gradle is based on Groovy, yet very little knowledge of the JVM language is required for you to get started. Code examples use Android SDK version 23, with emulators from Marshmallow (Android 6) or Lollipop (Android 5). If you’re comfortable with Java and Android, you’re ready.
Understand Gradle’s generated build files for Android apps
Run Gradle from the command line or inside Android Studio
Add more Java libraries to your Android app
Import and export Eclipse ADT projects
Digitally sign a Release APK for the Google Play store
Use product flavors to build many versions of the same app
Add custom tasks to the Gradle build process
Test both your app’s Android and non-Android components
Improve the performance of your Gradle build
Chapter 1Gradle for Android Basics
1.1. Gradle Build Files in Android
1.2. Configure SDK Versions and Other Defaults
1.3. Executing Gradle Builds from the Command Line
1.4. Executing Gradle Builds from Android Studio
1.5. Adding Java Library Dependencies
1.6. Adding Library Dependencies Using Android Studio
1.7. Configuring Repositories
Chapter 2From Project Import to Release
2.1. Setting Project Properties
2.2. Porting Apps from Eclipse ADT to Android Studio
2.3. Porting Apps from Eclipse ADT Using Eclipse
2.4. Upgrading to a Newer Version of Gradle
2.5. Sharing Settings Among Projects
2.6. Signing a Release APK
2.7. Signing a Release APK Using Android Studio
Chapter 3Build Types and Flavors
3.1. Working with Build Types
3.2. Product Flavors and Variants
3.3. Merging Resources
3.4. Flavor Dimensions
3.5. Merging Java Sources Across Flavors
Chapter 4Custom Tasks
4.1. Writing Your Own Custom Tasks
4.2. Adding Custom Tasks to the Build Process
4.3. Excluding Tasks
4.4. Custom Source Sets
4.5. Using Android Libraries
5.1. Unit Testing
5.2. Testing with the Android Testing Support Library
Ken Kousen is an independent consultant and trainer specializing in Spring, Hibernate, Groovy, and Grails. He holds numerous technical certifications, along with degrees in Mathematics, Mechanical and Aerospace Engineering, and Computer Science.
The animal on the cover of Gradle Recipes for Android is a great potoo (Nyctibius grandis). This unusual creature occupies humid forest habitats throughout Central and South America.
The great potoo is a large bird at 18 to 24 inches long, with an average wingspan of 29 inches. It is somewhat owl-like in appearance, possessing a large head, a wide, gaping mouth, and immense yellow eyes. Its plumage is mottled light brown and gray, serving as camouflage against tree bark. The great potoo perches on branches, where it rests during the day and waits to capture prey at night; its diet includes large, flying insects as well as the occasional bat.
Solitary and elusive, little is known about the breeding habits of Nyctibius grandis. It lays just one egg per year, not in nests but in the notches of tree branches at least 30 feet above the ground.
The great potoo makes deep, guttural calls throughout the night. The haunting, unique sound has lent itself to many folk legends about the bird; some believe its plaintive cry is that of a shaman's daughter mourning her lost love, while others imagine the bird's song summons messages from the dead.
Many of the animals on O'Reilly covers are endangered; all of them are important to the world. To learn more about how you can help, go to animals.oreilly.com.
The cover image is from Lydekker's Royal Natural History, Volume 4 and Dover Pictorial Archive. The cover fonts are URW Typewriter and Guardian Sans. The text font is Adobe Minion Pro; the heading font is Adobe Myriad Condensed; and the code font is Dalton Maag's Ubuntu Mono.