Android的程序解码与XML文件解码
首先,怀着无比激动的心情写下这篇日志.....
Googles真的很给力....让我有幸看到ANDROID应用程序的内部源码....
下面开始言归正传:
ANDROID的应用程序是由两部分组成的.
1.*.class文件
2.*.xml文件 解码时候需要使用到不同的工具...
下面开始介绍*.class(类文件的解码)
需要用到的工具:
dex2jar和JD-GUI
dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
Linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz
A:将*.apk文件的后缀修改成*.zip,然后解压,会在文件夹内发现一个叫classes.dex的文件
B:将dex2jar解压后放到C盘根目录,然后将classe.dex放到这个文件夹中来
然后在开始运行中输入CMD,
将路径定位到dex2jar.bat所在的文件夹(dex2jar.bat为dex2jar解压后文件夹内存在的一个*.BAT文件)
然后输入:dex2jar.bat classes.dex
(这里有可能会报错,如果报错好好看一下JAVA的环境变量是什么,配置的对不对)
C:如果一切正常就会解码出来一个*.jar文件
D:用刚才提及到的JD-GUI来解码*.jar文件 (windows环境的直接拖上去可以)
E:很多公司开发出来的源码都是修改了类名,方法名的- -这个比较恶心,也没有什么好办法,只能费点眼神仔细看了....
下面是*.xml文件的解码
需要用到的工具:
apktool1.4.1.tar.bz2
apktool-install-windows-r04-brut1.tar.bz2
这两个工具可以在Google官方提供的URL地址:http://code.google.com/p/android-apktool/
上下载
然后解压,
A:两个压缩包内的所有文件都要放在同一个路径下,本人放的还是C盘根目录
B:将需要解码的*.apk文件放到和步骤A中解压的文件相同的路径下(本人放的依旧是C盘根目录)
C:开始--->运行输入CMD,然后定位到C盘,在命令提示框内输入:apktool d C:\*.apk C:\***
(*.apk为需要解码的应用程序,***为文件夹名称)
D:解码后就能清晰的看到程序内所有用到的*.XML文件啦...包括布局文件和AndroidManifest.xml文件
^_^