一.什么是构建工具
除了编译,运行,签名,打包等,还有具备依赖管理的功能;
什么是依赖管理:
如Gradle引用第三方库的方式是这样的:
升级直接修改版本号就行了。
所以,综上所谓,构建工具就是对你的项目进行编译,运行,签名,打包,依赖管理等一系列功能的合集;
传统的构建工具有Mark,Ant,Maven,Ivy等,而Gradle是新一代的自动化构建工具!
二.什么是Gradle
Gradle是新一代的自动化构建工具,它是一个独立的项目,跟AS,Android无关,官方网址:http://gradle.org/,类似Ant,Maven这类构建工具都是基于xml来进行描述的,很臃肿,而Gradle采用的是一种叫做Groovy的语言,语法跟java很像,但是是一种动态语言,而且在java上做了不少改进,使用起来更加简洁,灵活。而且完全兼容了Maven,Ivy。Gradle的推出主要以java应用为主,当然目前还支持Android,c,c++。
三.Gradle与Android Studio的关系
为了支持Gradle在AS上的使用,Google做了个AS的插件,叫做Android Gradle Plugin,所以我们能在AS使用Gradle,完全是因为这个插件的原因。在项目根目录有个build.gradle文件,里面有这么一句代码:
这就是依赖插件的代码,插件的版本是Google定的。
四.Android项目的Gradle配置文件
以我们公司自己的项目为例,介绍一个完整的Android项目包含的基本Gradle相关的配置文件:
- Driver/DriverApp/build.gradle
每个Module都有一个build.gradle配置文件,语法都一样,唯一不同的开头的声明:
- Driver/gradle
这个目录下有个wrapper文件,里面有两个文件,主要看下第二个:
可以看到里面声明了 gradle 的目录与下载路径以及当前项目使用的 gradle版本,这些默认的路径我们一般不会更改的,这个文件里指明的 gradle版本不对也是很多导包不成功的原因之一。
- Driver/build.gradle
这个文件是整个项目的 gradle 基础配置文件,默认的内容就是声明了 android gradle plugin 的版本。
- Driver/setting.gradle
这个文件是全局的项目配置文件,里面主要声明一些需要加入 gradle 的 module,我们来看看文件的内容:
五.如何导入下载的开源项目
下载一个Demo,先打开每个 module下的 gradle文件,即 app目录下的 build.gradle 以及各个 library下的 build.gradle ,首先查看 compileSdkVersion和 buildToolsVersion,因为有些时候你本地的版本和下载的版本不一致,那么就会导致失败。
然后就是检查 gradle-wrapper ,Google 有些时候要求不同的 AS 支持不同的 gradle 版本。比如 AS 1.0 的时候要求必须使用 gradle 1.x 的版本,等到 AS 2.0的时候,Google不支持 gradle1.x的版本,这个时候你必须手动更新下 android gradle plugin的版本,然后重新同步下。