最近做开发,需要用到地图,用到轨迹纠偏。通过文档写的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 源码在哪里看 android源码查看工具_反编译查看源码

  

android 源码在哪里看 android源码查看工具_jar_02

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

  

android 源码在哪里看 android源码查看工具_反编译查看源码_03

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

  

android 源码在哪里看 android源码查看工具_APK反编译_04

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

  

android 源码在哪里看 android源码查看工具_反编译_05

下载时会经常出现如下图所示的问题

  

android 源码在哪里看 android源码查看工具_反编译_06

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

 

二、APK反编译流程

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

  

android 源码在哪里看 android源码查看工具_APK反编译_07

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

  

android 源码在哪里看 android源码查看工具_反编译查看源码_08

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

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

  

android 源码在哪里看 android源码查看工具_反编译查看源码_09

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

  

android 源码在哪里看 android源码查看工具_jar_10

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

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

  

android 源码在哪里看 android源码查看工具_jar_11

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

  

android 源码在哪里看 android源码查看工具_反编译_12

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

  

android 源码在哪里看 android源码查看工具_反编译_13

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

  

android 源码在哪里看 android源码查看工具_android 源码在哪里看_14

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

  

android 源码在哪里看 android源码查看工具_APK反编译_15

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