在 Android 中,ZipAlign用于在 4 字节边界上对齐资源以加速资源加载:
当资源在 4 字节边界上对齐时,Android 中的资源处理代码可以通过内存映射有效地访问资源。但是对于未对齐的资源(即当 zipalign 没有在 apk 上运行时),它必须回退到显式读取它们 - 这更慢并且消耗额外的内存。
运行该工具后,可以使用命令验证对齐。
zipalign -c -v 4 application.apk
这会生成一份报告并告知是否有错误。就我而言,此报告表明没有对齐错误,但第一个数字(我假设它是最终 APK 中资源的位置)似乎表明某些资源未在 4 字节边界上对齐。
这是本报告的开头:
Verifying alignment of APP-signed-aligned.apk (4)...
50 META-INF/MANIFEST.MF (OK - compressed)
24245 META-INF/KEYS.SF (OK - compressed)
49830 META-INF/KEYS.DSA (OK - compressed)
50683 AndroidManifest.xml (OK - compressed)
53096 assets/Assets/DB_Normal.db (OK)
595425 assets/Assets/Common/DM/Structures.xml (OK - compressed)
我错过了什么?第一个数字是资源的位置吗?例如Structures.xml
似乎在595425
,它不是 4 字节的倍数。