Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。
面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言
说白了也就是项目自动化建构工具。构建就是根据输入信息执行一系列操作,最后得到几个产出物(APK包)。
gradle使用的语言是Groovy,
Groovy 概述
Groovy是一种基于Java平台的面向对象语言。 Groovy是个灵活的动态脚本语言,基于JVM虚拟机,语法和Java很相似,又兼容Java,且在此基础上增加了很多动态类型和灵活的特性,如支持闭包和DSL(就是针对某一领域而产生的语言。DSL的好处是一句话可以包含很多意思,因为只针对特定领域解决问题),Groovy 1.0于2007年1月2日发布,其中Groovy 2.4是当前的主要版本。 Groovy通过Apache License v 2.0发布。
Groovy的特点
Groovy中有以下特点:
- 同时支持静态和动态类型。
- 支持运算符重载。
- 本地语法列表和关联数组。
- 对正则表达式的本地支持。
- 各种标记语言,如XML和HTML原生支持。
- Groovy对于Java开发人员来说很简单,因为Java和Groovy的语法非常相似。
- 您可以使用现有的Java库。
- Groovy扩展了java.lang.Object。
以上摘自Groovy教程,感兴趣的可以去看看
Android中的gradle
它在android studio的位置是app目录下的build.gradle和项目目录下的build.gradle
就这几个,emm..其他几个gradlew,这个还没接触过,但是打开看是一堆代码,如果猜的没错的话,应该是
配置整个项目运行的代码吧,然后其他几个,估计你们也知道干嘛用了,就不解释了
Gradle插件种类及用法
插件种类
- 二进制插件:实现了org.gradle.api.Plugin接口的插件,拥有plugin id,这个 id 是插件全局唯一的标识或名称
- 脚本插件:严格上只是一个脚本,即自定义的以 .gradle 为后缀的脚本文件,可以来自本地或网络
插件用法
二进制插件:
id式:apply plugin:'plugin id'
类型式:apply plugin:org.gradle.api.plugins.JavaPlugin
简写式:apply plugin:JavaPlugin
- 脚本插件:apply from:'version.gradle'
- 第三方发布插件:apply plugin:'com.android.application'
Android Gradle插件分类
- App应用工程:生成可运行apk应用;插件id: com.android.application
- Library库工程:生成AAR包给其他的App工程公用,其使用方式和jar包一样,里面有相关的 Android 资源文件;插件id: com.android.library
- Test测试工程:对App应用工程或Library库工程进行单元测试;插件id: com.android.test
Android Studio Gradle插件构建流程
Gradle生命周期
- Initialization(初始化阶段):Gradle支持单项目和多项目构建。在初始化阶段,Gradle确定将要参与构建的项目,并为每个项目创建一个Project对象。通俗的说就是执行上述settings.gradle文件。
- Configuration(配置阶段):在此阶段,解析每个Project中的build.gradle文件,并生成将要执行的task。
- Execution(执行阶段):执行 task,进行主要的构建工作
大概就这么多,感兴趣的可以看大佬的文章深入理解Android之Gradle
参考文章:
https://www.jianshu.com/p/63e78a6c6e9d