一、Groovy介绍
- 我们在Android中有很多build.gradle 等配置文件他们和xml 等的配置文件不同,这些文件可以说就是可以执行的代码,只是他们的结构看起来通俗易懂,和配置文件没什么两样,其它他们都是用Groovy语言进程的编写,Groovy 是一门JVM 语言,也就是,Groovy 的代码最终也会被编译成JVM 字节码,交给虚拟机去执行,我们也可以直接反编译这些字节码文件。
二、groovy 用法
变量
在groovy 中,没有固定的类型,变量可以通过def关键字引用
def name = 'Hubin' 我们通过单引号引用一串字符串的时候这个字符串只是单纯的字符串,但是如果使用双引号引用,在字符串里面还支持插值操作, def name = 'Andy' def greeting = "Hello, $name!"
函数
函数定义时,参数的类型也可以不指定。
String testFunction(arg1,arg2){//无需指定参数类型 ... }
返回值也可以是无类型的
def nonReturnTypeFunc(){ last_line //最后一行代码的执行结果就是本函数的返回值 } //如果指定了函数返回类型,则可不必加def关键字来定义函数 String getString(){ return "I am a string" }
打印
println("test")
全局引入
ext { minSdkVersion = 21 targetSdkVersion = 25 compileSdkVersion = 25 supportLibraryVersion = "25.4.0" // 所有apk统一的版本号,规则: // 大版本名称-大版本号.小版本号.修改次数.日期,如:beta-0.1.10.418 versionCode = 1 versionName = "v1.0.0" }
获取根目录下某个路径
`apkOutDir = rootProject.relativeProjectPath("apk")`
引入其它gradle文件
apply from: "config.gradle"
区分当前是application还是library
if (isModule) { apply plugin: 'com.android.library' } else { apply plugin: 'com.android.application' }
修改资源文件默认目录和源文件默认目录
sourceSets { main { manifest.srcFile 'src/main/module/AndroidManifest.xml' java.srcDirs 'src/main/module/java', 'src/main/java' } }