Gradle Cheat Sheet (14): The Default Android Build Scripts

  新建一个Android App工程,可以看到Android Studio会自动生成Gradle脚本。

1. build.gradle

  先看项目根目录的build.gradle,里面首先指定了JCenter作为Repository,为classpath 添加了依赖com.android.tools.build:gradle ,这是Gradle的Android插件。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

  然后在allprojects 下指定了JCenter作为Repository,使JCenter成为所有Gradle子项目的Repository。

allprojects {
    repositories {
        jcenter()
    }
}

2. /app/build.gradle

  在/app下也有一个build.gradle,专门用于构建Android App。开头首先应用了Android插件:

apply plugin: 'com.android.application'

2.1. android Block

  对Android插件的配置位于android{} 块中:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.nex3z.examples.shakedetector"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

其中只有compileSdkVersion 和buildToolsVersion 是必须的。defaultConfig{} 块用于配置Android Manifest的属性。buildTypes{} 块给出不同构建类型的定义。

  这里buildTypes{} 中给出了release 的配置,设置minifyEnabled 为false关闭Code Shrinking,并添加proguardFiles 。Android Studio会自动创建release 和debug 两个Build Type,这里虽然没有在buildTypes{} 中给出debug 的配置,实际上是存在一个名为debug 的Build Type的。在Gradle的任务列表中,可以找到对应每个Build Type的任务,如assembleRelease 对应release ,assembleDebug 对应debug 。

2.2. dependencies Block

  在build.gradle的最后,由dependencies{} 块给出依赖,首先包含了libs文件夹下的所有.jar文件,然后是JUnit和Android support library:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
}

 

  本部分的完整代码可以在这里找到。