【问题标题】:why unaligned apk is needed?为什么需要未对齐的 apk?
【发布时间】:2014-03-30 06:34:39
【问题描述】:

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

document 说...

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

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

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

【问题讨论】:

    标签: android apk release


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的快速回复。那么,我们可以说未对齐的 apk 只是一个临时的东西吗?
    • 对。一些 IDE 将其作为调试构建的最终产品生成,以加快构建过程。
    • 不对齐 apk 文件是否有助于调试应用程序?谢谢:)
    • 不,它没有。它与对齐的 zip 文件的内容基本相同,只是文件边界未与 4b 块对齐。
    【解决方案2】:

    需要未对齐(已签名)的 APK,因为签署已对齐的 apk 会取消对齐。

    来自docs

    注意: zipalign 必须 .apk 文件已使用您的私钥签名后执行。如果您在签名之前执行 zipalign,则签名过程将撤消对齐。

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

    【讨论】:

      猜你喜欢
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 2020-12-08
      相关资源
      最近更新 更多