一.安卓反编译,编译了什么东西
要说安卓反编译,就先得看看安卓编译,如图.
从上图可以看出,安卓的编译概况来说就是把资源和Java源码整合到了一起。
那么反编译,就是为了将Res资源和java源码从.apk中反向获取。
二.为何要反编译呢?
为了学习,为了学习,为了学习。
当你玩到一个app,觉得里面的动画非常狂拽酷炫你对它的实现方式很很感兴趣,或者你对一个app功能的实现非常感兴趣,这个时候就可以反编译,学习了解一下了。
三.怎么操作?
这是最关键的部分。
(1.)反编译获取Res资源(例如图片、布局等等)
工具: apktool
工具下载地址:下载
操作方式:
1.解压.apktool.zip文件,然后将需要反编译的.apk文件放在解压后的文件中,如图。
2.按住shift+鼠标左键,点击在此处打开命令窗口。
3.在命令行窗口中输入如下命令:apktool.bat d -f test.apk test
apktool.bat d -f [apk文件 ] [输出文件夹]
(2).反编译获取Java源码
工具:dex2jar
工具下载地址:下载
操作方式:
1.将要反编译的app后缀名改为.zip或.rar。(eg.test.apk---->test.zip)
2.解压test.zip得到其中的classes.dex文件。
3.将classes.dex放到dex2jar-0.0.9.15 解压出来文件夹内,如图。
4.按住shift+鼠标左键,点击在此处打开命令窗口。
5.输入命令dex2jar.bat classes.dex
6.得到classes_dex2jar文件
(3).利用工具查看反编译得到的java源码
工具:jd-gui
工具下载地址:下载
操作方式:
1.解压后用打开jd-gui.exe.然后把上面的classes_dex2.jar文件直接扔进去就可以看到源码的。显然源码是经过混淆了的。