Android 为什么需要未对齐的apk?

Android 为什么需要未对齐的apk?,android,apk,release,Android,Apk,Release,Android gradle以两个二进制文件生成apk:未对齐和对齐 据说 使用私钥对APK进行签名后,对该文件运行zipalign。此工具确保所有未压缩的数据都以特定的字节对齐方式开始,相对于文件的开头。当安装在设备上时,确保在4字节边界对齐可提供性能优化。对齐后,Android系统能够使用mmap()读取文件,即使它们包含具有对齐限制的二进制数据,而不是从包中复制所有数据。好处是减少了运行中的应用程序所消耗的RAM量 似乎强烈建议分发对齐的apk。对我来说,我只使用对齐的apk作为结果产品,

Android gradle以两个二进制文件生成apk:未对齐和对齐

据说

使用私钥对APK进行签名后,对该文件运行zipalign。此工具确保所有未压缩的数据都以特定的字节对齐方式开始,相对于文件的开头。当安装在设备上时,确保在4字节边界对齐可提供性能优化。对齐后,Android系统能够使用mmap()读取文件,即使它们包含具有对齐限制的二进制数据,而不是从包中复制所有数据。好处是减少了运行中的应用程序所消耗的RAM量

似乎强烈建议分发对齐的apk。对我来说,我只使用对齐的apk作为结果产品,而忽略未对齐的apk


未对齐的apk在开发过程中有什么特殊用途吗?

这是一个两步过程。未对齐的apk只是一种中间产品

  • 生成未对齐的apk
  • 未对齐的将对齐并生成对齐的apk
  • 需要未对齐(已签名)的APK,因为对对齐的APK进行签名将撤消对齐

    从:

    注意:zipaign只能在使用私钥对.apk文件进行签名后执行。如果在签名之前执行zipalign,则签名过程将撤消对齐

    更多信息,请参阅。详细的构建过程是:

    谢谢您的快速回复。所以,我们可以说未对齐的apk只是一个过渡的东西?对。一些IDE将其作为调试构建的最终产品,以加快构建过程。取消对齐apk文件是否有助于调试应用程序?谢谢:)没有。它的内容基本上与对齐的zip文件相同,只是文件边界没有对齐到4b块。