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不存在的问题