伊莉討論區

標題: 關於 Android的 Gradle 怎麼使用? [打印本頁]

作者: asdfg0205    時間: 2018-5-25 08:47 PM     標題: 關於 Android的 Gradle 怎麼使用?

本帖最後由 asdfg0205 於 2018-5-25 08:48 PM 編輯

不好意思  在網路上看了好多資料 我實在是不懂 什麼是自動化建構 到底是建構什麼東西
那 Gradle 又該怎麼用 ?  
現在正在用 Android studio
我想學一個 APP 然後 那個網頁的話:
{
一開始記得要在 Gradle 加入這行  compile 'com.android.support:recyclerview-v7:24.1.1'   
}
Gradle 好像是要額外下載?  那下載後還要匯入還是???那這行是打在哪裡?  打在 XML檔的 第一行嗎?

想請教各位大大 白話一點的向我說明下 小弟實在愚笨  看不懂 其他網站解釋的 小弟完全不懂
自動建構工具 Gradle  Ant  Maven   

作者: codewice    時間: 2018-6-3 01:11 AM

先說結論,嚴格來說 Android 跟 gradle 跟 Android studio 是不同的事情,只是近期的 Android app 主流都用 gradle 當建構工具

首先,寫一個 java 檔的時候,我們會用 javac 去編譯它,產生一個 class 檔。一兩個檔案還好,沒什麼大問題,但是程式寫幾個月之後,往往就長出幾十個檔案,要再次手動下指令去編譯可以說一定出問題。

懶惰的工程師,就會寫另外一支程式,方便我們來編譯一堆原始碼產生出希望的結果,這個程式就是你說的「建構工具」。Gradle 跟 ant 都是建構工具,看你喜歡用哪一套。

建構工具不會知道你自己的程式碼會寫成什麼樣子,也不會知道你加入哪些奇奇怪怪的東西。所以建構工具經常就會有些「慣例」,好比說「如果想用 gradle,那麼你的程式碼應該要放在什麼路徑底下」。除了符合這些慣例之外,你還要寫一些檔案,來告訴建構工具:「我的程式碼有哪些需求,我希望工具能幫我做好哪些事情」,這些檔案就是以 .gradle 結尾的檔案。

所以,理論上你可以寫 Android 的程式,完全不用 gradle。像 AOSP 裡面就有不少 app 是用 Makefile 呼叫 AOSP 自己的 build system。

但我們不需要這樣虐待自己,現在多數的 Android app 都已經把建構工具設定好了,也通常是 gradle,裡面放了 gradlew 來用。你如果會用 command line 的話,可以找一個 android app 的 open source 小專案,程式碼 clone 下來之後用 gradlew 玩玩看

./gradlew tasks  # 列出有哪些 task 可以用,常見的就是 build 與 install
./gradlew build # 編出 apk
./gradlew install # 把編譯產生的 apk 裝到手機上面

gradle 還會幫你處理相依性的問題,以你說的 recyclerview 為例,我們會把它寫在 app/build.gradle 這個檔案裡面,就是跟 gradle 說:「我的程式碼裡面會用到 android 的 recyclerview,gradle 請幫我下載需要的檔案,讓我可以安心地使用它」。gradle 就會幫你把檔案抓下來放到特定的地方,編譯 app 的時候也會把需要的東西放進去。對程式開發者而言,就只要專心去寫真正重要的程式就好,不用花時間處理這些無聊的小事。

gradle 可以編譯 java 的專案,剛好 Android 是用 Java 當語言,所以 Android app 的開發主流就是拿 gradle 來當建構工具。兩者是不一樣的事情,只是很幸運地,兩者可以很好地一起工作。

你可以在完全沒有 IDE (Android Studio) 的情況下,使用 gradle 來編譯 Android 程式。既然 Google 官方都建議使用 gradle 了,理所當然他們也在官方的 IDE 裡面對 gradle 有更好的支援,讓你可以更輕鬆的透過 Android studio 來操作 gradle,不需要自己一直手動下指令。所以 Android studio 跟 gralde 也是不一樣的事情,只是,一樣很幸運地,兩者可以很好地一起工作。

想要弄懂建構工具是好事,真的想弄懂最好是從 command line 慢慢敲指令感受差異。強大的 IDE 隱藏了很多細節,想從 IDE 去弄懂 build tool 應該會事倍功半。

不過矛盾的是,如果你身邊沒有熟悉工具的人可以教你,我反倒建議你,就乖乖地先抓一些 open source 的 android app,編譯幾次感受一下最基本的工具用法。隨後再慢慢修改 gradle 的檔案,弄懂自己每一步是在做什麼事情,慢慢鑽研下去。一開始就硬派的從 command line 開始我也覺得不是壞事,若缺乏基本的系統知識,熱情很快就會被消磨完了。




歡迎光臨 伊莉討論區 (http://web01.eyny.com/) Powered by Discuz!