apk前缀debug、release、unaligned的区别

在做android开发过程中总是看到这几个apk:
app-debug.apk
app-debug-unaligned.apk
app-release-unaligned.apk
app-release.apk
一直以来都弄不懂这几个有什么区别,这两天有点时间就简单查阅了写资料,总结了一下:
四个文件中包含三个关键字:debug、release、unaligned,其中debug和release对应,有unaligned和没有unaligned的对应。

debug与release的区别

先看下这几个apk生成时间:
app-debug.apk
app-debug-unaligned.apk
在项目运行时生成,路径:\build\outputs\apk
app-release-unaligned.apk
app-release.apk
在签名打包时生成,其中app-release-unaligned.apk的路径为\build\outputs\apk,app-release.apk的路径为打包是我们自己指定。
再将这几个apk反编译,查看其本质区别:
打包后apk里会自动生成一个包名.BuildConfig的类
将debug.apk可以看到

public static final boolean DEBUG = true;

将release.apk可以看到

public static final boolean DEBUG = false;

而这个类我们在代码中是可以直接调用的,可以通过BuildConfig.DEBUG来判断日志的输出、服务器连接地址等

unaligned与没有unaligned的区别

Android SDK中提供了一个工具叫zipalign的工具,
关于这个工具的作用参看:
http://www.cnblogs.com/xirihanlin/archive/2010/04/12/1710164.html
在命令行运行:zipalign -c -v 4 app-debug.apk

这里写图片描述

命令行的执行结果为succesful,表示该app-debug.apk已经进行了对齐处理。

在命令行运行:zipalign -c -v 4 app-debug-unaligned.apk

这里写图片描述

命令行的执行结果为FAILED,表示该app-debug-unaligned.apk未进行对齐处理。而unaligned翻译成中文就是“对齐”的意思。那么,我们对
app-debug-unaligned.apk进行对齐操作是否就得到了app-debug.apk呢?在命令行执行zipalign -v 4 app-debug-unaligned.apk destination.apk,其中destination.apk为对齐后apk的名称。执行完后我们可以看到新生成的destination.apk和app-debug.apk的大小一样了。即便是右键查看文件属性的字节大小也是一样的(本应该算个MD5,偷个懒)。而关于align和unaligned的具体区别可以参考Android优化-Zipalign

这里写图片描述

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

得食猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值