zipalign 是一种 zip 归档文件对齐工具。它可确保归档中的所有未压缩文件相对于文件开头都是对齐的。这样一来,您便可直接通过 mmap(2)
访问这些文件,而无需在 RAM 中复制相关数据并减少了应用的内存用量。
在将 APK 文件分发给最终用户之前,应该先使用 zipalign 进行优化。如果您使用 Android Studio 进行构建,则此步骤会自动完成。本文档适用于自定义构建系统的维护者。
注意:您必须在应用构建过程中的两个特定时间点之一使用 zipalign,具体在哪个时间点使用,取决于您所使用的应用签名工具:
您可以通过更改 zip 本地文件标头部分中的“extra”字段的大小来实现对齐。此过程可能会更改“extra”字段中的现有数据。
如需详细了解在构建应用时如何使用 zipalign,请参阅为应用签名。
用法
如果您的 APK 包含共享库(.so
文件),则应使用 -p
来确保它们与适合 mmap(2)
的 4KiB 页面边界对齐。对于其他文件(其对齐方式由 zipalign 的必选对齐参数确定),Studio 将在 32 位和 64 位系统中对齐到 4 个字节。
如需对齐 infile.apk
并将其保存为 outfile.apk
,请运行以下命令:
zipalign -p -f -v 4 infile.apk outfile.apk
如需确认 existing.apk
的对齐方式,请运行以下命令:
zipalign -c -v 4 existing.apk
您可以使用 zipalign -h
来查看支持的完整标志集。