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

Kha*_*aif 113 android apk android-studio

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

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

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

Bid*_*han 113

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

  • http://stackoverflow.com/questions/22058210/why-unaligned-apk-is-needed (5认同)

SMR*_*SMR 75

简答:

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


答案很长

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

应用签名流程

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

这里解释整个签名过程.

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

按照文档:

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

有什么好处?的zipalign?

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

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