Android Studio如何查看源码并调试的方法步骤

所属分类: 软件编程 / Android 阅读数: 80
收藏 0 赞 0 分享

背景

最近遇到一个Dialog问题,在6.0的手机上才可以重现,但是我们的工程已经是targetsdk=28了,点击Dialog的引用,只能看见28的class文件,现在我也越来越懒了,以前针对这种问题,我都会写个demo,去重现问题,但是现在希望能直接在当前工程快速定位出原因,能够基于源码debug肯定更好了,为了实现这个懒的目标,我找了很多办法,下面就一一介绍下

方法一 切换compilesdk

studio默认使用的是gradle里配置的compilesdkversion,只要你把compilesdkversi设置成23,自然就可以通过查看define的快捷键,进入到对应的class文件,但是我的项目已经是28了,降回6.0,必然有很多API无法编译,此路不同

方法二 寻找studio插件

既然studio提供的默认方式不行,那我们就找插件来实现呢?通过各种搜索大法,我找到了一款不错的插件,AndroidSourceViewer ; 功能十分强大:

  • 支持查看 Android / Java 任意版本源码
  • 支持对比 Android / Java 任意两个版本源码差异
  • 支持 Android 官网文档查看和方法定位
  • 支持 Native 方法源码查看

具体可以看截图:

正当我满心欢喜的开启debug时,发现studio无法识别该代码,原因是作者的思路是在类名前面加版本号。。。例如.AndroidSourceViewer/cache/android/app/8.0.0_r4-Dialog.java于是我愤怒的提了个issue此路再次失败

方法三 修改studio配置,直接链接到对应源码

我的想法时,我找到studio跳转源码的配置文件,将原本跳到28的jar包的配置,修改成23,这样不就完美了,于是我又开启了搜索大法,网上都说,修改jdk-table.xml,可以达到我的目的,然而。。亲测不可以;不论我怎么修改,都没有反应;
于是我又想到了idea的缓存,果然功夫不负有心人,我找到了这么个文件:

.idea/libraries/Gradle__android_android_28.xml

<component name="libraryTable">
 <library name="Gradle: android-android-28">
  <CLASSES>
   <root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-27/android.jar!/" />
  </CLASSES>
  <JAVADOC />
  <SOURCES>
   <root url="file://$USER_HOME$/Library/Android/sdk/sources/android-28" />
  </SOURCES>
 </library>
</component>

PS:该文件可能没有,大家可以手动添加到自己的缓存里

通过修改这个文件,只要源码路径存在,那就可以很方便的其他版本的源码并且调试了;但是修改源码路径有风险,大家还是谨慎操作,同时记得不用的时候清空缓存。。

总结

现在国内网上很多文章,都是复制的,我也不知道为啥;像我搜到的jdk-table.xml,根本没法用,可能它只是对新项目生效的,有可能是studio版本升级导致,总之,这个文章的原作者也是很辛苦的,但是其他人复制过去,又不加以维护,实在是误人子弟。。

另外一点就是,可以看源码还是很爽的~

到此这篇关于Android Studio如何查看源码并调试的方法步骤的文章就介绍到这了,更多相关Android Studio查看源码并调试内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

更多精彩内容其他人还在看

Android 动画之AlphaAnimation应用详解

本节讲解AlphaAnimation 动画,窗口的动画效果,淡入淡出什么的,有些游戏的欢迎动画,logo的淡入淡出效果就使用AlphaAnimation,具体的祥看本文,需要的朋友可以参考下
收藏 0 赞 0 分享

Android 动画之TranslateAnimation应用详解

本节讲解TranslateAnimation动画,TranslateAnimation比较常用,比如QQ,网易新闻菜单条的动画,就可以用TranslateAnimation实现,本文将详细介绍通过TranslateAnimation 来定义动画,需要的朋友可以参考下
收藏 0 赞 0 分享

Android 动画之ScaleAnimation应用详解

本节讲解ScaleAnimation 动画在应用中的实现,有需要的朋友可以参考下
收藏 0 赞 0 分享

Android 动画之RotateAnimation应用详解

本节讲解旋转动画效果RotateAnimation方法的应用,有需要的朋友可以参考下
收藏 0 赞 0 分享

Android开发之文件操作模式深入理解

本文将介绍Android开发之文件操作模式,需要了解的朋友可以参考下
收藏 0 赞 0 分享

Android应用程序窗口(Activity)窗口对象(Window)创建指南

本文将详细介绍Android应用程序窗口(Activity)的窗口对象(Window)的创建过程,需要了解的朋友可以参考下
收藏 0 赞 0 分享

android activity设置无标题实现全屏

本文将详细介绍Android如何设置Activity全屏和无标题的实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android启动模拟器报错解决方法

本文将详细介绍Android模拟器报"Failed To Allocate memory 8"错误的解决办法,需要了解的朋友可以参考下
收藏 0 赞 0 分享

Android如何实现非本地图片的点击态

Android如何实现非本地图片的点击态,本文提供了详细的实现代码,需要了解的朋友可以参考下
收藏 0 赞 0 分享

android viewpaper实例探讨

本文将提供一个android viewpaper实例实现过程,需要了解更多的朋友可以参考下
收藏 0 赞 0 分享
查看更多