咱们知道Android Gradle其实就是一个Gradle的一个第三方插件,它是由Google的Android团队开发的,基于Gradle构建的,和Android Studio完美搭配。相比于旧的构建系统(好比:Eclipse + Ant),它更灵活,更容易配置,还能方便的建立衍生的版本,也就是咱们经常使用的多渠道包。android
下面是Android 官方对它的介绍:app
(1) 能够很容易地重用代码和资源。工具
(2) 能够很容易的建立应用的衍生版本,好比:建立多个apk、建立不一样功能的应用。单元测试
(3)能够很容易地配置、扩展以及自定义构建过程。测试
(4)能和IDE无缝整合。gradle
Android Gradle插件的分类就是根据Android工程的属性分类的。在Android中有3类工程,一类是App工程,它能够生成一个可运行的apk应用。一类是Library库工程,它能够生成AAR包给其余的App工程公用,就和咱们的jar包同样,可是它包含了Android的资源等信息,是一个特殊的jar包。最后一类是Test测试工程,用于对App工程或者Library库工程进行单元测试。ui
App 插件 id :com.android.applicationspa
Library 插件 id : com.android.library插件
Test 插件 id:com.android.testdebug
经过应用以上三种不一样的插件,就能够配置咱们的工程是一个Android App工程,仍是一个Android Library工程,或者是一个Android Test测试工程。而后咱们就能够配合着Android Studio,对它们进行编译、测试、发布等操做。
Android Gradle 插件做为Gradle的第三方插件,它托管在Jcenter上,在应用以前,咱们要先配置依赖classpath,这样咱们在应用插件的时候,Gradle才能找到它们:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.4.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }
咱们配置仓库为jcenter,这样当咱们配置依赖的时候,Gradle就会去这个仓库寻找咱们的依赖。而后咱们在dependencies{}配置里声明,咱们须要的是Android Gradle 3.4.0版本的插件。
buildscript{} 这部分配置能够写到根工程的build.gradle脚本文件中,这样全部的子工程就不用重复配置了。以上配置好以后,咱们就能够应用咱们的Android Gradle插件了:
apply plugin: 'com.android.application' android { compileSdkVersion 28 }
android {} 是 Android 插件提供的一个扩展类型,可让咱们自定义Android Gradle工程。
以上的例子是一个App工程插件,应用Android Library插件和Android Test插件也是相似的,只须要换成其相应的id便可。
compileSdkVersion 是配置编译Android工程的SDK的版本。
buildToolsVersion 是 Android 构建工具的版本。此工具能够在Android SDK目录里面找到,它是一个工具包,包括appt、dex等工具。
defaultConfig 是默认配置。它是一个ProductFlavor。ProductFlavor容许咱们根据不一样的状况同时生成多个不一样的APK包,好比多渠道打包。若是不针对咱们自定义的ProductFlavor单独配置的话,会为这个ProductFlavor使用默认的defaultConfig的配置。主要包含如下的配置字段:
buildTypes是一个域对象。咱们能够在buildTypes{}里新增任意多个咱们须要构建的类型,好比debug,Gradle会帮咱们自动建立一个对应的buildTypes,名字就是咱们定义的名字。
常见的构建类型:
Android 插件是基于Java的插件,基本上包含了全部Java插件的功能,包括继承的任务,好比assemble、check、build等。除此以外,Android在大类上还添加了connectedCheck、deviceCheck、lint、install、uninstall等任务,这些都是属于Android特有的功能。其中:
通常咱们经常使用的任务就是:build、assemble、clean、lint、check。