一、什么是Gradle?
Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的领域专用(DSL)语言。
二、安装Gradle
在Android Studio中新建项目成功后会下载Gradle,貌似这个过程不翻墙也是可以下载,但是访问特别慢,建议翻墙下载。那么下载的Gradle到什么地方呢?
Mac
上会默认下载到 /Users/<用户名>/.gradle/wrapper/dists 目录Win
平台会默认下载到 C:\Users\<用户名>\.gradle\wrapper\dists 目录
你会看到这个目录下有个 gradle-x.xx-all 的文件夹, 如果下载实在太慢,但是又不想翻墙的话,可以自己手动到Gradle官网、或者jcenter里下载对应的版本,然后将下载的.zip文件复制到上述的gradle-x.xx-all 文件夹下,不过还是建议让它直接下载的好。
三、项目中的 Gradle 相关目录和文件
1. app/build.gradle
这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件
1 | // 声明是Android程序 |
2. gradle/
这个目录下有个 wrapper 文件夹,里面可以看到有两个文件,我们主要看下 gradle-wrapper.properties 这个文件的内容:
1 | #Mon Dec 28 10:00:20 PST 2015 |
可以看到里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本,这些默认的路径我们一般不会更改的,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。
3. build.gradle
这个文件是整个项目的gradle基础配置文件
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. |
内容主要包含了两个方面:
- 一个是声明仓库的源,这里可以看到是指明的jcenter(), 之前版本则是mavenCentral(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。
- 另一个是声明了android gradle plugin的版本,android studio 1.0正式版必须要求支持gradle plugin 1.0的版本。
4. settings.gradle
这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module
1 | include ':app' |
四、Android Studio中几个关于Gradle的不同概念
1. Gradle、Gradle Plugin:
Gradle 是新一代的自动化构建工具,它是一个独立的项目,跟 AS、Android 无关,但是 Gradle 官方还是很看重 Android 开发的,Google 在推出 AS 的时候选中了 Gradle 作为构建工具,为了支持 Gradle 能在 AS 上使用,Google 做了个 AS 的插件叫 Android Gradle Plugin ,所以我们能在 AS 上使用 Gradle 完全是因为这个插件的原因。在项目的根目录有个 build.gradle 文件,里面有这么一句代码:
1 | classpath 'com.android.tools.build:gradle:2.1.2' |
这个就是依赖 gradle 插件的代码,后面的版本号代表的是 android gradle plugin 的版本,而不是 Gradle 的版本,这个是 Google 定的,跟 Gradle 官方没关系。
2. Gradle Wrapper
字面意思是Gradle的包装器,主要是这样的应用场景:
假设我们本地有多个项目,一个是比较老的项目,还用着 Gradle 1.0 的版本,一个是比较新的项目用了 Gradle 2.0 的版本,但是你两个项目肯定都想要同时运行的,如果你只装了 Gradle 1.0 的话那肯定不行,所以为了解决这个问题,Google 推出了 Gradle Wrapper 的概念,就是他在你每个项目都配置了一个指定版本的 Gradle ,你可以理解为每个 Android 项目本地都有一个小型的 Gradle ,通过这个每个项目你可以支持用不同的 Gradle 版本来构建项目。