原文
1 理解Gradle
Android Studio Project基于Gradle脚本构建,Gradle基于Groovy。
在grade中的两大重要的概念,分别是project和tasks。每一个build.grade文件代表着一个project,每一次构建都是有至少一个project来完成。tasks在build.gradle中定义,每个project有至少一个tasks。当初始化构建进程,gradle会集合所有的project和tasks,一个tasks包含了一系列动作,一个动作就是一段被执行的代码,然后它们将会按照顺序执行。
2 Gradle 构建过程
初始化阶段:
创建project实例,有几个build.gradle文件,就会创建几个project。
配置阶段:
build.gradle脚本将会执行,为每个project创建和配置所有的tasks。
执行阶段:
这一阶段,gradle会决定哪一个tasks会被执行,哪一个tasks会被执行完全依赖开始构建时传入的参数和当前所在的文件夹位置有关,不包含依赖的Tasks总是优先执行。
3 build.gradle的配置文件
实际构建开始的地方:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
}```
构建脚本定义了一个Android构建工具——Android plugin,它提供了所有需要去构建和测试的应用。Android应用模块需要这么一个插件:
apply plugin: 'com.android.application'```
依赖库模块应该使用
apply plugin: 'com.android.library'```
4 项目结构
略
5 Gradle Wrapper
Gradle Wrapper提供了一个windows的batch文件和其他系统的shell文件,当你使用这些脚本的时候,当前gradle版本将会被下载,在mac上你只需要运行gradlew,而在windows上你只需要运行gradlew.bat。
6 构建命令
略
7
在grade文件中配置,将会保存eclipse目录结构
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
androidTest.setRoot('tests')
}
}```
依赖jar包,你需要告诉gradle它在哪儿,假设jar包会在一个叫做libs的文件夹内,那么你应该这么配置
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}```
将libs文件夹中所有的jar文件视为依赖包