Optimiza tu entorno de desarrollo Android.

Una de las situaciones mas desesperantes desarrollando para la plataforma Android es lo lento que puede resultar compilar el proyecto y probarlo en el emulador. Sobre todo si tu compañero de trabajo es un programador de la plataforma IOS y comparas lo que tarda el en compilar y desplegar una app en su simulador.

Android utiliza un emulador, que reproduce todas las características de hardware y software de un dispositivo (salvo efectuar llamadas deteléfono). Si durante la configuración de nuestro AVD especificamos que el dispositivo tiene 512Mb de ram, y una tarjeta SD de 1Gb, esos serán los recursos que utilizará  el emulador y no mas.

En cambio el simulador de IOS solo simula el software pero tiene acceso a todo el hardware del equipo en el que esta corriendo, ya sea almacenamiento en disco o memoria ram. Por eso es muy extraño obtener un error de memoria insuficiente, a menos que el equipo de desarrollo vaya muy corto de memoria. La parte mala es probar una app en el simulador de IOS no nos exime de probarla en dispositivos reales. En cuanto a Android, realmente tampoco nos garantiza que una app funcione perfectamente en un dispositivo real, pero si que se acerca bastante más en este aspecto.

En cualquier caso hay maneras de optimizar la configuración de un entorno de desarrollo Android y quizás no llegue a ser tan agil como un entorno de desarrollo IOs, pero mejora bastante.

 Aumenta la memoria ram de tu equipo.

El entorno de desarollo Android Studio requiere de una buena cantidad de memoria ram para funcionar con soltura. En mi trabajo dispongo de un equipo con 32Gb de ram, y aunque quizás esa cantidad no sea totalmente necesaria, creo que al menos 16Gb si lo son.  He observado que en mi equipo, Android Studio compilando una app de tamaño medio, y con dos emuladores lanzados, el uso de memoria ram ronda los 10Gb.

Por lo tanto, intenta disponer de al menos de 16Gb de ram en tu equipo de desarrolo, y no hace falta mencionar que utilices un sistema operativo de 64 bits que sea capaz de gestionarla. Por supuesto, cuanto más rápida sea la memoria ram, pues mejor, pero esto es de perogrullo.

Instala un disco duro SSD.

Sustituir nuestro disco duro tradicional por un disco duro SSD le dará otro buen empujón al rendimiento de nuestro sistema.

Con un disco duro SSD de 240GB es mas que suficiente para el sistema operativo y todas las herramientas de desarrollo para Android. Podemos conservar nuestro disco duro tradicional y utilizarlo como almacenamiento secundario para auxiliarnos si 240 Gb se nos quedan cortos. Yo tengo uno como el siguiente:

[AMAZONPRODUCTS asin=»B01AAKZRP2″]

Asegúrate de que la virtualización está activada.

Algunas cpu’s modernas incluyen mejoras para poder ejecutar máquinas virtuales de manera más eficiente. Los procesadores de Intel denominados VT, VT-x o vmx, o los de AMD denominados  AMD-V o SVM incluyen estas extensiones (en este ultimo caso, creo que esto solo funciona para Linux).

Si dispones de un procesador Intel con tecnología de virtualización, asegúrate de que esta correctamente configurado ya que es posible que la virtualización este desactivada.

1.- Comprueba si tu procesador acepta virtualización y tu sistema está bien configurado.

Descarga la herramienta Intel Procesor Identificacion Utility, instálala y ejecútala, y podrás comprobar si tu procesador tiene tecnología de virtualización.

Comprueba con esta herramienta si tu CPU Intel tiene la tecnología de virtualización.
Comprueba con esta herramienta si tu CPU Intel tiene la tecnología de virtualización.

En caso afirmativo, asegurate de que la tecnologia de virtualización esta habilitada en la BIOS de tu sistema. La opción para habilitarla en cada Bios difiere según el fabricante de la misma, pero en general, podrás encontrarla en la sección de ajustes avanzados de la CPU.

Si utilizas Windows 8, asegurate de que la característica de Windows «Hyper-V» NO está instalada. Podrás desinstalarlo en el panel de control -> desinstalar un programa -> activar o desactivar las características de windows.

Asegurate de que Hyper V NO está instalado en Windows 8
Asegurate de que Hyper V NO está instalado en Windows 8

2.- Instala Intel HAXM.

Busca en el directorio de instalación del SDK de Android, la carpeta «sdk\extras\intel\Hardware_Accelerated_Execution_Manager». Intel HAXM es un motor de virtualización que utiliza la tecnología VT de los procesadores de Intel para acelerar el funcionamiento del emulador Android. En resumen, que tienes que instalar este programa.

3.- Configura bien tu emulador.

A continuación, asegúrate de que has descargado la imagen de sistema de Intel de la API para la que planeas crear un emulador. Por ejemplo, si quieres crear un emulador del futuro Android L, asegúrate de que has descargado la siguiente imagen:

imagen intel x86

Ya solo falta un paso. Cuando crees un emulador nuevo con el gestor de emuladores AVD, asegúrate de seleccionar en el combobox de CPU «Intel Atom x86» (o 64, si es el caso), y activar el uso de la GPU de tu ordenador.

optimiza la configuracion de tu emulador

Y esto es todo. Una vez arranques el emulador, deberías notar un incremento notable en la velocidad. Sigue sin ser tan rápido como el simulador de IOS, pero desde luego es mejor de lo que era antes.

Utiliza genymotion.

Si el emulador «de serie» que proporciona la plataforma Android sigue siendo demasiado lento para ti, prueba a instalar el emulador Genymotion de la empresa GenyMobile.

Por defecto, es muchisimo más rápido y facil de utilizar que el emulador de serie de la plataforma Android, y si habeis hecho las optimizaciones del punto anterior, tambien se beneficiará de ellas.

Utiliza el emulador estandar de Android

Ya hace un tiempo que no utilizo el emulador de Genymotion, porque el emulador por defecto de la plataforma Android ha mejorado tanto que funciona tan rapido o más que el emulador de Genymotion. No tiene tantas funcionalidades (por ejemplo, para simular ubicaciones, o instalar la play store), pero en general es bastante funcional.

Optimiza Android Studio.

Android Studio esta basado en el entorno de desarrollo IntelliJ, y una vez me encontré este curioso consejo al arrancar IntelliJ:

Ajusta que carpetas controla tu antivirus
Ajusta que carpetas controla tu antivirus

Yo ni siquiera tengo instalado un antivirus en mi ordenador. Pero en el caso de que no quieras ser tan radical, puedes excluir algunas carpetas de las comprobaciones de tu antivirus, como por ejemplo, las carpetas donde tengas el código fuente de tus proyectos.

Si googleas un poco encontrarás el siguiente consejo para acelerar la compilación proyectos: modificar archivo «gradle.properties» en el directorio raiz de tu proyecto, y añadir lo siguiente:

En mi caso no he notado ninguna mejora, y supongo que es debido a que en las sucesivas versiones de Android Studio (actualmente estoy usando la 0.8.12), se van corrigiendo defectos y puliendo detalles, y este tipo de «tunning» ya esta incluido en la configuración por defecto. Pero por probarlo no perdemos nada.

Junio de 2016: Pásate por el articulo en el que explico como activar las opciones Dex In de la nueva version de Android Studio

Si tienes alguna pregunta o comentario, ¡no olvides pasarte por nuestro foro!