Android Studio 檢視Android内部隐藏源碼
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI2kzLch2LcZTOvw1dvwVMvwlM3VWaWV2Zh1WaDdTJwlmc0N3LcRnbllmcv1yb0VXYvwlMyd2bNV2Zh1Wa-cGcq5SOkRzNidjY0gzNkJTLmhzNh1CNlVGNtMzMmZTLmVWO5I2M2U2LchzM1kjNwYzLcNnchRXY2F2XkF2bsBXdvw1cyV2c19CXvlmL1h2cuFWaq5CZh9GbwV3Lc9CX6MHc0RHaiojIsJye.jpg)
zhang_pan 關注 2018.04.10 21:27 字數 546 閱讀 313 評論 2 喜歡 26
問題的發現
今天檢視AlertDialog源碼的時候,看到AlertController,發現關于這部分的代碼全都報紅,原來AlertController類在com.android.internal.app這個包下,看這個包名internal(内部的),也就是說這部分代碼是Google公司由于安全和穩定等因素考慮,是不對外開放的。
問題的解決
這個問題,其實一直都有,但是以前沒仔細檢視這些隐藏的源碼,一帶而過罷了!那有問題,總得解決啊,這個該怎麼解決呢?其實解決辦法還是有的:
第一種解決辦法:
http://androidxref.com/ 這個網址下面有Android各個版本的源碼(包括C層的),都是線上的,很友善檢視:
1.png
随意點選一個版本就去,我們輸入我們想要找的類:
2.png
我們找到這個類,點選進去就能檢視這個類的源碼了,還是比較友善的。
第二種解決辦法:
GitHub已有人去除Android.jar中@hide注解,這裡的源碼算是比較全的(注意隻能是比較全,對于C層的代碼還是沒有的,因為隻是jar包)
位址: https://github.com/anggrayudi/android-hidden-api
- 關閉Android Studio
- 下載下傳對應API版本的Android.jar
- 替換SDK/platforms/android-版本/Android.jar
- 重新打開Android Stuido就可以檢視
這時候我們就可以在Android Studio中随意檢視這些隐藏的Api了。
總結
兩種方法其實都是可以的,兩種方法都有自己的優缺點。第一種方法簡單,包含C層源碼,但是檢視代碼,跳轉不是很友善;第二種方法比較适合檢視Java源代碼,跳轉友善,但是沒有C層源碼。一般我用的時候,都是兩者配合使用,效率會更好一點!
喜歡本篇部落格的簡友們,就請來一波點贊,您的每一次關注,将成為我前進的動力,謝謝!
小禮物走一走,來簡書關注我
轉自:https://www.jianshu.com/p/7c1aca9f001b
贊賞支援