日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

Gradle是一個構建工具,它是用來幫助我們構建App的,構建包括編譯、打包等過程。我們可以為Gradle指定構建規則,然后它就會根據我們的“命令”自動為我們構建app。Android Studio中默認就使用Gradle來完成應用的構建。有些同學可能會有疑問:”我用AS不記得給Gradle指定過什么構建規則呀,最后不還是能搞出來個apk。“ 實際上,app的構建過程是大同小異的,有一些過程是”通用“的,也就是每個app的構建都要經歷一些公共步驟。因此,在我們在創建工程時,Android Studio自動幫我們生成了一些通用構建規則,很多時候我們甚至完全不用修改這些規則就能完成我們app的構建。

 

有些時候,我們會有一些個性化的構建需求,比如我們引入了第三方庫,或者我們想要在通用構建過程中做一些其他的事情,這時我們就要自己在系統默認構建規則上做一些修改。這時候我們就要自己向Gradle”下命令“了,這時候我們就需要用Gradle能聽懂的話了,也就是groovy。Groovy是一種基于JVM的動態語言,關于它的具體介紹,感興趣的同學可以文末參考”延伸閱讀“部分給出的鏈接。

我們在開頭處提到“Gradle是一種構建工具”。實際上,當我們想要更靈活的構建過程時,Gradle就成為了一個編程框架——我們可以通過編程讓構建過程按我們的意愿進行。也就是說,當我們把Gradle作為構建工具使用時,我們只需要掌握它的配置腳本的基本寫法就OK了


 


gradle組成

groovy語法(相當于安卓使用JAVA) build script block(點build文件) gradle api(和安卓一樣在java的基礎上還有添加了自己的api)

 

gradle從源碼的編譯、資源的編譯、生成一個個Task逐個執行Task;Task源碼開源

 

  • 擴展性: 支持插件機制
  • 兼容性:兼容所有ant、maven功能
生命周期

 

也就是各種任務(Task)的執行過程

ps:任務也有依賴性,某個任務執行如果依賴其他任務,則需要執行完其他任務;再執行此任務

1、聲明周期的三個階段 (1)情景回顧

諸如Executing task xxx、Configure project、BUILD SUCCESSFUL in 0s之類的,其實這些過程就是gradle執行聲明周期的一些流程

(2)生命周期的三個階段 1、initialization:初始化階段

執行工程的setting.gradle文件

 

  • 解析整個工程下的所有Project,構建所有的Project對應的project對象
2、Configuration:配置階段

 

解析所有project對象中的task,構建好所有的task拓撲圖(有向無環圖)

 

  • 這個有向無環其實就是各個執行一個Task所依賴的其他Task而形成的一種關系
3、Excution:執行階段

 

執行具體的task,及其依賴的task(先執行目標Task依賴的Task,再執行目標Task)

如上情景回顧的實例,用戶可以通過命令行輸入命令,或者通過右面的Gradle窗口的Task下雙擊Task名執行Gradle任務;執行了clean命令

觀察發現:

 

1、19:04:22: Executing task ‘clean’…這里開始初始化 2、Configure project :這里開始配置 3、Task :clean執行任務(clean沒有依賴其他的Task所以直接執行了clean,你如果執行build任務,或在執行前先執行build依賴的task)
2、聲明周期的常見監聽方法
  • tips:Project,Task,是Gradle提供的api

 

建立個Gradle工程

 

  • 和建立什么Helloword項目一樣,一直next即可,建立完成后會有如下兩個點gradle文件
1、由上我們知道你執行一個任務時,會先讀取這個setting.gradle完成工程初始化、配置、然后再執行具體任務 2、在看看Build.gradle文件,其實他就是一個任務名,即Task的名字。和上文的clean一樣是一個任務。我們可以在命令行輸入 gradle build或者右面的Gradle窗口,雙擊Task先的build即可執行build任務。這時便會執行build.gradle內部的代碼的
(1)初始化結束/配置開始階段的監聽 padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">this.beforeEvaluate {} (2)配置階段完成后的監聽 this.afterEvaluate {} 1 (3)執行任務完成 this.gradle.buildFinished {} 1 (4)初始化階段開始

 

只需在setting.gradle 文件中寫邏輯即可,我們知道這里肯定會在初始化之前執行。

3、聲明周期監聽Demo (1)setting.gradle rootProject.name = 'Test' println("初始化階段開始") (2)build.gradle plugins { id 'groovy' } group 'Test' version '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { compile 'org.codehaus.groovy:groovy-all:2.3.11' testCompile group: 'junit', name: 'junit', version: '4.12' } //----------------------------以上為系統的,以下為我們自己寫的回調demo------------------------------------ //配置階段開始前 監聽回調 this.beforeEvaluate {} // 配置階段完成后 this.afterEvaluate { println("配置完成后") } this.gradle.buildFinished { println("執行階段執行完畢") } 4、其他常見監聽方式 //等同beforeEvaluate this.gradle.beforeProject {} //等同配置階段完成后 this.gradle.afterProject {}

分享到:
標簽:Gradle
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定