zipalign
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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 menggunakan apksigner
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. |
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# zipalign\n\n`zipalign` is a zip archive alignment tool that helps ensure that all uncompressed files\nin the archive\nare aligned relative to the start of the file. This lets the files be accessed directly via\n[mmap(2)](https://man7.org/linux/man-pages/man2/mmap.2.html)`\n`, removing the need to copy this data in RAM and reducing your app's memory usage.\n\nUse `zipalign` to optimize your APK file before distributing it to\nend users. If you build using Android Studio, which uses the Android Gradle plugin (AGP), this is\ndone automatically. In this case, you should still use `zipalign` to verify that the APK\nis aligned, but you don't need to align it. This documentation is mainly for maintainers of\ncustom build systems. \n\n**Caution:** You must use `zipalign` at a specific point in\nthe build process. That point depends on which app-signing tool you use:\n\n- If you use [apksigner](/studio/command-line/apksigner), `zipalign` must be used **before** the APK file has been signed. If you sign your APK using `apksigner` and make further changes to the APK, its signature is invalidated.\n- If you use [jarsigner](//docs.oracle.com/javase/tutorial/deployment/jar/signing.html) (not recommended), `zipalign` must be used **after** the APK file has been signed.\n\nTo achieve alignment, `zipalign` alters the size of the `\"extra\"` field in the zip **Local File Header**\nsections. This process can also alter existing data in the `\"extra\"` fields.\n\nUsage\n-----\n\nIf your APK contains shared libraries (`.so` files), use `-P 16`\nto ensure that they're aligned to a 16KiB page boundary suitable for `mmap(2)`\nin both 16KiB and 4KiB devices. For other files, whose alignment is determined by the\nmandatory alignment argument to `zipalign`, should be aligned to 4 bytes\non both 32-bit and 64-bit systems.\n\nTo align `infile.apk` and save it as `outfile.apk`: \n\n```\nzipalign -P 16 -f -v 4 infile.apk outfile.apk\n```\n\nTo confirm the alignment of `existing.apk`, use the following command. \n\n```\nzipalign -c -P 16 -v 4 existing.apk\n```\n\n### Options\n\nThe following table lists the available `zipalign` options:\n\n| Option | Description |\n|--------------------|-------------------------------------------------------------------------------------------------------------------------|\n| -c | Checks alignment only (does not modify file). |\n| -f | Overwrites existing output file. |\n| -h | Displays tool help. |\n| -P \\\u003cpagesize_kb\\\u003e | aligns uncompressed `.so` files to the specified page size in KiB. Valid options for `\u003cpagesize_kb\u003e` are 4, 16, and 64. |\n| -p | 4KiB page-aligns uncompressed `.so` files. It is recommended to use `-P 16` instead, as `-p` is deprecated. |\n| -v | Verbose output. |\n| -z | Recompresses using Zopfli. |"]]