提取Android.apk并以res / layout的forms读取XML文件的内容

我正在尝试对现有的Android应用程序进行反向工程,并了解特定的UI是如何构build的。 我发现我可以重命名apk压缩和查看一些编译的源代码。 res / layout目录中填充了定义UI的所有xml文件,但是当它们具有xml扩展名时,它们不是XML格式。 反正有这些文件转换回基于文本的标记?

Solutions Collecting From Web of "提取Android.apk并以res / layout的forms读取XML文件的内容"

我想你可以使用android-apktool 。 XML文件看起来非常好。

创build一个新的文件夹,把你想要解码的.apk文件放进去。

下载最新版本的apktool( https://code.google.com/p/android-apktool/downloads/detail?name=apktool1.5.2.tar.bz2&can=2&q= )和apktool安装窗口( https://代码.google.com / p / android-apktool / downloads / detail?name = apktool-install-windows-r05-ibot.tar.bz2&can = 2&q = )(都可以从同一个链接下载)并将它们放在相同的位置夹。 打开cmd,然后导航到APKtool的根目录并input以下命令:

apktool d myApp.apk 

(其中myApp.apk表示您要解码的文件名)

现在你得到了该文件夹中的文件夹,并可以轻松读取apk的xml文件。

首先将您的.apk转换.zip 。 在里面你会得到一个名为.dex的java类文件的编译捆绑版本。 应用下面的技巧将该dex转换为类文件

有一种方法可以做到这一点。 一个非典型的方法是下载这个开源工具dextojar http://code.google.com/p/dex2jar/

这会将你的dex文件转换成jar文件。 取消这些文件以获得Java类文件。

然后反向devisejava类文件以获取java代码。 不要用它来破坏一些商业项目。

谢谢

如果你只是想知道UI的构造,你可以使用Hierarchy Viewer