首页 文章

app-debug.apk和app-debug-unaligned.apk之间的区别

提问于
浏览
111

在android studio中,build variant设置为“debug”模式,我发现了apk的两个输出

  • app-debug.apk

  • app-debug-unaligned.apk

这些文件之间有什么区别?

2 回答

  • 114

    未对齐的apk只是一个中间apk . 首先,生成未对齐的apk . 然后,未对齐的apk被对齐并生成对齐的apk,这是app-debug.apk . 您可以在here上阅读更多相关信息 .

  • 75

    简答:

    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

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

    有什么好处?的zipalign?

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

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

相关问题