Android Gradle 插件Gradle 构建工具简介 ③ ( Gradle 构建脚本编程语言 | Groovy 语言简介 | Groovy 语言特性 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件Gradle 构建工具简介 ③ ( Gradle 构建脚本编程语言 | Groovy 语言简介 | Groovy 语言特性 )相关的知识,希望对你有一定的参考价值。
文章目录
一、Gradle 构建脚本编程语言
Gradle 构建工具 的 构建脚本 可以使用 Groovy 语言 或 Kotlin 语言 进行编写 ,
- 使用 Groovy 语言编写的构建脚本是 build.gradle 构建脚本 ; 当前大量的 android 应用 , 都是使用 Groovy 语言进行配置 , 因此老的项目维护时 , 需要用到该语言 ;
- 使用 Kotlin 语言编写的构建脚本是 build.kt 构建脚本 ; Kotlin 语言是一个趋势 , 之后肯定都会使用 Kotlin 进行配置 ;
这两门语言在当前状态下都需要精通 ;
二、Groovy 语言简介
简介 : Groovy 语言 是 基于 Java 虚拟机 的 , 因此在 Groovy 中可以直接调用 Java 代码 , 以及 Java 语言的 API 函数 ; 此外 Groovy 还在 Java 语言基础上进行了扩展 , 使用起来更加方便 ; Groovy 语言吸收了很多高级语言的特性 , 如 Python , Kotlin , 引入了 元编程 , 扩展 等特性 ;
基于 Java 虚拟机 ( JVM , Java Virtual Machine ) 的语言有 :
- Java
- Kotlin
- Groovy
- Clojure
- Scala
功能强大 : Groovy 与 Java 语法类似 , 但是其 在 Java 语言的基础上进行了很多扩展 , 功能要比 Java 强大很多 ;
Groovy 语言性质 :
- 面向对象语言 : 可以 作为面向对象语言使用 ;
- 脚本语言 : 可以 直接在 .groovy 源码中编写执行脚本 , 从头到尾执行 , 不需要定义类 ;
三、Groovy 语言特性
Groovy 语言特性 :
- 支持静态类型 : 传统的变量类型不变 , 变量定义的是什么类型 , 就是什么类型 , 如定义 String 类型变量 , 该变量就是 String 类型无法改变 ;
- 支持动态类型 : 运行时改变变量的类型 , 定义变量时不事先指定变量类型 , 执行时才确定变量类型 ; 类似于多态 ;
- 运算符重载 : 与 Kotlin / C++ 功能差不多 ;
- DSL ( Domain Specific Language , 领域特定语言 ) 语法特性 : Groovy 语言 和 Kotlin 语言都 支持 DSL 语法特性 , 这也是为什么 Gradle 可以使用 Groovy 和 Kotlin 两种语言进行配置 ;
- 原生支持 XML : 不需要通过导入 Java 的 API 处理 XML 文件 ;
- 原生支持 HTML : 不需要通过导入 Java 的 API 处理 html 文件 ;
以上是关于Android Gradle 插件Gradle 构建工具简介 ③ ( Gradle 构建脚本编程语言 | Groovy 语言简介 | Groovy 语言特性 )的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★
Android Gradle 插件Gradle 构建机制 ⑤ ( 在 Android Studio 中查看 Android Gradle 插件源码 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ② ( buildSrc 目录中实现 Gradle 插件 | 实现 Gradle 插件代码 | 模块引入插件并编译 )
Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )