1 参考
深入理解Android之Gradle: http://blog.csdn.net/innost/article/details/48228651
Gradle完整指南(Android):http://www.jianshu.com/p/9df3c3b6067a
Gradle官方网站:https://gradle.org/
Groovy的API文档:http://www.groovy-lang.org/api.html
2 资源
Gradle 各版本下载
:http://services.gradle.org/distributions/Gradle_Recipes_for_Android.pdf
,Android构建的实用文档: http://pan.baidu.com/s/1kVnq4WBBuilding_and_Testing_with_Gradle.pdf
,通用的构建与测试文档: http://pan.baidu.com/s/1jIM4wgIGradle User Guide.pdf
,官方给出的使用手册: http://pan.baidu.com/s/1qYIozFm
3 基本
- Gradle虽然使用的是
Groovy
语言,但是其实际上是基于Java语言的,所以在编写脚本的时候可以直接使用Java语言。
4 Groovy
语言基础
虽然在编写脚本的时候可以直接使用java代码,但是使用脚本化语言更加的清晰。
Groovy
开发环境配置
参看:http://www.jianshu.com/p/777cc61a6202
前置基础知识
Groovy注释标记和Java一样,支持//或者/**/
Groovy语句可以不用分号结尾
Groovy中支持动态类型,即定义变量的时候可以不指定其类型,Groovy中,变量定义可以使用关键字def,注意,虽然def不是必须的,但是为了代码清晰,建议还是使用def关键字
Groovy中每一个对象的成员变量会自动为它生成
getter
和setter
函数,所以我们可以直接调用其成员变量或者对应方法。
var0 = "no def no type"
def var1 = 1 //可以不使用分号结尾
def var2 = "I ama person"
def int x = 1 //变量定义时,也可以直接指定类型
- 函数定义时,参数的类型也可以不指定,比如
String testFunction(arg1,arg2){//无需指定参数类型
...
}
- 除了变量定义可以不指定类型外,Groovy中函数的返回值也可以是无类型的。比如:
//无类型的函数定义,必须使用def关键字
def nonReturnTypeFunc(){
last_line //最后一行代码的执行结果就是本函数的返回值
}
//如果指定了函数返回类型,则可不必加def关键字来定义函数
String getString(){
return"I am a string"
}
- Groovy中的函数调用可以不加括号,但是在定义函数的时候不可以省略,否则会被编译器认为是变量
println("123") -> println "123"
对字符串的支持
- 单引号”,表示严格的字符串,等同于java的String类型
- 双引号”“,与普通字符串的区别是会对 $表达式先求值
def var = 123
println "i am a $var" // 最后打印 i am a 123
- 三个引号”’xxxx”’中的字符支持随意换行
str = ''' 1223
122
556
'''
五种特殊运算符
?.
运算符,相当于不为空,则执行某个操作
list?.size()
//等同于
if(list != null){
list.size()
}
*.
运算符,用于对集合类型的对象的每个元素执行相同的方法,返回值为大小和该集合元素相同的List。
def smaple = ['123','1','12345']
println smaple*.size()
.&
方法作为一个闭包参数传递
def list = {
1, 2, 3}
list.each{
println it
}
int printNumber(int number){
println number
}
//作为方法作为一个闭包传递
list.each(this.&printNumber)
.@
直接调用字段,在groovy中直接使用.
调用的是对应的getter方法
class Todo {
String name
def getName() {
println "Getting Name"
name
}
}
def todo = new Todo(name: "Jim")
println todo.