android studio查看jar包源码,Android Studio查看源代码报错

我们经常用Android Studio 查看Android的源代码,今天我们就来学习查看源代码的正确姿势。

Android Studio查看源代码

我们用Android Studio查看源代码会遇到下面的问题。

157a9da3dcd989a3cb9282c5e25ea228.png

这是由于Android SDK自带的Source源码包很小,并没有包括所有的Android Framework的源码,仅仅提供给应用开发参考用,一些比较少用的系统类的源码并没有给出。

“RuntimeException(“Stub!”)”表示实际运行时的逻辑会由Android ROM里面相同的类代替执行。

此外,在IDE里看源码的时候,有时候一些方法或者类会出现报红(找不到)的情况,如下。

fb771eceef6446811d9e238a54c57ba6.png

这是因为这些方法或者类是被Android SDK隐藏的,出于安全或者某些原因,这些API不能暴露给应用层的开发者,所以编译完成的android.jar包里会把这些API隐藏掉,而我们的Android项目是依赖android.jar的,查看源码的时候,IDE会自动去android.jar找对应的API,自然会找不到。当然,这些API在ROM中是实际存在的,有些开发者发现了一些可以修改系统行为的隐藏API,在应用层通过反射的方式强行调用这些API执行系统功能,这种手段也是一种HACK。

Source Insight

基于以上两点Android Studio 不是很好的研究Android源码的工具,想要深入的研究Android源码,大家可以用 Source Insight 来研究Android源码。

我们来看看在 ‘Source Insight’ 下查看源码的效果。

a778f63addad77e4d5582159614662c8.png

从图片可以看出RuntimeException(“Stub!”) 已经被具体的代码替代了。

f368f67e0347fe0330448c988bfe9105.png

也没有出现一些方法或者类会出现报红(找不到)的情况。

大家可以好好的研究Android 源码了。

欢迎大家关注我的微信公众号,我会不定期的分享些Android开发的技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值