1.Gradle 与 Android Studio 的关系
Gradle 本身和 AS 是没有关系的,为了支持 Gradle 能在 AS 上使用,Google 做了一个 AS 的插件 Android Gradle plugin,而我们能在 AS 使用 Gradle 也是因为这个插件。在项目根目录里面有个 build.gradle 文件,有如下描述
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
}
这个就是依赖 gradle 插件的代码,后面的版本号表示的是 Android Gradle plugin 插件的版本,并不是 Gradle 的版本,这个是 Google 定义的,和 Gradle 官方并没有关系。了解如何 更新 Gradle 和 Android 插件
2. Android & Gradle Wrapper
现在默认创建一个项目,在 AS 上运行,就会默认安装 Gradle 了,但其实这个并不是真正的 Gradle,而是 Gradle Wrapper,表示 Gradle 的包装。
什么意思呢?
比如我们的 Java 环境都是要装 JDK 的吧,JDK 安装一个版本就可以了,比如 JDK-1.8,由于 Gradle 会快速迭代,经常发布新版,如果项目直接引用,那么更改版本就会很麻烦。而且每个项目可能会用到不一样的 Gradle 版本,只安装了一个版本肯定也是不行的。所以 Google 推出了 Gradle Wrapper 的概念,就是在每个项目都配置了一个指定版本的 Gradle,通过这个每个项目可以支持不同的 Gradle 版本来构建项目。
在 AS 安装的时候就自带这个功能,在 AS 的安装目录 D:\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper\gradle 下有两个文件, gradle-wrapper.jar 是 Gradle Wrapper 的主体功能包。gradle-wrapper.properties 文件主要指定了该项目需要从哪里下载什么版本的 Gradle,下载后放到哪里。 每新建一个项目,就会将这两个文件 复制到项目的 gradle 文件夹下面。
├──gradle-wrapper.jar
├──gradle-wrapper.properties
Android Stuido 中的 Gradle Wrapper 相关文件,项目结构和通用是一致的
├── build.gradle
├── settings.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat
在创建项目之后,Gradle 会自动下载安装(第一次会比较久,之后就可以直接使用了),结束之后可以在终端输入 gradlew -v
( mac 用户输入./gradlew -v
) 可以查看当前项目所用的 gradle 的版本。比如我当前用的是 Gradle 6.1.1 版本的。gradlew 也就是 gradle wrapper 的缩写,wrapper 会自动去执行具体版本对应的 gradle 命令。
$ gradlew -v
------------------------------------------------------------
Gradle 6.1.1
------------------------------------------------------------
Build time: 2020-01-24 22:30:24 UTC
Revision: a8c3750babb99d1894378073499d6716a1a1fa5d
Kotlin: 1.3.61
Groovy: 2.5.8
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_181 (Oracle Corporation 25.181-b13)
OS: Windows 10 10.0 amd64