Android项目打包apk及apk的反编译,xml的反编译

一、项目打包的一般原理及其缺点

(1)开发一个简单的项目,发布的时候为一个APK文件,如果我们不使用签名的方式,直接在bin目录下找到*.apk文件,很方便,但是我们的使用者在使用的时候,有可能会被其他的程序覆盖安装;具体解释如下:


(2)我们新建一个项目Test目录结构如下,并把它发布到模拟器上,得到我们的打包文件Test.apk

Android项目打包apk及apk的反编译,xml的反编译_第1张图片

(3)然后我们在看模拟器中的文件目录信息,我们在安装的应用,都会在安卓机器上的data----data---具体的安装文件夹,例如我的是:com.example.test

Android项目打包apk及apk的反编译,xml的反编译_第2张图片


这里的com.example.test是在,项目目录下的AndroidManifest.xml文件中,因此我们可以修改他的文件名称

Android项目打包apk及apk的反编译,xml的反编译_第3张图片

(4)到这里,如果遇到相同的安装目录名,就有可能覆盖我们的应用程序,造成恶意的破坏!


二、带有数字签名的打包方式

(5)那我们就需要使用签名的方式,打包我们的软件,步骤很简单,点击项目右键---Android-Tools---Export Android Application--然后后边的就不在介绍!按照自己需求进行即可!


三、apk的反编译实现过程

(6)在上一步中,我们已经生成了一个签名的apk文件Test.apk然后我们使用解压软件,解压,

Android项目打包apk及apk的反编译,xml的反编译_第4张图片

上图既是解压后的目录,各种配置文件都在,就是缺少我们的源文件和R类等

(7)其中classes.dex文件,就是我们项目中src目录下源码的编译,二resources.arsc既是我们R类中的编译文件

(8)现在我们开始反编译,查看其中的源文件和R类

(9)准备工具dex2jar和JD-GUI这两个工具网上很多,搜索下载即可(http://yunpan.cn/cfpRvDD8QJcKi     提取码 c156)

(10)开始:将classes.dex文件拷贝到我们的工具dex2jar文件目录下:

Android项目打包apk及apk的反编译,xml的反编译_第5张图片


(11)然后在上图中的地址栏中将地址删除然后敲入cmd回车(这样的话我们可以直接定位到该目录下!非常好使)或者自己手工找到该目录下!

Android项目打包apk及apk的反编译,xml的反编译_第6张图片

(12)然后执行dex2jar.bat 后边加上刚才拷贝的要反编译的文件calsses.dex

Android项目打包apk及apk的反编译,xml的反编译_第7张图片

(13)然后就会在dex2jar工具下生成一个jar文件(到这里这个jar还只是class文件需要使用下一个工具才可以)

Android项目打包apk及apk的反编译,xml的反编译_第8张图片

(14)然后将生成的class_dex2jar.jar文件拖入到第二个工具JD-GUI中,就可以看到了

Android项目打包apk及apk的反编译,xml的反编译_第9张图片

(15)另外我们还可以点击file--save all sources生成源代码的文件,这个就不上图了,源代码有了剩下的是杀是刮随你便偷笑

(16)到此为止,已经完成对软件的反编译,这样的话我们可以轻松愉快的阅读别人的源代码了!大笑大笑


/*********************************************************************更新内容:反编译xml文件**************************************************/

下载工具: http://pan.baidu.com/s/1bnErJSr提取码 wt8c


下载后解压然后将apk文件复制到这里、比如我这是lashow.apk

Android项目打包apk及apk的反编译,xml的反编译_第10张图片

在地址栏中输入cmd,回车--命令apktool-v2.0.RC2.jar   d   lashow.apk



注意:可能很多朋友们反编译的时候会出错:意思就是找不到文件等,这个时候需要更新一下apktool的版本了!

然后结束的时候,就会看到有一个新的文件夹 ,在里边就可以找到你想要的了


你可能感兴趣的:(apk,反编译,dex2jar)