Groovy 是一種動態(tài)語言。這種語言比較有特點,它和 Java 一樣,也運行于 Java 虛擬機中。恩??對頭,簡單粗暴點兒看,你可以認為 Groovy 擴展了 Java 語言。比如,Groovy 對自己的定義就是:Groovy 是在 java 平臺上的、 具有像 Python, Ruby 和 Smalltalk 語言特性的靈活動態(tài)語言, Groovy 保證了這些特性像 Java 語法一樣被 Java 開發(fā)者使用。
除了語言和 Java 相通外,Groovy 有時候又像一種腳本語言。前文也提到過,當我執(zhí)行 Groovy 腳本時,Groovy 會先將其編譯成 Java 類字節(jié)碼,然后通過 Jvm 來執(zhí)行這個 Java 類。圖 1 展示了 Java、Groovy 和 Jvm 之間的關(guān)系。
http://wiki.jikexueyuan.com/project/deep-android-gradle/images/1.jpg" alt="" />
實際上,由于 Groovy Code 在真正執(zhí)行的時候已經(jīng)變成了 Java 字節(jié)碼,所以 JVM 根本不知道自己運行的是 Groovy 代碼。
下面我們將介紹 Groovy。由于此文的主要目的是 Gradle,所以我們不會過多討論 Groovy 中細枝末節(jié)的東西,而是把知識點集中在以后和 Gradle 打交道時一些常用的地方上。
在學(xué)習(xí)本節(jié)的時候,最好部署一下 Groovy 開發(fā)環(huán)境。根據(jù) Groovy 官網(wǎng)的介紹(http://www.groovy-lang.org/download.html#gvm),部署 Groovy 開發(fā)環(huán)境非常簡單,在 Ubuntu 或者 cygwin 之類的地方:
http://wiki.jikexueyuan.com/project/deep-android-gradle/images/2.jpg" alt="" />
然后,創(chuàng)建一個 test.groovy 文件,里邊只有一行代碼:
println "hello groovy"
http://wiki.jikexueyuan.com/project/deep-android-gradle/images/3.jpg" alt="" />
親們,必須要完成上面的操作啊。做完后,有什么感覺和體會?
最大的感覺可能就是 groovy 和 shell 腳本,或者 python 好類似。
另外,除了可以直接使用 JDK 之外,Groovy 還有一套 GDK,網(wǎng)址是 http://www.groovy-lang.org/api.html。
說實話,看了這么多家 API 文檔,還是 Google 的 Android API 文檔做得好。其頁面中右上角有一個搜索欄,在里邊輸入一些關(guān)鍵字,瞬間就能列出候選類,相關(guān)文檔,方便得不得了啊.....