在android studio中,build variant设置为“debug”模式,我发现了apk的两个输出
app-debug.apk
app-debug-unaligned.apk
这些文件之间有什么区别?
未对齐的apk只是一个中间apk . 首先,生成未对齐的apk . 然后,未对齐的apk被对齐并生成对齐的apk,这是app-debug.apk . 您可以在here上阅读更多相关信息 .
app-debug-unaligned.apk =未签名签名APKapp-debug.apk =对齐签名APK(使用zipalign优化RAM)
要了解差异,我们需要了解以下几点:
生成私钥 (keytool)
编译以获得未签名的APK - >未对齐的未签名APK
使用私钥 (jarsigner) - >未对齐签名APK在调试/发布模式下签署应用程序
对齐APK (zipalign) - >对齐签名APK
整个签署过程解释here .
根据docs:
注意:只有在使用您的私钥对.apk文件进行签名后才能执行zipalign . 如果在签名之前执行zipalign,则签名过程将撤消对齐 .
优点是对齐的APK针对RAM使用进行了优化,因此它们将在设备中消耗更少的RAM . 来自docs:
zipalign是一个存档对齐工具,可为Android应用程序(.apk)文件提供重要的优化 . ....好处是减少运行应用程序时消耗的RAM量 .
2 回答
未对齐的apk只是一个中间apk . 首先,生成未对齐的apk . 然后,未对齐的apk被对齐并生成对齐的apk,这是app-debug.apk . 您可以在here上阅读更多相关信息 .
简答:
app-debug-unaligned.apk
=未签名签名APKapp-debug.apk
=对齐签名APK(使用zipalign优化RAM)答案很长
要了解差异,我们需要了解以下几点:
应用程序签名过程
生成私钥 (keytool)
编译以获得未签名的APK - >未对齐的未签名APK
使用私钥 (jarsigner) - >未对齐签名APK在调试/发布模式下签署应用程序
对齐APK (zipalign) - >对齐签名APK
整个签署过程解释here .
为什么我们需要中间app-debug-unaligned.apk呢?
根据docs:
有什么好处?的zipalign?
优点是对齐的APK针对RAM使用进行了优化,因此它们将在设备中消耗更少的RAM . 来自docs: