Android-查看隱藏的API源碼

介紹

在查看Android API源碼時,Android.jar內(nèi)部有大量@hide注解的代碼,
無論是用Eclipse還是Android Studio都會隱藏有@hide注解的代碼!
因此我們查看API源碼會發(fā)現(xiàn)很多類找不到錯誤,如PhoneWindow,ActivityThread等都沒有找到,我早期看API時就很惱火!
這時只能去Android SDK源碼目錄搜索PhoneWindow.java來查看源碼,非常不方便啊啊啊。。。

解決辦法兩個

方法一.將SDK源碼全部導(dǎo)入AS或Eclipse,依然麻煩,為了查看一兩個API而導(dǎo)入上百M的代碼很不劃算!

方法二.在萬能的GitHub已有人去除Android.jar中@hide注解
地址: https://github.com/anggrayudi/android-hidden-api
1.下載對應(yīng)API版本Android.jar
2.替換SDK/platforms/android-版本/Android.jar
3.重新打開IDE就可以查看

方法二還有額外便利,就是可以直接使用隱藏API,不需要反射(浪費性能又麻煩又易寫錯)
Android.jar并不會打包到APK,所以去除@hide的Android.jar,只是欺騙IDE/編譯器,方便程序員查看使用!

例如,掛斷電話API被隱藏了TelephonyManager.getDefault().endCall(),
用正常Android.jar無法調(diào)用endCall(),只能通過反射調(diào)用;
用去除@hide的Android.jar,就可直接調(diào)用endCall();

直接調(diào)用隱藏API的缺點:
1.Android隱藏API是因為不能保證這些API還存在新系統(tǒng)版本,所以盡量少用隱藏API!
2.不利于團隊合作,如果有人使用正常Android.jar就無法編譯如endCall()之類的隱藏API!

簡書: http://www.itdecent.cn/p/c5d061d16b30
CSDN博客: http://blog.csdn.net/qq_32115439/article/details/71436885
GitHub博客:http://lioil.win/2017/05/08/Android-HiddenAPI.html
Coding博客:http://c.lioil.win/2017/05/08/Android-HiddenAPI.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容