首先用一段通俗易懂可是不是很是专业的话描述一下三者的概念、区别和联系。html
另外须要说明的一点是Gradle、Gradle Wrapper与Android Plugin for Gradle不必定要和Android Studio一块儿使用,你能够彻底脱离Android Studio,使用三者独立进行Android项目的构建。下面是三者官方的指导文档(从地址能够看出Gradle Wrapper是Gradle项目的一部分):android
为了加深你们对于三者的理解,咱们聊一聊在实际的项目构建中,这三者的关系,以前已经说过三者能够脱离Android Studio独立使用,可是这种状况在实际开发场景中并很少见,因此本文仍是使用Android Studio做为开发工具进行介绍。当咱们新建一个Android项目时,会出现相似于下图所示的目录结构:网络
能够看到一个gradle/wrapper目录,其中有两个文件:gradle-wrapper.jar/gradle-wrapper.properties,gradle-wrapper.jar是Gradle Wrapper的主体功能包。在Android Studio安装过程当中产生gradle-wrapper.jar(若是默认安装的话会在C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper\gradle\wrapper\gradle-wrapper.jar
)。而后每次新建项目,会将gradle-wrapper.jar拷贝到你的项目的gradle/wrapper目录中。gradle-wrapper.properties文件主要指定了该项目须要什么版本的Gradle,从哪里下载该版本的Gradle,下载下来放到哪里,以下图所示:app
其中GRADLE_USER_HOME通常指~/.gradle
,从图示项目中能够知道我要使用gradle-4.1版本,从https://services.gradle.org/distributions/gradle-4.1-all.zip
下载,下载到本地的~/.gradle/wrapper/dists
目录。那是否是各个项目的Gradle都要经过Gradle Wrapper下载,能不能全部的项目共用一个Gradle?这样理论上是能够的,可是因为Gradle自己不必定保持彻底的兼容性,因此新老项目共用一个Gradle有时可能会遇到意想不到的问题。指定对应版本的Gradle,而不经过Gradle Wrapper下载的设置方式是勾选以下图中的Use local gradle distribution
,同时指定Gradle home:ide
Gradle对应版本下载完成以后,Gradle Wrapper的使命基本完成了,Gradle会读取build.gradle文件,该文件中指定了该项目须要的Android Plugin for Gradle版本是什么,从哪里下载该版本的Android Plugin for Gradle。以下图所示:工具
从图示项目中可以知道咱们要使用3.0.1版本,从google和jcenter处下载,那么下载到咱们本地的哪里呢?它会下载到~\.gradle\caches\modules-2\files-2.1\com.android.tools.build
中。有时候你们网络装填很差,选择下图中的Offline work
时可能出现"No cached version of com.android.tools.build:gradle:xxx available for offline mode"问题,此时你只要将对应版本的Android Plugin for Gradle下载到本地的C:\Program Files\Android\Android Studio\gradle\m2repository\com\android\tools\build
中便可。开发工具