Android Studio 查看Android内部隐藏源码

code小生,一个专注于 Android 领域的技术分享平台

作者:zhang_pan
链接:https://www.jianshu.com/p/7c1aca9f001b
声明:本文是 zhang_pan 原创,转发等请联系原作者授权。

问题的发现

今天查看 AlertDialog 源码的时候,看到 AlertController,发现关于这部分的代码全都报红,原来 AlertController类在com.android.internal.app 这个包下,看这个包名 internal(内部的),也就是说这部分代码是 Google 公司由于安全和稳定等因素考虑,是不对外开放的。

问题的解决

这个问题,其实一直都有,但是以前没仔细查看这些隐藏的源码,一带而过罢了!那有问题,总得解决啊,这个该怎么解决呢?其实解决办法还是有的:

第一种解决办法:
http://androidxref.com/ 这个网址下面有Android各个版本的源码(包括C层的),都是在线的,很方便查看:

640?wxfrom=5&wx_lazy=1

1.png

随意点击一个版本就去,我们输入我们想要找的类:

640

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层源码。一般我用的时候,都是两者配合使用,效率会更好一点!

喜欢本篇博客的简友们,就请来一波点赞,您的每一次关注,将成为我前进的动力,谢谢!

640

小技巧

Android 性能小技巧

Gradle 的高级技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值