Gradle 系列部落格梳理

TigerJin發表於2021-09-09

這一年來陸陸續續寫了 6 篇 Gradle 相關的部落格,本篇便來做一下彙總梳理,方便查閱,也分享給大夥。

  •  專案裡的 build.gradle 為例來初步接觸 build.gradle,因為大神的 build.gradle 用到了挺多平常不常用到的特性,而且是很實用的功能。

    以此為敲門磚來開始學習 Gradle 相關知識點。

    2. 學點 Groovy 來理解 build.gradle 程式碼

    由於 Gradle 是基於 Groovy 語言的,瞭解一下 Groovy 語言的語法特性,對於理解 build.gradle 裡的程式碼有一定的幫助,因此第二篇就是來介紹 Groovy 的相關特性。

    但由於 Groovy 又是基於 Java,而且完美相容 Java,所以本篇重點在於介紹 Groovy 與 Java 之間的不同點,學完本篇也就清楚為什麼說 build.gradle 裡一行行的程式碼大部分都是在呼叫對應的方法。

    3. 如何用 Android Studio 檢視 build.gradle 原始碼

    學完第二篇,我們就清楚了原來 build.gradle 裡一行行的配置項,其實都是在呼叫某個方法,那麼如果可以直接看到對應原始碼的註釋說明,對於一些沒看過的配置項也可以直接去看註釋來理解,或者透過原始碼來搜尋是否還有其他可選配置項。

    說了是原始碼,其實分兩部分,一部分是 Android Gradle 外掛的原始碼,但由於某些原因,可能 Android Studio 並沒有將原始碼下載下來,那麼就需要自己去下載了,所以本篇介紹的如何自行去下載 Android Gradle 外掛的原始碼。

    還有一部分是 Gradle 的原始碼,但這個通常都會下載成功,這個通常不用過多關注。

    另外,本篇正文中介紹的下載方法,目前已經下載不到新版的 Android Gradle 外掛的原始碼了,只能下載舊版本的原始碼,新版本的下載方法來評論區有人已經給出,在文章開頭也有提到。

    4. 讀書筆記--Androoid Gradle 權威指南(上)

    前三篇都是基於 build.gradle 為入手點,來學習相關知識。第四篇開始,透過《Android Gradle 權威指南》一書來較為系統的學習相關知識點,所以第四篇和第五篇都是針對這本書所做的筆記內容,記錄一些自己的理解和較為重要的點。

    5. 讀書筆記--Android Gradle 權威指南(下)

    本篇和上一篇的內容是前後銜接,分兩篇對《Android Gradle》一書來做總結,總結的點如下:

    1. Groovy 基礎

    2. Android 專案中的 Gradle
      2.1 gradle/wrapper 目錄
      2.2 gradlew.bat 檔案
      2.3 setting.gradle 檔案
      2.4 build.gradle 文

    3. Gradle 基礎
      3.1 task 概念
      3.2 gradle 外掛概念

    4. 區分 Gradle 和 Android Gradle

    5. build.gradle 程式碼
      5.1 apply plugin: 'com.android.application'
      5.2 android {}
      5.3 buildTypes {}
      5.4 productFlavors {}
      5.5 flavorDimensions
      5.6 applicationVariants
      5.7 buildToolsVersion
      5.8 其他

    6. Gradle 各種技巧
      6.1 批次修改生成的 apk 檔名
      6.2 System.getenv()
      6.3 動態配置 AndroidManifest.xml 檔案
      6.4 美團黑科技多渠道打包
      6.5 Gradle 效能檢測
      6.6 關閉指定 task

    7. gradle 指令碼

    透過這兩篇,應該要學習到 Gradle 和 Android Gradle 外掛這兩個概念,以及清楚為什麼需要這些配置,以及搞懂為什麼有時候開啟一個 Github 上的新專案時會一直卡在構建中,以及掌握 build.gradle 中各種配置項的作用。

    6. 再寫個 Gradle 指令碼幹活去,解放雙手

    基於前面所學到的 Gradle 的基礎知識,本篇就可以來應用到一些具體場景中,比如透過寫 Gradle 指令碼來做一些重複性,手工性的工作。

    那麼指令碼所涉及到的工作,大概就是檔案的遍歷工作,java 命令的執行,以及字串的處理。

    後記

    Gradle 系列的相關部落格就暫時到此告一段落了,雖然仍然還有一部分知識沒涉及到,比如如何自定義 Gradle 外掛等等,由於沒有相關方面的需求,等待後續有接觸時再來繼續補充。

    來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2144/viewspace-2801649/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章