我们经常用Android Studio 查看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开发的技巧

android studio查看jar包源码,Android Studio查看源代码报错相关推荐

  1. eclipse java jar源码,eclipse查看Jar包源码

    这几天想研究一下hibernate等流行开源框架的源码,于是了解了一下如何在eclipse中查看导入的jar包的源码. 我们在开发或学习过程中,有时总避免不了查看jar包的源码.当我们按Ctrl+点击 ...

  2. eclipse查看jar包源码(反编译)

    国际惯例,百度翻帖. 法一: jar包右键->打开方式-> 但是,我失败了,没有任何反应,猜测可能是没有安装相关软件,下面就是软件的安装. 法二: 利用JD-DUI查看源码,需要安装JD- ...

  3. 怎么看java架包里的源码,vlx文件可以查看源代码|怎么查看Jar包源码?如何打开Jar文件?...

    Jar文件是Java项目生成的一个小文件项目,也可以描述为一个Java压缩包,类似于压缩包文件,里面封装了许多Java类以及方法.变量等文件.通过Java我们该如何打开Jar文件呢?参见下文. 操作步 ...

  4. java导入jar包源码_eclipse中导入jar包的源码

    在日常开发工作中,我们时常会需要查看下第三方jar包的源码来更加正确的理解该jar包或者框架提供的功能.下面是笔者知道的两种添加jar包源码的方式: 方式一:configure build path中 ...

  5. 基于Android的看小说APP源码Android本科毕业设计Android小说阅读器、小说APP源码

    基于kotlin + 协程 + MVVM 模式来编写的看小说APP. 完整代码下载地址:基于Android的看小说APP源码Android本科毕业设计Android小说阅读器.小说APP源码 主要框架 ...

  6. android+高仿+日历,项目源码--Android天气日历精致UI源码

    技术要点: 1. 天气日历精致UI 2. Android的Http通信技术 3. Android的天气信息解析 4. Android的日历信息的统计 5. Andorid的地理位置的管理 6.源码带有 ...

  7. Eclipse_插件_05_自动下载jar包源码插件

    一.Java Source Attacher 1.下载 官网:http://marketplace.eclipse.org/content/java-source-attacher#.U5RmTePp ...

  8. Eclipse 调试jar包源码

    引子 深入学习开源代码很多时候都需要去调试别人的jar包.当然如果你能拿别人的源码搭一个项目运行起来这样式不需要再去调试jar文件了,但是这样费时又费力.而且到最后也不一定能正常运行起来.接下来将介绍 ...

  9. 快速修改jar包源码

    本人在学习javaweb过程中使用之前自己写好并打包出来的jar包,但在后续使用过程中发现源码需要进行补充,在网络上搜了很多修改jar包的方法,现在记录一下一个我觉得比较方便的办法. 第一步,打开你要 ...

最新文章

  1. OpenLayers 3+Geoserver+PostGIS实现点击查询
  2. Scapy学习笔记一
  3. 用python编程、假设一年期定期利率_python,练习题网站.doc
  4. 启动celery后执行任务报错:django.core.exceptions.ImproperlyConfigured
  5. CUDA 4.0真技术解析
  6. C#控件常用设计整理大全
  7. 设计模式基于C#的工程化实现及扩展
  8. counting sort (计数排序) algorithm
  9. JS事件循环 Event Loop
  10. 华为申请注册姚安娜商标
  11. ftp文件上传后大小改变问题解决
  12. pingback协议与traceback协议的区别
  13. Kotlin实战【三】表示与选择
  14. python解题工程力学_工程力学学习指导与解题指南(普通高等教育十三五规划教材)...
  15. CIR 工业自动化雷达
  16. 刮刮卡 java代码_Android刮刮卡效果实现代码
  17. Matlab 线性拟合 非线性拟合
  18. Ubuntu配置阿里云镜像
  19. Android逆向教程(二)——教你如何破解童年小游戏《魔塔》
  20. Office:你的 OneDrive 帐户存在问题?

热门文章

  1. async与await详解
  2. windows操作系统下载tomcat,并与eclipse进行整合
  3. js控制时间显示格式
  4. Android 获取地理位置信息 封装好了 直接用
  5. c3p0连接错误 An attempt by a client to checkout a Connection has timed out.
  6. RESTful API标准设计教程
  7. Kernel Panic常见原因以及解决方法
  8. java c 性能分析工具_Jprofiler使用介绍--java性能分析工具中文帮助
  9. easy-ui实现左右滚动条
  10. 黑马day16 aptana插件的安装