原文: .Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译

apk(android package)就是我们安卓系统的安装文件,可以在模拟器和手机中直接打开安装,从项目中打包apk有几种方式可取

一、最简单的方法(类似我们的winfrom)

只要我们调试或者运行过项目,在项目下的bin debug下就有同名apk文件了(Eclipse)下是这样的。在Android下变成了\app\build\apk下了

当然我们不能把这个apk放在商店。没有签名会被人家的apk替换

二、签名发布

1.签名的意义

  为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序

我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。

2.签名的步骤

  a.创建key

  b.使用步骤a中产生的key对apk签名

我们直接来看Android Studio怎么打包一个签名的APK,可能和Eclipse有点区别

(1)Android Studio菜单Build->Generate Signed APK

.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译_第1张图片

(2)新建一个key

.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译_第2张图片

  •     Key store path:密钥库文件的地址
  •     Password/Confirm:密钥库的密码
  •     Key:
  •      Alias:密钥名称
  •     Password/Confirm:密钥密码
  • Validity(years):密钥有效时间
  • First and Last Name:密钥颁发者姓名
  • Organizational Unit:密钥颁发组织
  • City or Locality:城市
  • Country Code(XX):国家

(3)next下一步

.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译_第3张图片

(4)选择打包的路径OK

.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译_第4张图片

三、反编译(整理于网络)

生成的APK是直接直接解压的

.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译_第5张图片

就是少了源码部分。源码部分被归类到classes.dex里面去了,R类变成了resources.arsc了

下面来看看怎么反编译出这2个文件

首先要下载两个工具:dex2jar和JD-GUI

前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:

dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip

JD-GUI:http://laichao.googlecode.com/files/jdgui.zip

具体步骤:

首先将apk解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;

解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录

运行

dex2jar.bat classes.dex

生成

classes.dex.dex2jar.jar

生成jar文件的截图如下:

.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译_第6张图片

运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了

.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译_第7张图片

更多相关文章

  1. Android 开发之旅:深入分析布局文件&又是“Hello World!”
  2. Android res/raw文件;raw与res/assets异同
  3. 全面的Android文件目录解析和获取方法(包含对6.0系统的说明)
  4. Android中使用Pull解析器解析xml文件+进行简单的单元测试
  5. 非root下,如何将android中的数据库文件存放到外部存储并导出
  6. android 将app添加进入文件的打开方式
  7. android:scaleType="matrix"布局文件加载图片时候的显示方式
  8. Android读取sql文件并导入数据库
  9. Android音频处理——通过AudioRecord去保存PCM文件进行录制,播放,

随机推荐

  1. 9.26作业-仿站php.cn手机端
  2. 1.模态框 2.flex布局 3.grid属性
  3. 云服务器的操作系统一般怎么选?选错了可以
  4. HTML伪类、盒子模型学习与应用
  5. Linux-04压缩文件操作
  6. VSCode 中,TS 提示 ”无法找到 *.vue 声
  7. Linux-03文件操作[增删改查]
  8. Linux-02目录操作命令
  9. Linux-01基本命令/关机和重启
  10. position定位:absolute绝对定位,relative