Android构建工具Gradle知识1

时间:2022-11-28 08:52:35

Android构建工具Gradle知识1
1.Groovy介绍
Groovy运行在Java虚拟机的动态语言。
Groovy编译成Byte Code运行在JVM上
Android构建工具Gradle知识1
2.Groovy开发环境
官网: http://www.groovy-lang.org
GDK: http://www.groovy-lang.org/api.html
2.1 基本知识
a.注释:单行 // 多行 /**/
b.可以不用分号结尾
c. 动态类型: 定义关键字def,可以省略(跟js很像)
def variable=1
def svar=”hello”
def int num=10 指定类型
d. 函数参数可以不指定类型
String test(arg1,arg2)
{
}
e.函数返回值可以无类型
def test2()
{
}
指定类型后不用加def
String getString()
{
return “再别康桥”
}
f.Groovy对String支持
def str=’I love 转义
def str2=”hi”
def str3=”I like say str2Ilikesayhi , $表达式求值
def str4=”“” 预备
开始
结束”“”
三引号 字符串支持随意换行
g.函数调用 可以不加括号
print(“hoho”) === print “hoho”
2.2 数据类型
2.2.1.基本数据类型
java中的包装类
2.2.2.容器类
Groovy的容器三种:
List:链表,底层对应List接口,一般用ArrayList作为实现类
Map: 键值表 底层对应java 中的LinkedHashMap
Range: 范围 List扩展
2.2.2.1. List
定义: 元素可以是任何对象
def list=[5,”mystring”,true]
不用担心越界问题
list[100]=10
长度:
list.size
2.2.2.2 Map
定义:
def map=[“key1”:”value1”]
key必须是字符串
key可以用” 或 “” 包起来
不加也识别成字符串
获取:
获得key map.keyName
获得的value map[“key1”]
map.anotherkey=dfadsfa”” 添加新元素
2.2.2.3 Range
List扩展
def arange=1…5
不包含最后一个元素的写法
def aarange=1..<5
输出头 aarange.from
输出尾 aarange.to

这涉及到Groovy一个原则
Groovy会采用java封装属性的方式,添加get、set方法
2.2.3 闭包(closure)
一种数据类型
def clo={
String param1,int param2->
println “this is code”
}
格式:
def xxx={parameters->code]
def xxx={无参数,纯code}
调用闭包:
闭包对象.call(参数)
闭包对象(参数)
注意:闭包没定义参数,会有默认参数it相当于java中的this
闭包注意点:
a.省略圆括号
函数最后一个参数是闭包可以省略括号
Public static List each(List self,Closure clo)
def ia=[4,5,6]
La.each{
println it
}
b.如何确定Closure参数
2.3 脚本类
Groovy中类及其变量默认public
通过groovy xxx.groovy调用
2.4 文件I/O操作
封装java的I/O类
Android构建工具Gradle知识1
a.读文件
def target=new File(文件名)
target.eachLine{
String.oneLine->println oneLine
}
b.获得文件内容
target.getBytes() 返回byte[]
也可以写成
target.bytes
c.使用InputStream
def is=target.newInputStream()
is.close
d. 使用闭包操作inputStream
不需要close
target.withInputSteam(
ism->
}
相关SDK地址:
Android构建工具Gradle知识1
e.写文件
<<输出 实现文件复制
def target=new File(文件名)
target.withOutPutStream{
os->srcFile.withInputStream{
ins-> os”<<(这块用<<就行,csdn识别有问题)”ins
}
}
<<对应 leftShift方法
2.5 XML操作
Groovy使用GPath解析XML文件
Android构建工具Gradle知识1
使用过程:
// 第一步,创建 XmlSlurper类
def xparser=new XmlSlurper()
def target=new File(“test.xml”)
//第二步,Gpath
GpathResult gpr=xparse.parse(targetFile)
//gpr 代表根元素response,通过e1,e2,e3可以访问各级子元素
def book4=gpr.value.books.book[3]
//得到book4的author元素
def author=book4.author
//获取元素属性 和 值
assert author.text()==’Manuel De Cervantes’
//获得属性
author.@id=’4’ 或者
Author[‘@id’] ==’4’
//属性一般是字符串,可以通过toInteger转换成整数
author.@id.toInteger()==4

在android中的使用
获取AndroidManifest.xml中的版本号
Def af=new XmlSlurper().parser(“AndroidManifest.xml”)
Println af[‘@android:versionName’]
或者
Println af.@’android:versionName’