为什么unaligned apk需要?

Android gradle在两个二进制文件中生成apk:未alignment和alignment。

文件说…

一旦你用你的私钥签名APK,在文件上运行zipalign。 此工具可确保所有未压缩的数据以相对于文件开头的特定字节alignment方式开始。 确保在4字节边界处alignment可以在安装在设备上时提供性能优化。 alignment时,即使Android系统包含具有alignment限制的二进制数据,也可以使用mmap()读取文件,而不是从包中复制所有数据。 好处是减less正在运行的应用程序消耗的RAM数量。

看起来像alignmentapk强烈build议分发。 对于我,我只使用alignment的 apk作为结果产品,并忽略未alignment的 apk。

未alignment的apk在开发过程中有什么特别的用法吗?

这是一个两步的过程。 未alignment的apk只是一个中间产品。

  1. 生成未alignment的apk
  2. 未alignment得到alignment并产生alignment的apk

未alignment(签名)的APK是需要的,因为签名alignment的apk将撤消alignment。

从文档 :

注意: zipalign只能在.apk文件用私钥签名才能执行。 如果在签名之前执行zipalign,则签名过程将撤消alignment。

看到这个答案更多。 以下是详细的构build过程: 在这里输入图像说明