深入理解Android之Gradle(一)

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

  • 一個(gè)APP有多個(gè)版本批狱,Release版阳懂、Debug版梅尤、Test版,還有現(xiàn)在做的比較多的岩调,多渠道打包巷燥,針對(duì)不同的應(yīng)用市場(chǎng)打不同的渠道包,雖然可以配置Android.mk,但需要依賴整個(gè)Android源碼号枕,而且還不能完全滿足條件缰揪;
  • library 工程我們需要編譯成jar包,然后發(fā)布給其他應(yīng)用開發(fā)者使用堕澄,一般在eclipse上就需要export;如果這一切自動(dòng)編譯成jar包邀跃,對(duì)開發(fā)者來(lái)說(shuō),真是福利滿滿巴茏稀拍屑;

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

Gradle 介紹

在Gradle火爆之前窖杀,我們常見的構(gòu)建工具是ANT,后來(lái)進(jìn)化成Maven,借鑒網(wǎng)上的說(shuō)法:Maven編譯規(guī)則是XML來(lái)編寫的裙士,XML雖然通俗易懂入客,但是很難再XML文件中面熟if{某條件成立,編譯某文件}else{編譯其他文件}這樣有不同條件的任務(wù);Gradle使用的是Groovy動(dòng)態(tài)語(yǔ)言進(jìn)行編寫桌硫,Groovy是基于java并且拓展java夭咬,而且Gradle除了靈活的語(yǔ)言編寫構(gòu)建規(guī)則外,還有一點(diǎn)是領(lǐng)域相關(guān)語(yǔ)言DSLDomain Specific Language铆隘≈宀海總結(jié)來(lái)說(shuō),可以發(fā)現(xiàn)Gradle構(gòu)建工具更能讓開放者上手咖驮。下面我這邊咱們來(lái)慢慢學(xué)習(xí):

Groovy 語(yǔ)言簡(jiǎn)單介紹

Groovy之前我這邊也簡(jiǎn)單介紹過,這邊有一點(diǎn)需要注意的是:當(dāng)我們執(zhí)行Groovy腳本時(shí)训枢,Groovy會(huì)先將其編譯成Java 類字節(jié)碼托修,然后通過JVM來(lái)執(zhí)行這個(gè)java類。

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

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

以上就安裝完畢睦刃;
輸入-virtual-machine:~$ groovyConsole
可以打開一個(gè)用Groovy寫的圖形化的GUI,非常簡(jiǎn)潔好用十酣,

  • Ctrl+R 執(zhí)行窗口代碼涩拙,如果有代碼段被選中則執(zhí)行選中的代碼。
  • Ctrl+W 清空輸出面板耸采。默認(rèn)不清空兴泥,可以在菜單-View里勾選"Auto Clean Output On Run"在每次執(zhí)行前自動(dòng)清空。默認(rèn)每行代碼都打印到輸出面板虾宇,可以在菜單-View里取消勾選"Show Script in output"搓彻。
  • Ctrl+L 編譯,語(yǔ)法錯(cuò)誤很容易就爆出來(lái)了哦嘱朽。
  • Ctrl+I 查看最后運(yùn)行的表達(dá)式的對(duì)象信息旭贬,包括所在類的所有方法。
  • Ctrl+J 查看最后運(yùn)行的代碼里的所有變量信息搪泳,和所在類的所有方法稀轨。
  • Ctrl+T 查看生成的抽象語(yǔ)法樹(AST)的類。
    如果程序執(zhí)行時(shí)間比較長(zhǎng)岸军,想要終止程序奋刽,記得在菜單--Script里勾選"Allow Interruption",否則點(diǎn)擊"Interrupt Running Script"是沒有用的凛膏。
    面板最下面一行是狀態(tài)顯示欄杨名,左邊顯示程序執(zhí)行情況,最右邊是光標(biāo)所在的row:column
    一般的小腳本不需要導(dǎo)入jar包猖毫,如果需要外部jar包的時(shí)候台谍,通過菜單--Script里的"add jar to classpath"或者"add directory to classpath"就可以使用了,不過這個(gè)在每次打開的時(shí)候都需要設(shè)置,所以如果是常用的jar包趁蕊,可以直接把它們放到groovy的lib目錄里面這樣每次啟動(dòng)的時(shí)候都會(huì)自動(dòng)加載坞生。

以上準(zhǔn)備工作做完,即將進(jìn)入我們的學(xué)習(xí)Gradle之旅掷伙,歡迎關(guān)注后續(xù)更新
是己,相互學(xué)習(xí)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市任柜,隨后出現(xiàn)的幾起案子卒废,更是在濱河造成了極大的恐慌,老刑警劉巖宙地,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摔认,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宅粥,警方通過查閱死者的電腦和手機(jī)参袱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秽梅,“玉大人抹蚀,你說(shuō)我怎么就攤上這事∑罂眩” “怎么了环壤?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)钞诡。 經(jīng)常有香客問我镐捧,道長(zhǎng),這世上最難降的妖魔是什么臭增? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任懂酱,我火速辦了婚禮,結(jié)果婚禮上誊抛,老公的妹妹穿的比我還像新娘列牺。我一直安慰自己,他們只是感情好拗窃,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布瞎领。 她就那樣靜靜地躺著,像睡著了一般随夸。 火紅的嫁衣襯著肌膚如雪九默。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天宾毒,我揣著相機(jī)與錄音驼修,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛乙各,可吹牛的內(nèi)容都是我干的墨礁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼耳峦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恩静!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蹲坷,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤驶乾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后循签,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轻掩,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年懦底,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罕扎。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡聚唐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出腔召,到底是詐尸還是另有隱情杆查,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布臀蛛,位于F島的核電站亲桦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏浊仆。R本人自食惡果不足惜客峭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抡柿。 院中可真熱鬧舔琅,春花似錦、人聲如沸洲劣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)囱稽。三九已至郊尝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間战惊,已是汗流浹背流昏。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人横缔。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓铺遂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親茎刚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子襟锐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評(píng)論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)膛锭,斷路器粮坞,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 導(dǎo)語(yǔ): 隨著技術(shù)的發(fā)展,不管是前端開發(fā)初狰、服務(wù)端開發(fā)或者是移動(dòng)端開發(fā)(移動(dòng)也是前端的一個(gè)分支)中都會(huì)用到自動(dòng)化構(gòu)建工...
    伊始雨深閱讀 3,020評(píng)論 0 4
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,497評(píng)論 25 707
  • 有人說(shuō)家家有本安難念的經(jīng)莫杈,清官難斷家務(wù)事。在我看來(lái)女人之間的事奢入,也差不多如此筝闹,藕斷絲連,難以辨得干凈腥光。 要說(shuō)女人間...
    擁有了凡生活的力量閱讀 334評(píng)論 14 3