Android开发:APK反编译查看源码

最近做开发,需要用到地图,用到轨迹纠偏。通过文档写的deno,发现总是不能正确纠偏。但是地图官方demo却可以很好的纠偏。最终,决定反编译apk看一下源码,接下来把操作过程写一下教程。

 

一、准备工作

1.1、反编译工具

  1. dex2jar(源码文件获取)
  2. jd-gui  (源码查看)

 

 1.2、工具介绍


       dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件)

  jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件

 

1.3、工具下载

 dex2jar下载地址:http://sourceforge.net/projects/dex2jar/files/ 

 

  

  下载完成之后,得到一个如下图所示的压缩包

  Android开发:APK反编译查看源码_第1张图片

  jd-gui下载地址:http://jd.benow.ca/

  

  下载完成之后,得到一个如下图所示的压缩包:

  Android开发:APK反编译查看源码_第2张图片

  到此,需要使用到的2个相关工具都下载好了,在这里说明一下jd-gui的下载,我从官方网站上点击下载时会经常出现如下图所示的问题

  

  但是多试几次又可以下载了,所以如果有遇到这个问题的朋友们不妨多试几次,或者从别的地方下载jd-gui,jd-gui算是做Java开发的一个必备工具了,用它来将class反编译成java源代码是非常方便的,网上搜索一下一般都可以下载到,只不过版本不一定是最新的。

 

二、APK反编译流程

将上述下载好的2个工具统一放到一个文件夹中,例如:

  Android开发:APK反编译查看源码_第3张图片

  然后将【dex2jar-2.0.zip】和【jd-gui-windows-1.3.0.zip】分别解压到当前文件夹,如下图所示:

  Android开发:APK反编译查看源码_第4张图片

2.1、使用dex2jar反编译apk得到Java源代码

  将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的),如下图所示:

  

  将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内,如下图所示:

  

  在命令行下定位到dex2jar.bat所在目录,

        注意:下图中红框只是操作后的结果,只需要输入"d2j-dex2jar classes.dex",红框中为成功的效果,如下:

  

  命令执行完成之后,在当前目录下就可以看到生成的Jar文件了,如下图所示:

  

  反编译classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具将class文件反编译成java源代码了

  

  使用jd-gui打开classes-dex2jar.jar就可以看到源代码了,如下图所示:

  Android开发:APK反编译查看源码_第5张图片

  JD-GUI虽然可以将class反编译成java源代码,但是对于一些被混淆过的class,反编译的效果就不是那么理想了,被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):

  

  此步骤亲测,对照着步骤做应该可以成功!

 

参考:https://blog.csdn.net/s13383754499/article/details/78914592

你可能感兴趣的:(Android开发:APK反编译查看源码)