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
現(xiàn)在默認創(chuàng)建一個項目,在 AS 上運行,就會默認安裝 Gradle 了,但其實這個并不是真正的 Gradle,而是 Gradle Wrapper,表示 Gradle 的包裝。
什么意思呢?
比如我們的 Java 環(huán)境都是要裝 JDK 的吧,JDK 安裝一個版本就可以了,比如 JDK-1.8,由于 Gradle 會快速迭代,經(jīng)常發(fā)布新版,如果項目直接引用,那么更改版本就會很麻煩。而且每個項目可能會用到不一樣的 Gradle 版本,只安裝了一個版本肯定也是不行的。所以 Google 推出了 Gradle Wrapper 的概念,就是在每個項目都配置了一個指定版本的 Gradle,通過這個每個項目可以支持不同的 Gradle 版本來構(gòu)建項目。
在 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 相關文件,項目結(jié)構(gòu)和通用是一致的
├── build.gradle
├── settings.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat
在創(chuàng)建項目之后,Gradle 會自動下載安裝(第一次會比較久,之后就可以直接使用了),結(jié)束之后可以在終端輸入 gradlew -v( mac 用戶輸入./gradlew -v) 可以查看當前項目所用的 gradle 的版本。比如我當前用的是 Gradle 6.1.1 版本的。gradlew 也就是 gradle wrapper 的縮寫,wrapper 會自動去執(zhí)行具體版本對應的 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