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,zipaligndeve essere utilizzato prima della firma del file APK. Se firmi il tuo APK che utilizzaapksignere apportare ulteriori modifiche all'APK; la firma è stata invalidata. -
Se utilizzi
jarsigner(non consigliato),zipaligndeve 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. |