ZipZip
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
zipalign
è uno strumento di allineamento dell'archivio ZIP che aiuta a garantire che tutti i file non compressi
nell'archivio
sono allineati rispetto all'inizio del file. In questo modo è possibile accedere direttamente ai file
mmap(2)
, eliminando la necessità di copiare questi dati nella RAM e riducendo la memoria utilizzata dall'app.
Utilizza zipalign
per ottimizzare il file APK prima di distribuirlo su
utenti finali. Se crei contenuti usando Android Studio, che a sua volta usa il plug-in Android Gradle (AGP),
automaticamente. In questo caso, devi comunque usare zipalign
per verificare che l'APK
è allineato, ma non è necessario allinearlo. Questa documentazione è rivolta principalmente ai gestori di
sistemi di compilazione personalizzati.
Attenzione: devi usare zipalign
in un punto specifico in
il processo di compilazione. Questo punto dipende dallo strumento di firma delle app che utilizzi:
-
Se usi
apksigner
, zipalign
deve essere utilizzato prima della firma del file APK. Se firmi il tuo
APK che utilizza apksigner
e apportare ulteriori modifiche all'APK; la firma è stata invalidata.
-
Se utilizzi
jarsigner
(non consigliato), zipalign
deve essere utilizzato dopo che il file APK ha
che è stato firmato.
Per ottenere l'allineamento, zipalign
modifica la dimensione del campo "extra"
nell'intestazione del file locale del file zip
sezioni. Questa procedura può anche modificare i dati esistenti nei campi "extra"
.
Utilizzo
Se l'APK contiene librerie condivise (.so
file), usa -P 16
per assicurarti che siano allineati a un limite di pagina di 16 KiB idoneo per mmap(2)
su dispositivi da 16 KiB e 4 KiB. Per gli altri file, il cui allineamento è determinato dal
argomento con allineamento obbligatorio a zipalign
, deve essere allineato a 4 byte
su sistemi a 32 e a 64 bit.
Per allineare infile.apk
e salvarlo come outfile.apk
:
zipalign -P 16 -f -v 4 infile.apk outfile.apk
Per confermare l'allineamento di existing.apk
, utilizza il seguente comando.
zipalign -c -P 16 -v 4 existing.apk
Opzioni
La seguente tabella elenca le opzioni disponibili per zipalign
:
Opzione |
Descrizione |
-c |
Verifica solo l'allineamento (non modifica il file). |
-F |
Sovrascrive il file di output esistente. |
-h |
Visualizza la guida dello strumento. |
-P <pagesize_kb> |
allinea i file .so non compressi alle dimensioni di pagina specificate in KiB. Opzioni valide
per <pagesize_kb> sono 4, 16 e 64. |
-P |
La pagina 4KiB allinea i file .so non compressi. È consigliabile utilizzare
-P 16 , poiché -p è deprecato. |
- V |
Output dettagliato. |
-Z |
Ricomprime utilizzando Zopfli. |
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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. |"]]