转载请说明出处,本文来自Android菜鸟:http://blog.csdn.net/android_cai_niao/article/details/43151831
如需要更详细的讲解,请看视频:http://edu.csdn.net/course/detail/405
由于本视频在上传后学院会对其进行转码,而转码后视频质量严重下降,导致花屏、马赛克、画面停滞等等问题,因此在学院解决这个问题之前这里会提供原视频下载,视频不大,每个视频20M左右,下载地址:http://pan.baidu.com/s/1c0tS8ik
像这些工具类,一般工具的提供者在官网都会提供相应的使用说明,如安装说明、使用说明等,不要死记硬背这些使用步骤,只要知道它的官网即可,可以百度官网,然后在官网找到对应的使用说明即可,而且这样做有一个好处,就是这个工具有可能会更新,你可以下载最新工具来获得更好的结果,而且这些工具更新后可能连使用方法都改变了,那么以前记住的那些使用步骤将没有用,所以一旦遇到不记得使用步骤了,最好到官网查看。
* http://jd.benow.ca/
* http://java.decompiler.free.fr(这是官网, 目前貌似已经不提供了)
JD-GUI是一个独立的图形工具,用于显示*.class文件的Java源代码
从http://jd.benow.ca/下载:
打开这个压缩包如下:
从上图可看到,内容很简单,就是一个jd-gui.exe和一个readme.txt,从readme文件了解到如下内容:
* JD即JavaDecompiler的缩写,JD的主页是:http://java.decompiler.free.fr
* JD不需要安装也不需要配置
* 如何使用JD-GUI
例如,编译“Object.class”,你可以:
- 在命令行执行:jd-gui.exe Object.class
- 选择 "FileàOpen File ...",在文件中浏览到 "Object.class"
- 把“Object.class”拖到“jd-gui”
* 卸载
- Windows:删除 “jd-gui.exe”和“jd-gui.cfg”。
- Linux:删除“jd-gui”应用文件和“jd-gui.cfg”。
- OSX:把“JD-GUI”应用拖到trash.
JD-Eclipse是Eclipse的一个插件:http://jd.benow.ca/jd-eclipse/update、http://jd.benow.ca/jd-eclipse/downloads/jdeclipse_update_site.zip
在安装插件的时候会弹如下窗口,问的是“你信任这些证书吗?”,我们把它勾上,如下:
从https://code.google.com/p/dex2jar/下载:
这个工具的使用非常简单,它可以把Android APK中的classes.dex解码为jar文件,使用方法如下:
1、 下载工具
2、 解压,如解压到:D:\dex2jar-0.0.9.15
3、 把你需要反编译的apk复制到这个目录,如我复制了一个abc.apk过去,则此时在cmd命令行敲如下命令:
cd /d D:\dex2jar-0.0.9.15
dex2jar apk
命令执行结束后,将会在cd/d D:\dex2jar-0.0.9.15目录下看到生成了abc.jar,用JD-GUI查看这个jar文件即可。
android-apktool可以把AndroidManifest.xml文件和res目录下的xml文件和NinePatch图片反编译到接近原始状态,反编译后还可以重新编译回去
从https://code.google.com/p/android-apktool/下载
V1.5.2以后的版本的下载网址为:https://bitbucket.org/iBotPeaches/apktool/downloads
也可以好好阅读主页的内容,如下:
* ApktoolOptions即apktool命令的一选项功能说明,当然,在安装好Apktool之后也可以直接在命令行打“apktool”即可显示命令帮助。常用选项如下:
-f 强制删除目标目录。如果试图使用反编译的文件夹已经存在
-m 保持尽可能接近原始文件。防止重建,用于分析
-s 这将防止反编译java源代码。这使APK的classes.dex文件编译期间简单地移动它。如果你只想编辑资源。这是推荐更快反编译和重建。
命令使用格式为:apktoold [选项]<file.apk>,经典使用如下:
把apk随意放到一个目录中,如我把abc.apk放在D:\a\b\ 目录下,则cmd命令如下:
1. cd /d D:\a\b\
2. apktool d -f -m -s abc.apk
命令执行完毕后,则会在D:\a\b目录下看到有一个abc目录,该目录下保存了反编译的资源文件
* FrameworkFiles中的大概意思是,Android应用程序有可能使用Android系统内部的代码和资源,标准的Android系统你不需要做任何改动,但是一些制作商,比如HTC添加了自己的框架文件和应用,如你要解码HTC手机的联系人应用则需要另外的方法,详情看网页。
* 点击“Install”链接(https://code.google.com/p/android-apktool/wiki/Install),将会看到安装的说明页面,部分翻译如下:
快速检查
Apktool 2.x (1.5.2以后的版本)
是否安装了Java 1.7 ?
在命令行执行 java -version是否返回 1.7?
如果不是,请安装 Java 7 并让它成为默认。
Apktool 1.x (1.5.2之前的版本)
是否安装了Java 1.6或更高的 ?
在命令行执行 java -version是否返回 1.6或更高?
如果不是,请安装 Java 6 或 Java 7 。
安装 Apktool 2.x
Windows:
1. 下载Windows包装器脚本(右击,保存链接apktool.bat)
2. 下载apktool-2(在这里找到最新的)
3. 将下载的jar重命名为apktool.jar
4. 把(apktool.jar & apktool.bat)移到您的Windows目录(通常是C://Windows)
5. 如果你没有访问C://windows的权限,你可以把这两个文件放在任何目录,然后将该目录添加到您的系统环境变量PATH中。
6. 尝试通过命令提示符运行apktool