ZipZip

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:

  • Se usi apksigner, devi usare zipalign prima di aver firmato il file APK. Se firmi l'APK usando apksigner e apporti ulteriori modifiche all'APK, la sua firma viene invalidata.
  • Se utilizzi jarsigner (non consigliato), zipalign deve essere utilizzato dopo la firma del file APK.

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.