Dex是Android系统中可以在Dalvik虚拟机上直接运行的文件格式。java源代码经过ADT的复杂编译后转换成Dex文件,这是一个逐步优化的过程。Dex文件的指令码就是Dalvik虚拟机专有的一套指令集,专门为嵌入式系统优化过,相比标准java的.class文件,它体积小,运行效率高。纯手打!
反编译classes.dex的工具和方法
需要两个工具baksmali.jar和smali.jar,电脑需配置好java环境
Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。
可以去这里下载,也可以下载本帖附件:http://code.google.com/p/smali/downloads/list
方法:假如你将下载到的baksmali.jar和smali.jar放到F盘干目录下,请将此代码复制到记事本并另存为反编译.bat【注:本帖附件已包含编译/反编译bat文件,可以略去此步】
[url=home.php?mod=space&uid=31513]@echo[/url] off
f:
java -jar baksmali.jar classes.dex
复制代码
再将下面的代码复制另存为编译.bat
@echo off
f:
cd f:
java -jar smali.jar out
复制代码
然后你将需要反编译的classes.dex也放入F盘根目录,点击反编译.bat。你会看到弹出的DOS窗口,几秒钟后窗口自动关闭,并在F盘下生成一个out的文件件。这里面有很多.smali的文本文件,我们所要汉化的非标准资源就隐藏在其中。等你修改翻译完成后,再点击编译.bat,稍等一刻儿,F盘根目录下就会生成编译后的新文件out.dex,你将其改名为classes.dex,打包进apk,签名即可。