Android Studio 查看Android内部隐藏源码

摘要转载自 「大前端之美」 ( mp.weixin.qq.com ) By 码农小黑屋

预计阅读时间 0 分钟(共 0 个字, 0 张图片, 0 个链接)

↑↑↑ 点击上方蓝字,关注码农小黑屋
如果你喜欢小黑屋,可以把我置顶星标~

作者:zhang_pan
地址:https://www.jianshu.com/p/7c1aca9f001b

问题的发现

今天查看 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

  1. 关闭Android Studio

  2. 下载对应API版本的Android.jar

  3. 替换SDK/platforms/android-版本/Android.jar

  4. 重新打开Android Stuido就可以查看

这时候我们就可以在Android Studio中随意查看这些隐藏的Api了。

总结

两种方法其实都是可以的,两种方法都有自己的优缺点。第一种方法简单,包含C层源码,但是查看代码,跳转不是很方便;第二种方法比较适合查看Java源代码,跳转方便,但是没有C层源码。一般我用的时候,都是两者配合使用,效率会更好一点!

一个有价值的公众号

more_vert