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

时间:2015-05-21 07:12:19

标签: android android-studio apk

在android studio中,将build变量设置为" debug"模式,我发现了apk的两个输出

  • APP-debug.apk
  • 应用程序调试-unaligned.apk

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

2 个答案:

答案 0 :(得分:113)

未对齐的apk只是一个中间apk。首先,生成未对齐的apk。然后,未对齐的apk被对齐并生成对齐的apk,这是app-debug.apk。您可以通过here了解更多信息。

答案 1 :(得分:75)

简答:

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

<小时/>

长答案

要了解差异,我们需要了解以下几点:

应用程序签名过程

  • 生成私钥 (keytool)
  • 编译以获取未签名的APK - &gt;未签名的未签名APK
  • 使用私钥 (jarsigner) - &gt;在调试/发布模式下对应用进行签名未签名的签名APK
  • 对齐APK (zipalign) - &gt;对齐签名APK

解释整个签名过程here

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

根据docs

  

警告: zipalign只能在 .apk文件之后执行   用您的私钥签名。如果您在签名前执行zipalign,   然后签名程序将撤消对齐。

有什么好处?的zipalign?

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

  

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