app-debug.apk和app-debug-unaligned.apk之间的区别
在构build版本设置为“debugging”模式的android studio中,我find了apk的两个输出
- APP-debug.apk
- 应用程序debugging,unaligned.apk
这些文件有什么区别?
未alignment的apk只是一个中级的apk。 首先,生成未alignment的apk。 然后,未alignment的apk获得alignment,并产生alignment的apk,这是app-debug.apk。 你可以在这里阅读更多关于它。
简答:
app-debug-unaligned.apk
=未alignment的已签名APK
app-debug.apk
=alignment签名APK(使用zipalign优化的内存)
长答案
要了解差异,我们需要知道以下几点:
应用程序签名stream程
- 生成一个私钥(keytool)
- 编译得到未签名的APK – >未alignment的未签名的APK
- 使用私钥(jarsigner)在debugging/发布模式下签名应用程序 – >未alignment的签名APK
- alignmentAPK (zipalign) – >alignment的签名APK
整个签名过程在这里解释。
为什么我们需要中间app-debug-unaligned.apk
呢?
根据文档 :
注意: zipalign只能在.apk文件用私钥签名后才能执行。 如果在签名之前执行zipalign,则签名过程将撤消alignment。
有什么优势? 的zipalign?
优点是alignment的APK针对RAM使用进行了优化,因此它们将在设备中消耗更less的RAM。 从文档 :
zipalign是一个档案alignment工具,为Android应用程序(.apk)文件提供重要的优化。 ….好处是减less运行应用程序时消耗的RAM数量。