Ver Mensaje Individual
  #1  
Viejo 19/01/10, 21:50:39
Array

[xs_avatar]
intronauta intronauta no está en línea
Monguer.
· Votos compra/venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone

Optimiza tus aplicaciones con Zipalign

¿Qué es Zipalign?

Zipalign es una herramienta que viene incluida en los SDK de Android desde Donut 1.6, pensada para optimizar los paquetes .apk adaptándolos a los requisitos óptimos del sistema Android.
En Android, los datos almacenados dentro de archivos .apk son requeridos por multitud de procesos: el instalador leerá el manifiesto para manejar los permisos asociados con cada solicitud; la aplicación Inicio leerá los recursos para obtener el nombre de la aplicación y el icono; el servidor del sistema leerá los recursos por diversos motivos (p.ej. para mostrar notificaciones); y por supuesto los archivos de recursos son obviamente utilizados por la propia aplicación.

¿pero zipalign qué hace exactamente?
Esta herramienta garantiza que todos los datos sin comprimir empiezan con una particular alineación de bytes, con respecto al comienzo del archivo. Establecer una alineación de 4 bytes proporciona una optimización de rendimiento cuando se instala en un dispositivo Android. Cuando están alineados, el sistema es capaz de leer archivos con mmap (), incluso si contienen datos binarios con restricciones de alineamiento, en vez de copiar todos los datos del paquete en el caso de no estar alineados con zipalign.


¿qué ocurre cuando una aplicación no esta optimizada con"zipalign"? La lectura de los recursos de aplicaciones será lento y requerirá de mucha memoria. En el mejor de los casos, el único resultado visible es que tanto la aplicación principal como el inicio de la aplicación será más lenta de lo que deberían. En el peor de los casos, la instalación de varias aplicaciones no alineadas aumentará los requisitos de memoria, provocando que el sistema se sobrecargue por tener que iniciar y terminar estos procesos. En estos casos el usuario terminará con un dispositivo lento y con un consumo de batería excesivo.


Instalación:

Descargar el zip con el binario y el script, descomprimir y renombrar zipalign_apks a zipalign_apks.sh http://www.megaupload.com/?d=B71KZ11X
adb shell mount -o remount,rw /system
adb push zipalign /system/bin
adb push zipalign_apks.sh /system/sd
adb shell chmod 755 /system/bin/zipalign /system/sd/zipalign_apks.sh
adb shell mount -o remount,ro /system


Aplicación automática con script:
**Se aplica solo sobre todas las apps instaladas en /data/app


Opcion A: (adb)
adb shell /system/sd/zipalign_apks.sh
Opción B: (desde cualquier terminal con permisos de administrador (ROOT) SU File Manager, Better Terminal....
su
sh /system/sd/zipalign_apks.sh

Se guardará un archivo log en /data/zipalign.log


**Este fue mi log, donde se ve como ignora varias aplicaciones y cuándo detecta una sin pasar por zipalign
#cat /data/zipalign.log

Starting Automatic ZipAlign 01-19-2010 18:55:54
......
ZipAlign already completed on /data/app/com.google.android.apps.localdirectory.apk
ZipAlign already completed on /data/app/com.google.android.chess.apk
ZipAlign already completed on /data/app/com.google.android.maps.mytracks.apk
ZipAligning com.google.android.stardroid.apk --------->>>>>>>>>>>>>>>>>>>>>>> (Es Google Sky Maps!!! )
ZipAlign already completed on /data/app/com.google.android.apps.maps.apk
......
Automatic ZipAlign finished at 01-19-2010 18:56:29

Aplicación manual sobre una aplicación específica:

Descargar el SDK de Android 1.6 y allí tendremos en /tools el binario zipalign (lo ponemos en nuestra carpeta /tools).
zipalign -v 4 source.apk destination.apk

Check zipalign
:
zipalign -c -v 4 application.apk


Consideraciones
:

  • Aplicar siempre sobre aplicaciones ya firmadas!!!
  • Generalmente las Custom Roms tienen su paquetería ya optimizadas con zipalign, así como las apps que vienen incluidas en /system/app, por eso el script se aplica sobre las apps instaladas por el usuario o descargadas del Market en /data/app
  • Sería recomendable aplicarlo sobre los Temas creados por cocineros donde se modifican apk fundamentales del sistema , ya que se hace un uso intensivo de ellas.
  • Cuando una aplicación instalada desde el market no está zipaligned (las hay!), si se lo aplicamos desaparecerá de "Mis descargas" ya que el Market detecta que la aplicación ha cambiado y la suprime de su lista de descargadas. Seguirá disponible para volver a descargarla ;). En mi caso, para buscar actualizaciones uso atrackdog y no me supone un problema, en cuanto instale una actualización de la aplicación ya estará visible en "mis descargas" del market.
  • Las aplicaciones que han sufrido la optimización y de la que tengamos su iconos o widgets instalados en Home habrá que volver a aplicarlos.


En mi caso, el script se aplicó sobre 20 aplicaciones y no he recibido ningún fallo.


La pregunta del millón: ¿se nota?

Es lo que se comenta al principio, depende.
Si habitualmente estabas utilizando aplicaciones sin optimizar deberías notarlo, carga más rápida, mejor gestión los recursos,.... Si tus aplicaciones ya venían optimizadas de serie (el script no se aplica sobre ninguna "ZipAlign already completed...") pues como que no lo notarás
En cualquier caso, siempre tendrás la seguridad de que están como deben estar para trabajar optimamente en Android.



Fuente:
http://forum.xda-developers.com/showthread.php?t=594615

Más info:
http://developer.android.com/guide/d.../zipalign.html
http://developer.android.com/guide/p...p-signing.html
http://urlcut.com/1tzwb

Última edición por intronauta Día 21/01/10 a las 17:33:35.
Responder Con Cita
Los siguientes 18 usuarios han agradecido a intronauta su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]