首页 > 代码库 > Android项目打包apk及apk的反编译

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

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

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


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

技术分享

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

技术分享

技术分享

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

技术分享

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


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

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


三、apk的反编译实现过程

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

技术分享

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

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

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

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

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

技术分享


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

技术分享

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

技术分享

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

技术分享

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

技术分享

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

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


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