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

來源:互聯網
上載者:User

標籤:複製   class   -o   顯示   程式   abort   result   學習   lse   

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

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

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

系列索引

build.gradle系列一:看不懂的build.gradle代碼
build.gradle系列二:學點Groovy來理解build.gradle代碼
build.gradle系列三:如何用Adnroid Studio查看build.gradle源碼
...

本文

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

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

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

是跳到源碼了,可是為什麼沒有方法的注釋說明呢,這方法是什麼鬼誰知道啊。再仔細看看 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 在電腦裡的位置了,我們到那個目錄下看看

只有一個 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 檔案看看就知道了


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

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

開啟相應的外掛程式檔案夾,選擇相應的版本,最後將下載的 xxx-sources.jar 複製一份進去,最後的樣子如下

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


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

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

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

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

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

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


最近剛開通了公眾號,想激勵自己堅持寫作下去,初期主要分享原創的Android或Android-Tv方面的小知識,感興趣的可以點一波關注,謝謝支援~~

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.