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' }
本部分的完整代码可以在这里找到。