深入理解Android之Gradle(一)

現(xiàn)在,搞APP開發(fā),編譯/打包等問題成為痛點,例如:

  • 一個APP有多個版本,Release版、Debug版、Test版,還有現(xiàn)在做的比較多的,多渠道打包,針對不同的應用市場打不同的渠道包,雖然可以配置Android.mk,但需要依賴整個Android源碼,而且還不能完全滿足條件;
  • library 工程我們需要編譯成jar包,然后發(fā)布給其他應用開發(fā)者使用,一般在eclipse上就需要export;如果這一切自動編譯成jar包,對開發(fā)者來說,真是福利滿滿??;

那如果使用構(gòu)建工具,我們就會更好的解決構(gòu)建過程中的各種問題。對于構(gòu)建,很多人會立馬想到build或者是make,就是根據(jù)輸入信息然后做一堆事情,最后得到Aritifact;例如:make構(gòu)建工具,就是根據(jù)Makefile文件里面寫的規(guī)則,執(zhí)行相應的命令,最后得到產(chǎn)物;下面我們來詳情介紹Gradle相關(guān)的內(nèi)容;此系列文章為學習總結(jié),理解或?qū)嵺`會有錯誤的地方,還希望各位大佬指出,促進學習!

Gradle 介紹

在Gradle火爆之前,我們常見的構(gòu)建工具是ANT,后來進化成Maven,借鑒網(wǎng)上的說法:Maven編譯規(guī)則是XML來編寫的,XML雖然通俗易懂,但是很難再XML文件中面熟if{某條件成立,編譯某文件}else{編譯其他文件}這樣有不同條件的任務;Gradle使用的是Groovy動態(tài)語言進行編寫,Groovy是基于java并且拓展java,而且Gradle除了靈活的語言編寫構(gòu)建規(guī)則外,還有一點是領(lǐng)域相關(guān)語言DSLDomain Specific Language??偨Y(jié)來說,可以發(fā)現(xiàn)Gradle構(gòu)建工具更能讓開放者上手。下面我這邊咱們來慢慢學習:

Groovy 語言簡單介紹

Groovy之前我這邊也簡單介紹過,這邊有一點需要注意的是:當我們執(zhí)行Groovy腳本時,Groovy會先將其編譯成Java 類字節(jié)碼,然后通過JVM來執(zhí)行這個java類。

Groovy 開發(fā)環(huán)境
Groovy 官方網(wǎng)站地址,部署開發(fā)環(huán)境還是相對簡單:

  • $ curl -s get.sdkman.io | bash
  • $ source "$HOME/.sdkman/bin/sdkman-init.sh"
  • $ sdk install groovy
  • $ groovy -version

以上就安裝完畢;
輸入-virtual-machine:~$ groovyConsole
可以打開一個用Groovy寫的圖形化的GUI,非常簡潔好用,

  • Ctrl+R 執(zhí)行窗口代碼,如果有代碼段被選中則執(zhí)行選中的代碼。
  • Ctrl+W 清空輸出面板。默認不清空,可以在菜單-View里勾選"Auto Clean Output On Run"在每次執(zhí)行前自動清空。默認每行代碼都打印到輸出面板,可以在菜單-View里取消勾選"Show Script in output"。
  • Ctrl+L 編譯,語法錯誤很容易就爆出來了哦。
  • Ctrl+I 查看最后運行的表達式的對象信息,包括所在類的所有方法。
  • Ctrl+J 查看最后運行的代碼里的所有變量信息,和所在類的所有方法。
  • Ctrl+T 查看生成的抽象語法樹(AST)的類。
    如果程序執(zhí)行時間比較長,想要終止程序,記得在菜單--Script里勾選"Allow Interruption",否則點擊"Interrupt Running Script"是沒有用的。
    面板最下面一行是狀態(tài)顯示欄,左邊顯示程序執(zhí)行情況,最右邊是光標所在的row:column
    一般的小腳本不需要導入jar包,如果需要外部jar包的時候,通過菜單--Script里的"add jar to classpath"或者"add directory to classpath"就可以使用了,不過這個在每次打開的時候都需要設(shè)置,所以如果是常用的jar包,可以直接把它們放到groovy的lib目錄里面這樣每次啟動的時候都會自動加載。

以上準備工作做完,即將進入我們的學習Gradle之旅,歡迎關(guān)注后續(xù)更新
,相互學習

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,285評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評論 19 139
  • 導語: 隨著技術(shù)的發(fā)展,不管是前端開發(fā)、服務端開發(fā)或者是移動端開發(fā)(移動也是前端的一個分支)中都會用到自動化構(gòu)建工...
    伊始雨深閱讀 3,154評論 0 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,319評論 25 708
  • 有人說家家有本安難念的經(jīng),清官難斷家務事。在我看來女人之間的事,也差不多如此,藕斷絲連,難以辨得干凈。 要說女人間...
    擁有了凡生活的力量閱讀 390評論 14 3

友情鏈接更多精彩內(nèi)容