前言:
昨天遇到了安卓端一直连接不上PC的情况,无论使用了什么方法都没法解决,最后使出了杀手——重装系统,终于解决了。但是也带来了一个问题,重装系统的时候都太心急了,忘了备份工程了。所有的工程文件全部丢失(Eclipse的工程文件默认都会放在C盘)。
好在再我的手机上安装了自己写的几个apk。于是准备反编译回工程文件。
下面就进入主题:
第一步、把apk文件拿回到电脑当中。
这个很简单,电脑连接手机进行USB调试,使用豌豆荚之类的工具直接可以把文件发送到电脑上。
第二步、把apk文件的后缀名改成rar,然后解压之后就发现了工程文件目录结构。
如test.apk改成text.rar。然后解压,位置任意(我这里解压到了D盘apk目录下)。
目录结构如下:
第三步、目录结构
这里的xml文件以及res中的文件都是二进制的,双击进入之后其实都是乱码。
每个资源所包含的内容如下。
res\ 存放资源文件的目录
AndroidManifest.xml 程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件
第四步、处理xml文件。
这时就用到了一个android4me的AXMLPrinter2工具。
下载地址:http://code.google.com/p/android4me/downloads/detail?name=AXMLPrinter2.jar&can=2&q=点击下载
然后我们把文件解析出来,首先cmd进入命令界面,然后进入到该jar包的目录。我的结构为:
双击打开main.xml文件你就发现xml文件已经可以正常查看了
第五步、获取java代码
D:\dex2jar>dex2jar d:\apk\RFIDDAQ\classes.dex
这样的话RFIDDAQ目录下就多了一个jar文件: