android apk 源码 的 破译(反编译)
移动开发对美工要求很高,我们作为个人移动应用开发人员。没有太多时间去设计和优化布局。所以借鉴大公司的布局和UI资源成了我们的一种手段。android apk大部分采用java编程。一下借鉴别人的博客内容。家加上查看的其他几家的apk反编译的源码。
本文Android反编译教程,测试环境:
Win7 Ultimate x64
一、Apk反编译得到Java源代码
下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.15文件夹,内含apk反编译成java源码工具,以及源码查看工具。
apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件
源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码
dex2jar 和 jdgui 最新版本下载,分别见google code:
dex2jar(google code)
具体步骤:
首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.15文件夹。
在命令行下定位到dex2jar.bat所在目录,运行
dex2jar.bat classes.dex
生成
classes_dex2jar.jar
然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了,如下图:
二、apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
如果是汉化软件,这将特别有用
首先还是要下载上述反编译工具包,其中最新的apktool,请到google code下载
apktool(google code)
具体步骤:
下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exe,apktool.bat,apktool.jar
注:里面的apktool_bk.jar是备份的老版本,最好用最新的apktool.jar
在命令行下定位到apktool.bat文件夹,输入以下命令:apktool.bat d -f ikam.apk ikam,如下图:
所有布局文件和图片资源都可以查看到啦。
二、将Activity中的十进制转换为16进制查看资源
有人问在public里面的中的十六进制id 的作用,这个是android在java类中使用十进制对id进行编码。关联到public中。如下图中的TextView的Id :2131100192
二进制转换:下图十六进制就是我们需要的数字 十六进制:7f060220
知道对应的id就可以在布局文件中找到