在介绍Gradle for Android脚本语法语法之前,我们先来了解一下Android Studio工程中几个常见的Gradle脚本文件的相关功能,这样我们会有个大致的印象,而后我们再详细的去讨论相关的语法表达。
Android Studio中,Gradle由一个顶级配置文件和其他模块配置文件构成,如下图所示:
下面我们依次来看一下这几个文件。
Gradle顶级配置文件
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
/* 存储库jcenter,也可以配置moven */
jcenter()
}
dependencies {
/* 依赖的Gradle版本 */
classpath 'com.android.tools.build:gradle:1.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
/* 所有项目的存储库 */
jcenter()
}
}
该文件的内容主要包含了两个方面:一个是声明仓库的源,这里可以看到是指明的jcenter(), 之前版本则是mavenCentral(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了android gradle plugin的版本,android studio 1.0正式版必须要求支持gradle plugin 1.0的版本。
全局项目配置文件
settings.gradle
include ':app'
这个文件是全局项目配置文件,里面主要声明需要加入Gradle的Module。上述文件只加入了app模块,如果有多余的模块,按照上述格式继续添加即可。
Gradle Wrapper属性文件
gradle-wrapper.properties
#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
这是位于wrapper文件夹下的一个文件,该文件声明了Gradle的目录与下载路径以及当期项目使用的Gradle的版本。这些默认的路径一般是不会更改的,这个文件指定的Gradle的版本不对也是导包不成功的常见原因。
Gradle模块配置文件
build.gradle
apply plugin: 'com.android.application'//声明是Android程序
android {
compileSdkVersion 22//编译SDK的版本
buildToolsVersion "22.0.1"//Build Tools的版本
defaultConfig {//默认配置
applicationId "com.allenwells.myapplication"//应用包名
minSdkVersion 15//最小API版本
targetSdkVersion 22//编译API版本
versionCode 1//版本号
versionName "1.0"//版本名称
}
buildTypes {//构建类型
release {//正式版配置
minifyEnabled false//是否进行混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}//混淆配置文件的位置
}
//移除lint检查的error
lintOptions {
abortOnError false
}
sourceSets {
main {
jniLibs.srcDirs =['libs']
}
}
}
dependencies {
//依赖配置,编译libs目录下的所有JAR包
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
//编译extras目录下的ShimmerAndroid模块
compile project(':extras:ShimmerAndroid')
}
关于以上文件的几点说明:
- apply plugin是最新gradle版本的写法,以前的写法是apply plugin: ‘android’。
- buildToolsVersion这个需要你本地安装该版本才行,很多人导入新的第三方库,失败的原因之一是build version的版本不对,这个可以手动更改成你本地已有的版本或者打开SDK Manager去下载对应版本。
- applicationId代表应用的包名,也是最新的写法。
- android 5.0开始默认安装jdk1.7才能编译。
- minifyEnabled也是最新的语法,很早之前是runProguard。
- proguardFiles这部分有两段,前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在