Differenza tra app-debug.apk e app-debug-unaligned.apk


113

In Android Studio con la variante build impostata sulla modalità "debug", ho trovato due output di apk

  • app-debug.apk
  • app-debug-unaligned.apk

Quali sono le differenze tra questi file?

Risposte:


113

L'apk non allineato è solo un apk intermedio. Innanzitutto, viene generato l'apk non allineato. Quindi, l'apk non allineato viene allineato e produce l'apk allineato che è app-debug.apk. Puoi leggere di più al riguardo qui .


75

Risposta breve:

app-debug-unaligned.apk= APK firmato non
app-debug.apkallineato = APK firmato allineato (RAM ottimizzata utilizzando zipalign)


Risposta lunga

Per capire la differenza dobbiamo conoscere i seguenti punti:

Processo di firma dell'app

  • generare una chiave privata (keytool)
  • compilare per ottenere l'APK non firmato -> APK non firmato non allineato
  • Accedi all'app in modalità debug / rilascio utilizzando la chiave privata (jarsigner) -> APK firmato non allineato
  • allinea l'APK (zipalign) -> APK firmato allineato

L'intero processo di firma è spiegato qui .

Perché abbiamo bisogno dell'intermedio app-debug-unaligned.apk?

secondo i documenti :

Attenzione: zipalign deve essere eseguito solo dopo che il file .apk è stato firmato con la tua chiave privata. Se esegui zipalign prima di firmare, la procedura di firma annullerà l'allineamento.

Qual è il vantaggio? Zipalign?

Il vantaggio è che gli APK allineati sono ottimizzati per l'utilizzo della RAM, quindi consumano meno RAM nei dispositivi. Dai documenti :

zipalign è uno strumento di allineamento degli archivi che fornisce importanti ottimizzazioni ai file delle applicazioni Android (.apk). .... Il vantaggio è una riduzione della quantità di RAM consumata durante l'esecuzione dell'applicazione.

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.