2014-02-27 30 views
148

Android gradle在两个二进制文件中生成apk:未对齐和对齐。为什么需要unaligned apk?

document说...

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

似乎强烈建议分发apk文件。对我来说,我只使用对齐 apk作为结果产品,忽略未对齐 apk。

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

回答

196

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

  1. 非对准APK
  2. 非对齐被对齐,并且产生对齐的apk
+3

感谢您的快速回复。那么,我们可以说unaligned apk只是一个临时的东西? – Youngjae

+1

对。一些IDE将它作为调试版本的最终产品来加速构建过程。 – flx

+2

做unalign apk文件有助于调试应用程序吗?谢谢:) – hqt

48

未对齐(签名)需要APK因为签署对齐APK将撤消的对准。

docs

注意:的zipalign只能进行后.apk文件已与您的私钥签名 。如果您在签名前执行zipalign,则 那么签名过程将撤消对齐。

请参阅this answer了解更多信息。 Here是详细的构建过程: enter image description here