Gradle: The New Android Build System in Android Studio 1.0

Introduction

Gradle is the enterprise automation tool from Google. It is based upon the concepts of Gradle Builds, Apache Ant and Apache Maven and introduces a Groovy based domain specific language (DSL) instead of XML for declaring the project configuration in a traditional IDE such as Eclipse.

Gradle is designed for multiple project builds that are ultimately growing and since it is an intelligent tool it can find which parts of the build tree is up to date so it skips the part not to be executed or has already been executed.

Gradle is an open source project and is licensed under the Apache Software Licence (ASL).

For better understanding of this article you must go through my previous articles that describes step-by-steps Installation procedure and Creating a project in Android studio 1.0.

Features

  • Integration of Android Studio with Gradle enhances the build process because it (Android Studio) is deeply integrated with the new Gradle based build support.
     
  • For making a simple, declarative, domain-specific language Gradleware has worked together with Google to create declarative DSL.
     
  • A single Build System that is Gradle maintains a build from the IDE and command line as well. This means that the build is executed from the IDE and the command line are the same at each instance of time, in other words it powers the command line as well.
     
  • Product flavors and Build variants can easily be managed by this Gradle-based build system because it will just change in the code for three to four lines that will help control and manage the latest release of the builds.
     
  • Android signing Configuration:The Gradle Android DSL provides a very simple way to customize keystores and signing configurations on various build types.
     
  • Binary Bundles for libraries (.aar): Gradle supports the new .aar binary bundle format for library projects.
     
  • Test Server API: supports Hosted Testing; Android Studio with Gradle based Builds Integrated with Jenkins-based build servers and services from AppThwack, TestDroid and Manymo means that the build can support complex, massively-parallel integration testing scenarios as well.

All these preceding mentioned points  can be understood using the image shown below and you can quickly conceptualize from here.

features of gradle

However Gradle Builds can be seen from the IDE as all the folders related to the builds lies below the folders of the application.

all folders related to gradle

Project Build File

However by default, the project-level Gradle file uses a buildscript to define the Gradle repositories and dependencies. Now the example given below shows the default generated file that declares that the build script uses the JCenter repository and a classpath dependency artifact that contains the Android plugin for Gradle version 1.0.1.

project build file

Module Build File

Although this file describes itself all the versions and dependencies and other Configurations likewise as illustrated in figure below.

Android settings

  • compileSdkVersion
  • buildToolsVersion
  • DefaultConfig and ProductFlavors

    Manifest properties such as applicationId, minSdkVersion, targetSdkVersion and test information.

  • BuildTypes

    This shows Build properties such as debuggable, ProGuard enabling, debug signing, version name suffix and testinformation
     
  • Dependencies
  module based builds

Summary

This article just illustrates the basic features of the Gradle build approach and all the folders associated with it in Android Studio 1.0, the latest released IDE from Google Based on IntelliJ IDEA. So this article is just a limelight of the Gradle Scripts and other associated folders in Android Studio 1.0.