Android Studio 查看Android内部隐藏源码
问题的发现
今天查看AlertDialog源码的时候,看到AlertController,发现关于这部分的代码全都报红,原来AlertController类在com.android.internal.app这个包下,看这个包名internal(内部的),也就是说这部分代码是Google公司由于安全和稳定等因素考虑,是不对外开放的。
问题的解决
这个问题,其实一直都有,但是以前没仔细查看这些隐藏的源码,一带而过罢了!那有问题,总得解决啊,这个该怎么解决呢?其实解决办法还是有的:
第一种解决办法:
http://androidxref.com/ 这个网址下面有Android各个版本的源码(包括C层的),都是在线的,很方便查看:
随意点击一个版本就去,我们输入我们想要找的类:
我们找到这个类,点击进去就能查看这个类的源码了,还是比较方便的。
第二种解决办法:
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层源码。一般我用的时候,都是两者配合使用,效率会更好一点!
喜欢本篇博客的简友们,就请来一波点赞,您的每一次关注,将成为我前进的动力,谢谢!