Gradle 完整指南(Android)

Gradle 的編譯週期

 

在解析 Gradle 的編譯過程以前咱們須要理解在 Gradle 中很是重要的兩個對象。ProjectTask數據結構

每一個項目的編譯至少有一個 Project,一個 build.gradle就表明一個project,每一個project裏面包含了多個task,task 裏面又包含不少actionaction是一個代碼塊,裏面包含了須要被執行的代碼。gradle

在編譯過程當中, Gradle 會根據 build 相關文件,聚合全部的projecttask,執行task 中的 action。由於 build.gradle文件中的task很是多,先執行哪一個後執行那個須要一種邏輯來保證。這種邏輯就是依賴邏輯,幾乎全部的Task 都須要依賴其餘 task 來執行,沒有被依賴的task 會首先被執行。因此到最後全部的 Task 會構成一個 有向無環圖(DAG Directed Acyclic Graph)的數據結構。ui

編譯過程分爲三個階段:code

  • 初始化階段:建立 Project 對象,若是有多個build.gradle,也會建立多個project.
  • 配置階段:在這個階段,會執行全部的編譯腳本,同時還會建立project的全部的task,爲後一個階段作準備。
  • 執行階段:在這個階段,gradle 會根據傳入的參數決定如何執行這些task,真正action的執行代碼就在這裏.
做者:花翁 連接:https://www.jianshu.com/p/9df3c3b6067a 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索