zipalign
adalah alat penyelarasan file ZIP yang membantu memastikan bahwa semua file yang tidak dikompresi
dalam arsip
diselaraskan secara relatif terhadap awal file. Hal ini memungkinkan file diakses secara langsung melalui
mmap(2)
, sehingga Anda tidak perlu menyalin data ini dalam RAM dan mengurangi penggunaan memori aplikasi.
Gunakan zipalign
untuk mengoptimalkan file APK sebelum mendistribusikannya kepada
pengguna akhir. Jika Anda mem-build menggunakan Android Studio, yang menggunakan plugin Android Gradle (AGP), proses ini
akan otomatis dilakukan. Dalam hal ini, Anda masih harus menggunakan zipalign
untuk memverifikasi bahwa APK
sudah sesuai, tetapi Anda tidak perlu menyesuaikannya. Dokumentasi ini terutama ditujukan untuk pengelola
sistem build kustom.
Perhatian: Anda harus menggunakan zipalign
pada titik tertentu dalam
proses build. Titik tersebut bergantung pada alat penandatanganan aplikasi yang Anda gunakan:
-
Jika Anda menggunakan
apksigner
,zipalign
harus digunakan sebelum file APK ditandatangani. Jika Anda menandatangani APK menggunakanapksigner
dan membuat perubahan lebih lanjut pada APK, tanda tangannya menjadi tidak valid. -
Jika Anda menggunakan
jarsigner
(tidak direkomendasikan),zipalign
harus digunakan setelah file APK ditandatangani.
Untuk melakukan penyelarasan, zipalign
akan mengubah ukuran kolom "extra"
di bagian Header File Lokal
zip. Proses ini juga dapat mengubah data yang ada di kolom "extra"
.
Penggunaan
Jika APK Anda berisi library bersama (file .so
), gunakan -P 16
untuk memastikan bahwa halaman tersebut selaras dengan batas halaman 16 KiB yang sesuai untuk mmap(2)
di perangkat 16KiB dan 4KiB. Untuk file lain, yang perataannya ditentukan oleh atribut
argumen penyelarasan wajib ke zipalign
, harus diselaraskan dengan 4 byte
pada sistem 32-bit dan 64-bit.
Untuk menyelaraskan infile.apk
dan menyimpannya sebagai outfile.apk
:
zipalign -P 16 -f -v 4 infile.apk outfile.apk
Untuk mengonfirmasi penyelarasan existing.apk
, gunakan perintah berikut.
zipalign -c -P 16 -v 4 existing.apk
Opsi
Tabel berikut mencantumkan opsi zipalign
yang tersedia:
Opsi | Deskripsi |
---|---|
-c | Hanya memeriksa penyelarasan (tidak mengubah file). |
-f | Menimpa file output yang ada. |
-h | Menampilkan bantuan alat. |
-P <pagesize_kb> | menyelaraskan file .so yang tidak dikompresi ke ukuran halaman yang ditentukan di KiB. Opsi yang valid
untuk <pagesize_kb> adalah 4, 16, dan 64. |
-p | 4KiB menyelaraskan file .so yang tidak dikompresi. Disarankan untuk menggunakan
Sebagai gantinya, -P 16 , karena -p tidak digunakan lagi. |
-v | Membuat output panjang. |
-z | Mengompresi ulang menggunakan Zopfli. |