perché è necessario un apk non allineato?


151

Android Gradle produce apk in due file binari: non allineati e allineati.

Il documento diceva ...

Dopo aver firmato l'APK con la chiave privata, eseguire zipalign sul file. Questo strumento garantisce che tutti i dati non compressi inizino con un particolare allineamento di byte, relativamente all'inizio del file. Garantire l'allineamento ai limiti di 4 byte fornisce un'ottimizzazione delle prestazioni se installato su un dispositivo. Se allineato, il sistema Android è in grado di leggere i file con mmap (), anche se contengono dati binari con restrizioni di allineamento, anziché copiare tutti i dati dal pacchetto. Il vantaggio è una riduzione della quantità di RAM consumata dall'applicazione in esecuzione.

Sembra che l'apk allineato sia fortemente raccomandato per la distribuzione. Per me, utilizzo solo l' apk allineato come risultato e ignoro l' apk non allineato .

L'apk non allineato ha qualche utilizzo speciale durante lo sviluppo?

Risposte:


197

È un processo in due fasi. L'apk non allineato è solo un prodotto intermedio.

  1. l'apk non allineato viene generato
  2. il non allineato viene allineato e produce l'apk allineato

3
Grazie per la risposta rapida. Quindi, possiamo dire che l'apk non allineato è solo una cosa temporanea?
Youngjae,

1
Destra. Alcuni IDE lo producono come prodotto finale per la compilazione del debug per accelerare il processo di compilazione.
flx,

2
il file apk unalign aiuta il debug dell'applicazione? Grazie :)
hqt

11
no non lo fa. è fondamentalmente lo stesso contenuto del file zip allineato, solo che i confini del file non sono allineati a blocchi 4b.
flx,

49

L'APK non allineato (firmato) è necessario perché la firma di un apk allineato annullerà l'allineamento.

Dai documenti :

Attenzione: zipalign deve essere eseguito solo dopo aver firmato il file .apk con la chiave privata. Se si esegue zipalign prima della firma, la procedura di firma annullerà l'allineamento.

Vedi questa risposta per di più. Ecco il processo di compilazione dettagliato: inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.