Diferencia entre app-debug.apk y app-debug-unaligned.apk

113

En el estudio de Android con la variante de compilación configurada en modo "depuración", encontré dos salidas de apk

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

¿Cuáles son las diferencias entre esos archivos?

Khaled Saif
fuente

Respuestas:

113

La apk no alineada es solo una apk intermedia. Primero, se genera la apk no alineada. Luego, la apk no alineada se alinea y produce la apk alineada que es app-debug.apk. Puedes leer más sobre esto aquí .

Bidhan
fuente
75

Respuesta corta:

app-debug-unaligned.apk= APK firmado no
app-debug.apkalineado = APK firmado alineado (RAM optimizada con zipalign)


Respuesta larga

Para entender la diferencia, necesitamos conocer los siguientes puntos:

Proceso de firma de la aplicación

  • generar una clave privada (keytool)
  • compilar para obtener el APK sin firmar -> APK sin firmar no alineado
  • Iniciar sesión en la aplicación en modo de depuración / liberación usando una clave privada (jarsigner) -> APK firmado no alineado
  • alinear el APK (zipalign) -> APK firmado alineado

Aquí se explica todo el proceso de firma .

¿Por qué necesitamos el intermedio app-debug-unaligned.apk?

según los documentos :

Precaución: zipalign solo debe realizarse después de que el archivo .apk se haya firmado con su clave privada. Si realiza zipalign antes de firmar, el procedimiento de firma deshará la alineación.

Cual es la ventaja? zipalign?

La ventaja es que los APK alineados están optimizados para el uso de RAM, por lo que consumirán menos RAM en los dispositivos. De los documentos :

zipalign es una herramienta de alineación de archivos que proporciona una optimización importante para los archivos de aplicaciones de Android (.apk). .... El beneficio es una reducción en la cantidad de RAM consumida al ejecutar la aplicación.

SMR
fuente