zipalign

zipalign」是 ZIP 封存檔對齊工具,可協助確保所有未壓縮的檔案 封存資料 都會根據檔案開頭對齊這可讓您直接透過瀏覽器 mmap(2) ,不再需要複製 RAM 中的資料,並降低應用程式的記憶體用量。

在發布 APK 檔案前,請先使用 zipalign 將 APK 檔案最佳化 而非使用者如果您是透過 Android Studio 使用 Android Gradle 外掛程式 (AGP) 進行建構, 自動完成作業在這種情況下,您仍應使用 zipalign 驗證 APK 但您不需要對齊本說明文件主要供 以及自訂建構系統

注意:您必須使用 zipalign 建構程序實際時機取決於您使用的應用程式簽署工具:

  • 如果你使用 apksignerzipalign 必須在簽署 APK 檔案之前使用。如果您在 使用 apksigner 的 APK,並在 APK 的後續變更中簽名,簽名就會失效。
  • 如果您使用 jarsigner (不建議) 必須在 APK 檔案含有 zipalign 檔案「之後」使用 已簽署。

為了確實對齊,zipalign 會變更 ZIP「本機檔案標頭」"extra" 欄位的大小 專區。這項程序可能也會變更 "extra" 欄位中的現有資料。

用量

如果您的 APK 含有共用資料庫 (.so 檔案),請使用 -P 16 確保它們與適合 mmap(2) 的 16KiB 頁面邊界對齊 支援 16 KiB 與 4KiB 裝置其他檔案取決於 zipalign 的必要對齊引數,應對齊 4 個位元組 適用於 32 位元和 64 位元系統

如要對齊 infile.apk,請將其儲存為 outfile.apk

zipalign -P 16 -f -v 4 infile.apk outfile.apk

如要確認 existing.apk 是否對齊,請使用下列指令。

zipalign -c -P 16 -v 4 existing.apk

選項

下表列出可用的 zipalign 選項:

選項 說明
-c 僅檢查對齊方式 (不會修改檔案)。
-f 覆寫現有的輸出檔案。
- 小時 顯示工具說明。
-P <pagesize_kb> 將未壓縮的 .so 檔案對齊 KiB 中的指定頁面大小。有效選項 <pagesize_kb> 為 4、16 和 64。
-p 4KiB 頁面對齊未壓縮的 .so 檔案。建議使用 -P 16,因為 -p 已淘汰。
- V 詳細輸出模式。
- Z 使用 Zopfli 重新壓縮。