天天看點

Android Studio 檢視Android内部隐藏源碼Android Studio 檢視Android内部隐藏源碼

Android Studio 檢視Android内部隐藏源碼

Android Studio 檢視Android内部隐藏源碼Android Studio 檢視Android内部隐藏源碼

  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層的),都是線上的,很友善檢視:

Android Studio 檢視Android内部隐藏源碼Android Studio 檢視Android内部隐藏源碼

1.png

随意點選一個版本就去,我們輸入我們想要找的類:

Android Studio 檢視Android内部隐藏源碼Android Studio 檢視Android内部隐藏源碼

2.png

我們找到這個類,點選進去就能檢視這個類的源碼了,還是比較友善的。

第二種解決辦法:

GitHub已有人去除Android.jar中@hide注解,這裡的源碼算是比較全的(注意隻能是比較全,對于C層的代碼還是沒有的,因為隻是jar包)

位址: https://github.com/anggrayudi/android-hidden-api

  1. 關閉Android Studio
  2. 下載下傳對應API版本的Android.jar
  3. 替換SDK/platforms/android-版本/Android.jar
  4. 重新打開Android Stuido就可以檢視

這時候我們就可以在Android Studio中随意檢視這些隐藏的Api了。

總結

兩種方法其實都是可以的,兩種方法都有自己的優缺點。第一種方法簡單,包含C層源碼,但是檢視代碼,跳轉不是很友善;第二種方法比較适合檢視Java源代碼,跳轉友善,但是沒有C層源碼。一般我用的時候,都是兩者配合使用,效率會更好一點!

喜歡本篇部落格的簡友們,就請來一波點贊,您的每一次關注,将成為我前進的動力,謝謝!

小禮物走一走,來簡書關注我

轉自:https://www.jianshu.com/p/7c1aca9f001b

贊賞支援