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 utilizzaapksigner
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. |