zipalign
è uno strumento di allineamento dell'archivio ZIP che aiuta a garantire che tutti i file non compressi
nell'archivio
siano allineati rispetto all'inizio del file. In questo modo è possibile accedere direttamente ai file tramite mmap(2)
, eliminando la necessità di copiare i dati nella RAM e riducendo l'utilizzo della memoria da parte dell'app.
Utilizza zipalign
per ottimizzare il file APK prima di distribuirlo agli utenti finali. Se crei con Android Studio, che a sua volta fa uso del plug-in Android per Gradle (AGP), l'operazione viene eseguita automaticamente. In questo caso, devi comunque usare zipalign
per verificare che l'APK sia allineato, ma non è necessario allinearlo. Questa documentazione è rivolta principalmente ai gestori di sistemi di build personalizzati.
Attenzione: devi utilizzare zipalign
in un punto specifico
del processo di compilazione. Questo punto dipende dallo strumento di firma dell'app utilizzato:
Per ottenere l'allineamento, zipalign
modifica le dimensioni del campo "extra"
nelle sezioni Intestazione file locale per il formato ZIP. Questa procedura può anche modificare i dati esistenti nei campi "extra"
.
Utilizzo
Se l'APK contiene librerie condivise (.so
file), usa -p
per assicurarti che siano allineati a un limite della pagina di 4 KiB adatto per mmap(2)
. Per
gli altri file, il cui allineamento è determinato dall'argomento di allineamento obbligatorio a
zipalign
, Android Studio esegue l'allineamento a 4 byte su entrambi i sistemi, sia a 32 che a 64 bit.
Per allineare infile.apk
e salvarlo come outfile.apk
:
zipalign -p -f -v 4 infile.apk outfile.apk
Per confermare l'allineamento di existing.apk
, utilizza il comando seguente. Se utilizzi
Android Studio o AGP per creare, questo è il comando che devi usare per verificare che l'APK sia allineato.
zipalign -c -v 4 existing.apk
Opzioni
Nella tabella seguente sono elencate le opzioni disponibili per zipalign
:
Opzione | Descrizione |
---|---|
- | Verifica solo l'allineamento (non modifica il file). |
-f | Sovrascrive il file di output esistente. |
-h | Visualizza la guida dello strumento. |
-p | Allinea la pagina ai file .so non compressi. |
- V | Output dettagliato. |
- Z | Esegue la ricompressione con Zopfli. |