El elemento zipalign es una herramienta de alineación de archivos ZIP. Garantiza que todos los documentos descomprimidos comiencen con una alineación relacionada con el comienzo del archivo. Esto permite acceder a esos archivos directamente a través de mmap(2)
, lo que quita la necesidad de copiar estos datos en la memoria RAM y reducir el uso de memoria de tu app.
El elemento zipalign debería usarse para optimizar tu archivo APK antes de distribuirlo a los usuarios finales. Si compilas con Android Studio, esto se hace automáticamente. Esta documentación es para quienes mantengan los sistemas de compilaciones personalizados.
Precaución: Debes usar zipalign en uno de los dos puntos específicos del proceso de compilación de apps, según la herramienta de firma de apps que utilices.
La alineación se logra mediante la modificación del tamaño del campo "extra" en las secciones del encabezado del archivo local ZIP. Este proceso puede cambiar los datos existentes en los campos "extra".
Para obtener más información sobre cómo usar zipalign al compilar tu aplicación, lee Cómo firmar tu aplicación.
Uso
Si tu APK contiene bibliotecas compartidas (archivos .so
), debes usar el elemento -p
a fin de asegurarte de que estén alineados con un límite de tamaño de página de 4 KiB, adecuado para mmap(2)
. En el caso de otros archivos, cuya alineación está determinada por el argumento de alineación obligatorio con zipalign, Studio se alinea con 4 bytes en sistemas de 32 y 64 bits.
Para alinear infile.apk
y guardarlo como outfile.apk
:
zipalign -p -f -v 4 infile.apk outfile.apk
Para confirmar la alineación de existing.apk
:
zipalign -c -v 4 existing.apk
Puedes usar zipalign -h
para ver el conjunto completo de marcas compatibles.