如何用Android Studio查看build.gradle源碼

Gradle 編程語言 Android Studio Groovy 快點科技 2017-04-02

上一篇博客裡講過 build.gradle 裡的每一行代碼基本都是在調用一個方法,既然是這樣,我們就可以用 android studio(下面簡稱as) 去查看它源碼的方法註釋說明,這樣就可以理解每個方法是做什麼的了,就算是在大神的 build.gradle 遇見一些沒看懂的代碼,也可以點進去看方法介紹來理解。就像我們在查看 SDK 裡的各種方法一樣。

但是有個問題,應該也有小夥伴跟我一樣吧,每次在大神的 build.gradle 看到一堆不懂的代碼時,按住 Ctrl鍵後,鼠標移到代碼上時有個跳轉的手勢時總是很開心,總是心想原來可以看源碼啊,那就點進去看看介紹,看這個是幹嘛的吧。可是每次一點進去,打開的卻是 class 代碼文件,頂多就只有方法名,一點註釋都沒有,而且方法參數命名還混淆過,也猜不出來是幹嘛的。又不懂怎麼去官方文檔裡查找,只能去網上用關鍵字查找,找出來的又跟自己碰到的問題不一樣,越找越氣乾脆不找了,放一邊去,以後再說。

是吧,如果可以直接通過 as 看源碼的註釋該多好。好了,廢話到這,下面開始正文。

系列索引

...

正文

我們來舉個例子,就像系列一的博客裡介紹的 build.gradle 裡有這樣一段代碼:

如何用Android Studio查看build.gradle源碼

咦!這代碼是第一次在 build.gradle 裡看見過,是什麼意思呢?不怕,我有絕招:

如何用Android Studio查看build.gradle源碼

Android Studio大法---看源碼,還有什麼是不能通過看源碼註釋解決的麼

如何用Android Studio查看build.gradle源碼

是跳到源碼了,可是為什麼沒有方法的註釋說明呢,這方法是什麼鬼誰知道啊。再仔細看看 as 的提示,原來打開的是個 class 文件啊。

as 的提示那裡應該會有個下載和選擇源碼位置的按鈕的啊,搞不懂為什麼不出現。

另外,我們知道,as 一般會默認先打開 xxx-sources.jar 也就是 xxx 的 java 文件源碼,如果沒有源碼文件,才會打開 xxx.jar 的 class 代碼。我們看一下,打開的是什麼文件。

沒錯,as 打開的是 gradle-2.3.0.jar,說明 as 沒有找到 gradle-2.3.0-sources.jar 源碼文件,我們看一下到底是不是這樣

as 標題欄會顯示你當前打開的文件的具體位置,好了,知道了 gradle-2.3.0.jar 在電腦裡的位置了,我們到那個目錄下看看

如何用Android Studio查看build.gradle源碼

只有一個 gradle-2.3.0.jar 文件和一個 pom 文件,正常的話應該還要有個 xxx-sources.jar 文件才對,就像下面這樣

因為這裡沒有 gradle-2.3.0-sources.jar 文件,所以 as 沒辦法打開帶有方法註釋的源碼文件了。既然知道問題,那麼就好解決了,as 的提示條也沒有下載的按鈕,那我們就自己去下載好了

打開 maven 網站,在這裡可以下載 gradle 插件。在搜索框中輸入 com.android.tools.build,為什麼輸入這個,你打開 project 下的 build.gradle 文件看看就知道了

如何用Android Studio查看build.gradle源碼

這些就是 gradle 插件,我們在根目錄下的 build.gradle 配置的 gradle 版本其實就是來這裡下載的,應該是吧。

下載後得到的就是這些文件了,接下去就是找到相應文件的位置,複製一份過去

如何用Android Studio查看build.gradle源碼

打開相應的插件文件夾,選擇相應的版本,最後將下載的 xxx-sources.jar 複製一份進去,最後的樣子如下

如何用Android Studio查看build.gradle源碼

好了,大功告成,我們再打開 as,記得 ReBuild 一下,然後再試試查看 build.gradle 源碼會是什麼樣子

如何用Android Studio查看build.gradle源碼

翻譯一下英文大概就是說, lintOptions.abortOnError = false 是設置即使 lint 檢查時發現錯誤也不停止構建程序的運行。

這種方法比去官方的 api 文檔裡查閱方便多了吧。再來看看幾個效果。

如何用Android Studio查看build.gradle源碼

這裡就可以看到源碼裡介紹 Plugin 的值都有哪些,分別對應哪個類,該去哪個類看它的作用是什麼,幹什麼的。

如何用Android Studio查看build.gradle源碼

藉助 as,我們甚至可以很容易的查到 android{...}這個括號裡能使用的方法都有哪些,如果要看各自的作用是幹什麼的,再繼續點進去查看註釋就行了。是不是發現,我們在 build.gradle 裡的android{...}使用過的標籤名原來都在這裡的啊。

以後就算是再碰到大神的 build.gradle 文件裡各種沒看見過的標籤名,不用再擔心看不懂了。不懂就看源碼註釋嘛,so easy!

當然,大神的 build.gradle 文件裡還是會出現一些 groovy 代碼或者是 task 之類的,這些就不是 gradle 源碼裡能夠查到的了,需要稍微瞭解一下 groovy 和 gradle 語言的基礎,有興趣的可以繼續閱讀下我寫的這個系列裡的相關博客,當然能力不夠,如果你希望更好的學習,網上資料也很多。

相關推薦

推薦中...