Android  gradle解析


相信接触了Android studio的都对gradle构建模式不陌生,刚开始的时候只是照着网上的配置,在build.gradle中配置,但是为什么,还是一头雾水,这里来通过具体的项目查看一下Android的gradle机制。

gradle是什么


gradle是目前Android主流的编译工具,和Android studio关系密切,虽然目前还出现了一些其他的编译工具,但是gradle随着更新也会越来越快。



一个项目中会存在至少一个project,一个project中就会有一个build.gradle,如下图所示。




android gradle教程 android的gradle_maven仓库



一个新建的项目中,仅有一个project,在project包下存在build.gradle。


那下面的build.gradle,setting.gradle又是干什么的呢?



android gradle教程 android的gradle_android gradle教程_02



这里我们打开第二个build.gradle,可以看到上面的代码,这里


buildscript


buildscript中的声明是gradle脚本自身需要使用的资源。可以声明的资源包括依赖项、第三方插件、maven仓库地址等。


其中repositories声明了maven仓库,这里Android studio3默认的仓库是google和jcenter,所以就有了上面的声明。



allprojects


顾名思义,对所有项目的设置,这里同样声明了使用的仓库。对于需要所有的项目都拥有的东西,可以在这里进行声明。



settings.gradle



android gradle教程 android的gradle_编译工具_03


里面仅仅只有一句话,include':app',当我们的project很多的时候,需要挨个在这里进行声明,不然gradle找不到具体需要进行编译的project。



app的build.gradle


每个项目中的build.gradle,很明显是对每一个项目进行配置,这里列出一个基本的配置


android gradle教程 android的gradle_Android_04




apply plugin


这里plugin中提供了Android 编译、测试、打包等等的所有task,所以这一步是必须的。



android


关于Android的所有配置都在其中进行,这里对其中的意义进行分析。



compileSdkVersion:Android编译的sdk版本,这里选定了利用什么版本对代码进行编译。


buildToolsVersion:Android的构建的sdk版本。




defaultConfig:就像名字一样,一些默认的设置。



buildTypes:一些预编译的设置,通常在里面可以对打包进行的relese和debug的情况进行设置。



dependencies:该项目的依赖设置。