Facebook es la aplicación web más grande del mundo, con más de mil quinientos millones de usuarios activos. Su versión para móviles tuvo en abril nada menos que 998 millones de usuarios diarios, de los cuales 823 millones usan exclusivamente las apps móviles de la empresa. Las cifras marean.
Dado que la parte móvil es tan importante para ellos, la velocidad y rendimiento de sus aplicaciones es algo en lo que invierten muchos recursos. Por ello, hace unos meses lanzaron su optimizador de aplicaciones para Android, Redex.
Se trata de un analizador de código intermedio que utiliza los archivos .dex de las aplicaciones para conseguir apps mucho más ligeras y de menor tamaño.
Una aplicación Java para Android se compila de la siguiente manera:
A partir del código fuente Java el compilador genera archivos con extensión .class que contienen el código intermedio (llamado también ByteCode) que es el que se ejecuta en la máquina virtual de Java (JVM). En el caso de Android, además, se generan unos archivos con extensión .dex (Dalvik Executable) que son otro tipo de código intermedio diferente al Bytecode, mucho más ligeros, y que es interpretado por la máquina virtual Dalvik propia de Android para conseguir diversas mejoras. Finalmente, estos archivos con extensión .dex se comprimen todos juntos en un archivo ZIP al que se le pone extensión .apk para crear un paquete de aplicación de Android, que es lo que se despliega en los dispositivos.
Redex es un producto diseñado y creado internamente en Facebook que, a partir de un archivo .apk de una aplicación Android, analiza en varias fases los archivos .dex que éste contiene y genera una versión súper-optimizada de la aplicación que ocupa menos y va más rápido que la original.
Por ejemplo, la app de Facebook para Android se optimizó por primera vez en diciembre de 2015 usando Redex y consiguió duplicar la velocidad de uso, y aumentar mucho su velocidad de inicio.
Ahora Facebook ha liberado la aplicación para que todos podamos utilizarla, y además es de código abierto. Funciona exclusivamente bajo Mac o Linux (no en Windows lamentablemente).
Siendo gratuita y pudiendo conseguir mejoras apreciables de rendimiento es indispensable tenerla a mano si programas para Android.