Android Studio查看源代码报错
2016-05-16 16:02
405 查看
我们经常用Android Studio 查看Android的源代码,今天我们就来学习查看源代码的正确姿势。
这是由于Android SDK自带的Source源码包很小,并没有包括所有的Android Framework的源码,仅仅提供给应用开发参考用,一些比较少用的系统类的源码并没有给出。
“RuntimeException(“Stub!”)”表示实际运行时的逻辑会由Android ROM里面相同的类代替执行。
此外,在IDE里看源码的时候,有时候一些方法或者类会出现报红(找不到)的情况,如下。
这是因为这些方法或者类是被Android SDK隐藏的,出于安全或者某些原因,这些API不能暴露给应用层的开发者,所以编译完成的android.jar包里会把这些API隐藏掉,而我们的Android项目是依赖android.jar的,查看源码的时候,IDE会自动去android.jar找对应的API,自然会找不到。当然,这些API在ROM中是实际存在的,有些开发者发现了一些可以修改系统行为的隐藏API,在应用层通过反射的方式强行调用这些API执行系统功能,这种手段也是一种HACK。
我们来看看在 ‘Source Insight’ 下查看源码的效果。
从图片可以看出RuntimeException(“Stub!”) 已经被具体的代码替代了。
也没有出现一些方法或者类会出现报红(找不到)的情况。
大家可以好好的研究Android 源码了。
欢迎大家关注我的微信公众号,我会不定期的分享些Android开发的技巧
Android Studio查看源代码
我们用Android Studio查看源代码会遇到下面的问题。这是由于Android SDK自带的Source源码包很小,并没有包括所有的Android Framework的源码,仅仅提供给应用开发参考用,一些比较少用的系统类的源码并没有给出。
“RuntimeException(“Stub!”)”表示实际运行时的逻辑会由Android ROM里面相同的类代替执行。
此外,在IDE里看源码的时候,有时候一些方法或者类会出现报红(找不到)的情况,如下。
这是因为这些方法或者类是被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’ 下查看源码的效果。
从图片可以看出RuntimeException(“Stub!”) 已经被具体的代码替代了。
也没有出现一些方法或者类会出现报红(找不到)的情况。
大家可以好好的研究Android 源码了。
欢迎大家关注我的微信公众号,我会不定期的分享些Android开发的技巧
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories