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

Posted

技术标签:

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

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

app-debug.apk app-debug-unaligned.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 量。

【讨论】:

以上是关于app-debug.apk 和 app-debug-unaligned.apk 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Ionic cordova build android –prod –release 只构建一个调试apk (app-debug.apk)

我的安卓程序里的app-debug.apk安装包发到手机上可以下载安装后闪一下就

AndroidStudio 3.1 The APK file app-debug.apk does not exist on disk.

npm i macaca-android -g 无法安装成功安装成功后运行脚本提示app-debug.apk不存在的问题

加固流程

Android小知识:apktool二次打包