【问题标题】:Difference between app-debug.apk and app-debug-unaligned.apkapp-debug.apk 和 app-debug-unaligned.apk 之间的区别
【发布时间】:2015-08-02 17:13:43
【问题描述】:

在构建变体设置为“调试”模式的 android studio 中,我发现了两个 apk 输出

  • app-debug.apk
  • app-debug-unaligned.apk

这些文件有什么区别?

【问题讨论】:

    标签: android android-studio apk


    【解决方案1】:

    未对齐的 apk 只是一个中间 apk。首先,生成未对齐的 apk。然后,未对齐的 apk 对齐并生成对齐的 apk,即 app-debug.apk。你可以通过here阅读更多相关信息。

    【讨论】:

      【解决方案2】:

      简答:

      app-debug-unaligned.apk = 未对齐的签名 APK
      app-debug.apk = 对齐的签名 APK(使用 zipalign 优化 RAM)


      长答案

      要了解区别我们需要知道以下几点:

      应用签名流程

      • 生成私钥(keytool)
      • 编译以获取未签名的 APK -> 未对齐的未签名 APK
      • 使用私钥(jarsigner)在调试/发布模式下签署应用程序 -> 未对齐的签名APK
      • 对齐 APK (zipalign) -> 对齐签名的 APK

      整个签名过程解释here

      为什么我们需要中间的app-debug-unaligned.apk

      根据docs:

      注意: zipalign 只能在 .apk 文件被 用你的私钥签名。如果您在签名前执行 zipalign, 然后签名过程将撤消对齐。

      有什么优势?压缩对齐?

      优点是对齐的 APK 针对 RAM 使用进行了优化,因此它们在设备中消耗的 RAM 更少。来自docs

      zipalign 是一个存档对齐工具,它提供了重要的 优化 Android 应用程序 (.apk) 文件。 ....好处是 减少运行应用程序时消耗的 RAM 量。

      【讨论】:

        猜你喜欢
        • 2014-11-06
        • 1970-01-01
        • 2014-07-01
        • 2016-05-01
        • 2014-10-18
        • 2019-03-17
        • 2012-12-26
        • 2016-10-12
        • 1970-01-01
        相关资源
        最近更新 更多