一、项目打包的一般原理及其缺点
(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)到此为止,已经完成对软件的反编译,这样的话我们可以轻松愉快的阅读别人的源代码了!