为什么需要未对齐的apk?


151

Android gradle在两个二进制文件中生成apk:不对齐和对齐。

文件说...

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

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

未对齐的apk在开发过程中是否有任何特殊用法?

Answers:


197

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

  1. 生成未对齐的apk
  2. 未对齐的对齐并生成对齐的apk

3
感谢您的快速答复。那么,我们可以说未对齐的apk只是临时的事情吗?
Youngjae 2014年

1
对。一些IDE将其作为调试构建的最终产品来生产,以加快构建过程。
flx

2
不对齐的apk文件是否有助于调试应用程序?谢谢:)
hqt

11
不,不是。它与对齐的zip文件的内容基本相同,只是文件边界未对齐4b块。
flx 2014年

49

需要未对齐(带符号)的APK,因为对对齐的apk签名会撤消对齐。

文档

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

有关更多信息,请参见此答案是详细的构建过程: 在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.