Android Studio如何查看源碼并調(diào)試的方法步驟
背景
最近遇到一個(gè)Dialog問題,在6.0的手機(jī)上才可以重現(xiàn),但是我們的工程已經(jīng)是targetsdk=28了,點(diǎn)擊Dialog的引用,只能看見28的class文件,現(xiàn)在我也越來越懶了,以前針對這種問題,我都會寫個(gè)demo,去重現(xiàn)問題,但是現(xiàn)在希望能直接在當(dāng)前工程快速定位出原因,能夠基于源碼debug肯定更好了,為了實(shí)現(xiàn)這個(gè)懶的目標(biāo),我找了很多辦法,下面就一一介紹下
方法一 切換compilesdk
studio默認(rèn)使用的是gradle里配置的compilesdkversion,只要你把compilesdkversi設(shè)置成23,自然就可以通過查看define的快捷鍵,進(jìn)入到對應(yīng)的class文件,但是我的項(xiàng)目已經(jīng)是28了,降回6.0,必然有很多API無法編譯,此路不同
方法二 尋找studio插件
既然studio提供的默認(rèn)方式不行,那我們就找插件來實(shí)現(xiàn)呢?通過各種搜索大法,我找到了一款不錯(cuò)的插件,AndroidSourceViewer ; 功能十分強(qiáng)大:
- 支持查看 Android / Java 任意版本源碼
- 支持對比 Android / Java 任意兩個(gè)版本源碼差異
- 支持 Android 官網(wǎng)文檔查看和方法定位
- 支持 Native 方法源碼查看
具體可以看截圖:
正當(dāng)我滿心歡喜的開啟debug時(shí),發(fā)現(xiàn)studio無法識別該代碼,原因是作者的思路是在類名前面加版本號。。。例如.AndroidSourceViewer/cache/android/app/8.0.0_r4-Dialog.java于是我憤怒的提了個(gè)issue此路再次失敗
方法三 修改studio配置,直接鏈接到對應(yīng)源碼
我的想法時(shí),我找到studio跳轉(zhuǎn)源碼的配置文件,將原本跳到28的jar包的配置,修改成23,這樣不就完美了,于是我又開啟了搜索大法,網(wǎng)上都說,修改jdk-table.xml,可以達(dá)到我的目的,然而。。親測不可以;不論我怎么修改,都沒有反應(yīng);
于是我又想到了idea的緩存,果然功夫不負(fù)有心人,我找到了這么個(gè)文件:
.idea/libraries/Gradle__android_android_28.xml
<component name="libraryTable"> <library name="Gradle: android-android-28"> <CLASSES> <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-27/android.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> <root url="file://$USER_HOME$/Library/Android/sdk/sources/android-28" /> </SOURCES> </library> </component>
PS:該文件可能沒有,大家可以手動添加到自己的緩存里
通過修改這個(gè)文件,只要源碼路徑存在,那就可以很方便的其他版本的源碼并且調(diào)試了;但是修改源碼路徑有風(fēng)險(xiǎn),大家還是謹(jǐn)慎操作,同時(shí)記得不用的時(shí)候清空緩存。。
總結(jié)
現(xiàn)在國內(nèi)網(wǎng)上很多文章,都是復(fù)制的,我也不知道為啥;像我搜到的jdk-table.xml,根本沒法用,可能它只是對新項(xiàng)目生效的,有可能是studio版本升級導(dǎo)致,總之,這個(gè)文章的原作者也是很辛苦的,但是其他人復(fù)制過去,又不加以維護(hù),實(shí)在是誤人子弟。。
另外一點(diǎn)就是,可以看源碼還是很爽的~
到此這篇關(guān)于Android Studio如何查看源碼并調(diào)試的方法步驟的文章就介紹到這了,更多相關(guān)Android Studio查看源碼并調(diào)試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
listview與SQLite結(jié)合實(shí)現(xiàn)記事本功能
這篇文章主要為大家詳細(xì)介紹了listview與SQLite結(jié)合實(shí)現(xiàn)記事本功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12一文帶你了解Android中的網(wǎng)絡(luò)請求
安卓開發(fā)網(wǎng)絡(luò)請求可謂是安卓開發(fā)的靈魂,如果你不會網(wǎng)絡(luò)請求,那么你開發(fā)的應(yīng)用軟件就是一具沒有靈魂的枯骨。本文主要為大家介紹的是Android的網(wǎng)絡(luò)請求,感興趣的可以跟隨小編一起學(xué)習(xí)一下2022-11-11Android使用xml文件資源定義菜單實(shí)現(xiàn)方法示例
這篇文章主要介紹了Android使用xml文件資源定義菜單實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Android資源文件管理及xml配置自定義菜單相關(guān)操作技巧,需要的朋友可以參考下2019-03-03Android提高之AudioRecord實(shí)現(xiàn)助聽器的方法
這篇文章主要介紹了Android中AudioRecord實(shí)現(xiàn)助聽器的方法,對進(jìn)行Android項(xiàng)目開發(fā)有一定的借鑒價(jià)值,需要的朋友可以參考下2014-08-08RecyclerView嵌套RecyclerView滑動卡頓的解決方法
這篇文章主要為大家詳細(xì)介紹了RecyclerView嵌套RecyclerView滑動卡頓的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12