¿Qué significa "zipalign" y cuál es su significado?
Cuando una ROM dice estar "zipaligned", ¿qué significa eso y cuál es la diferencia de una ROM que no está "zipaligned"?
fuente
¿Qué significa "zipalign" y cuál es su significado?
Cuando una ROM dice estar "zipaligned", ¿qué significa eso y cuál es la diferencia de una ROM que no está "zipaligned"?
Este mecanismo se describe en el sitio de desarrolladores de Android de la siguiente manera:
zipalign es una herramienta de alineación de archivos que proporciona una optimización importante para los archivos de aplicaciones de Android (.apk). El objetivo es garantizar que todos los datos sin comprimir comiencen con una alineación particular en relación con el inicio del archivo. Específicamente, hace que todos los datos sin comprimir dentro del .apk, como imágenes o archivos sin formato, se alineen en límites de 4 bytes. Esto permite acceder a todas las partes directamente con mmap () incluso si contienen datos binarios con restricciones de alineación. El beneficio es una reducción en la cantidad de RAM consumida al ejecutar la aplicación.
En resumen: .apk
se puede acceder al contenido de manera más fácil / rápida / óptima debido al orden de los datos dentro del archivo empaquetado.
Para obtener más información, hay una "guía completa" disponible en AddictiveTips: ¿Qué es Zipalign en Android y cómo hacer que las aplicaciones estén en Zipaligned , que responde a la segunda parte de su pregunta:
Es comprensible que la situación se reserve para paquetes de aplicaciones no alineados. La lectura de recursos sería lenta y el uso de memoria estaría en el extremo superior del espectro. También dependería de cuántas aplicaciones no alineadas estén presentes. Por ejemplo, si hay menos aplicaciones con una aplicación de inicio no alineada, verás tiempos de inicio de aplicaciones más lentos. Este es el mejor de los casos. Para el peor de los casos, tener una serie de aplicaciones no alineadas dará como resultado que el sistema inicie y elimine procesos repetidamente, luchando con retrasos y una gran descarga de batería.
struct x { uint16_t id; uint32_t data[100]; };
si desea que esté alineado con 32 bits; usostruct x { uint16_t id; uint16_t padding; uint32_t data[100]; };
Para agregar a lo anterior cómo funciona exactamente zipalign:
Fuente
fuente