Android Gradle 學習筆記(七):Android Gradle 插件

咱們知道Android Gradle其實就是一個Gradle的一個第三方插件,它是由Google的Android團隊開發的,基於Gradle構建的,和Android Studio完美搭配。相比於舊的構建系統(好比:Eclipse + Ant),它更靈活,更容易配置,還能方便的建立衍生的版本,也就是咱們經常使用的多渠道包。android

下面是Android 官方對它的介紹:app

(1) 能夠很容易地重用代碼和資源。工具

(2) 能夠很容易的建立應用的衍生版本,好比:建立多個apk、建立不一樣功能的應用。單元測試

(3)能夠很容易地配置、擴展以及自定義構建過程。測試

(4)能和IDE無縫整合。gradle

1、Android 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,對它們進行編譯、測試、發佈等操做。

2、應用 Android Gradle 插件

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便可。

3、Android Gradle 使用配置

1. compileSdkVersion 

compileSdkVersion 是配置編譯Android工程的SDK的版本。

2. buildToolsVersion

buildToolsVersion 是 Android 構建工具的版本。此工具能夠在Android SDK目錄裏面找到,它是一個工具包,包括appt、dex等工具。

3. defaultConfig

defaultConfig 是默認配置。它是一個ProductFlavor。ProductFlavor容許咱們根據不一樣的狀況同時生成多個不一樣的APK包,好比多渠道打包。若是不針對咱們自定義的ProductFlavor單獨配置的話,會爲這個ProductFlavor使用默認的defaultConfig的配置。主要包含如下的配置字段:

  • applicationId:配置的包名。
  • minSdkVersion:最低支持的Android API Level。
  • targetSdkVersion:基於的某個指定Android版本開發。
  • versionCode:App 應用內部版本號,通常用於控制APP升級。
  • versionName:App應用的版本名稱。

4. buildTypes

buildTypes是一個域對象。咱們能夠在buildTypes{}裏新增任意多個咱們須要構建的類型,好比debug,Gradle會幫咱們自動建立一個對應的buildTypes,名字就是咱們定義的名字。

常見的構建類型:

  • minifyEnabled:是否爲該構建類型啓用混淆,false 表示不啓用,須要啓用能夠設置爲true。
  • proguardFiles:當咱們啓用混淆時,所使用proguard的配置文件,咱們能夠經過它配置咱們如何進行proguard混淆,好比混淆的級別,哪些類和方法不進行混淆等。它對應BuildType的proguardFiles方法,能夠接受一個可變參數。

4、Android Gradle 任務

Android 插件是基於Java的插件,基本上包含了全部Java插件的功能,包括繼承的任務,好比assemble、check、build等。除此以外,Android在大類上還添加了connectedCheck、deviceCheck、lint、install、uninstall等任務,這些都是屬於Android特有的功能。其中:

  • connectedCheck:在全部鏈接的設備或者模擬器上運行check檢查。
  • deviceCheck:經過API鏈接遠程設備運行checks。
  • lint:在全部的ProductFlavor上運行lint檢查。
  • install & uninstall :能夠直接在咱們已鏈接的設備上安裝或者卸載你的APP。

通常咱們經常使用的任務就是:build、assemble、clean、lint、check。

相關文章
相關標籤/搜索