ZipZip

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.