咱們知道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。