AVD Emulador Android y como Acelerar el emulador con Intel Atom x86 tecnología VT

Hola de nuevo!! Bienvenidos a otra nueva leccion del curso gratuito en www.AprendeAndroid.com Últimamente estoy viendo que hay muchas webs/blogs que se están apropiando de mi trabajo gratuitamente, pero en fin... espero que les salga un Grano en el culito de esos que no te dejan sentarte! ;P.

Quitando este mal rollo.... ¿como va la cosa? esta vez explicare como configurar y utilizar el Emulador que nos ofrece el propio SDK de Android en Eclipse y así poder probar tus aplicaciones.

Cuando me matricule en el curso de Android, el comercial me vendía el curso de 1.500€ me lo vendía con... ohhhh "el emulador de Android" joe, yo pensaba...: - Que bien! ¡que curso mas completo!. Anda que.... no sabia que Eclipse es gratuito, y que el emulador biene integrado en el SDK de Android.... en fin.... cosas de novato ;P

¿Que es eso de los emuladores? Un Emulador es una recreación de un dispositivo físico en un software, de este modo podremos correr o ejecutar nuestro programa para probarlo y depurarlo sin necesidad de un dispositivo físico.

Un emulador Android tiene ventajas e inconvenientes:

Ventaja: Podemos emular cualquier versión de Android, imagina que tienes un móvil viejo y quieres probar tu aplicación en una versión mas moderna, por ejemplo la KitKat, o viceversa, tienes un pedazo de móvil con KitKat, pero quieres probar si la aplicación funciona en GINGERBREAD... con un emulador puedes hacerlo sin problemas!! ;P. Además puedes recrear cualquier dispositivo móviles, tablets...

Inconvenientes: Podremos emular o simular un dispositivo Android, pero... ¿podemos simular los sensores del dispositivo? pues la respuesta es si, pero no todos los sensores. Por ejemplo, podremos simular un GPS, pero no podremos simular el acelerometro o el sensor de luz.... si podemos simular llamadas de teléfono, una tarjeta SD, los emuladores son mas lentos a la hora de realizar una tarea que requiera mucha carga (consultas a bases de datos, mapas...).

Para las aplicaciones que necesitemos un dispositivo físico (por tema de sensores o simplemente quieres hacer la prueba final antes de publicar tu aplicación en GooglePlay), tenemos la opción de conectar un dispositivo físico a eclipse, mola, ¿verdad? ;P (ya veras como mas adelante)

Como he mencionado antes, una buena practica antes de publicar una aplicación en GooglePlay es usar los Emuladores para poder probar en distintas versiones de Android, distintos tamaños de pantalla y resoluciones, así puedes probar tu aplicación emulando distintos móviles mas modernos o mas antiguos, y ver como se comporta para asegurar la compatibilidad con el mayor numero de dispositivos Android posibles.

Como sabes actualmente solo los dispositivos de alta gama se actualizan a las ultimas versiones de android 4.4.2 para el resto de móviles gama media y baja los operadores no se molestan en sacar tantas actualizaciones, y la mayoría de dispositivos de gama media los han sacrificado a tener Android 4.1.x Jelly Bean hasta el resto de su vida. A esto es lo que Google llama Fragmentación. (fíjate que el 25% de los dispositivos se han quedado en 2.3.x. los datos de la tabla de abajo, son datos distribuidos por Google a Diciembre de 2013).

 

Recuerda, que antes de subir nuestra aplicación a GooglePlay deberás también probarla en un terminal Físico, a veces nos funciona todo bien en el emulador y luego en un terminal físico da problemas y en estos casos son en los que biene muy bien poder conectar nuestro móvil a Eclipse y así probar y depurar la app en el físico.

Así que resumiendo! para probar y depurar nuestras aplicaciones tenemos dos opciones: o instalarlas en un terminal físico. (conectando el móvil a Eclipse) o en el emulador virtual usando AVD Manager en Eclipse.

Emulador Android con Eclipse usando ADV Manager.

Eclipse, Java, Android

Comencemos!! la imagen de arriba es como se ve un emulador Android en nuestro PC. Como ves es una ventana dentro de windows (como si fuese otro programa) con un teclado con los botones típicos de un dispositivo Android, pegado a lo que seria la pantalla del dispositivo a su Izquierda.

Otra cosa muy, pero que muy interesante (yo tarde mucho en descubrirlo) es que hay una serie de botones para realizar otras funciones en el Emulador, por ejemplo rotar la pantalla que seria con F11 y otras funciones que te las detallo en la siguiente tabla:

Eclipse, Java, Android

 

Crear un Emulador con ADV Manager Android

Para crear un Emulador pulsa sobre el icono de AVD Manager, se abrirá un dialogo donde aparecerán todos los Emuladores virtuales, si ya tienes creado uno, desde aquí podrás iniciarlo pulsando "Start", si todavía no tienes ninguno, tienes que tener claro que necesitas primero crear un Device Definition (es el Hardware del dispositivo) y luego usarlo cuando crees el emulador. En el SDK de Android vienen predefinidos los modelos nexus, si quieres crear uno adicional tendrás que hacerlo antes desde la pestaña "Device Definitions". Vamos a suponer que te valen los modelos predefinidos, haz click en "new" desde la pestaña "Android Virtual Devices".

Emulador, Android

El proceso de creación del emulador es bastante intuitivo, el AVD Name es el nombre con la que vas a identificar el emulador en la lista de emuladores ya creados, Device es una lista donde se encuentran los dispositivos con la información de Hardware (resolución de pantalla, RAM, sensores, camaras...) por defecto tenemos los dispositivos Nexus de google, cuando selecciones uno, automaticamente se ajustan los demás valores (bastante útil). Otra cosa muy importante es seleccionar el Target que es la API con el que vas a correr este Emulador, recuerda que el API es la versión de Android, según ves en la lista hay 2 de cada API, por ejemplo hay dos API10... ¿esto por que? esto es algo que me chocaba a mi también. fíjate mejor, una pone Android, y otra pone Google, esta es la clave! si quieres probar servicios de google, como por ejemplo los Mapas de Google, debes utilizar la que pone Google, si no NO TE FUNCIONARA Y DARA UN ERROR CUANDO DEPURES EL PROGRAMA. No lo olvides!!

desconectar MTP permitir depuracion USB

 

Como acelerar nuestro emulador con "Intel x86 Emulator Accelerator"

Una desventaja que tiene el emulador, es que a la hora de ejecutar tareas pesadas, se nota muy, pero que muy lento! desde hace bastante tiempo atrás (desde el API 15 y SDK Tools v17), los chicos de Android implementaron una herramienta que mejora un poco esto (no te creas que hace milagros) pero aumenta sensiblemente el rendimiento del emulador. Lo malo es que necesitas un procesador compatible con Intel Virtualization Technology (VT-x) y un sistema operativo de la siguiente lista:

 Windows 7 (32/64-bit)
 Windows Vista (32/64-bit)
 Windows XP (32-bit only)

Además, tendrás que descargar e instalar los siguientes paquetes con SDK Manager:

Emulador, Android

y dentro del paquete de cada API, tienes la imagen del Intel x86 Atomsystem image. Recuerda que esta funcionalidad es compatible a apartir de la API 15.

Emulador, Android

Después de instalar todos estos paquetes, Eclipse te pedirá que reinicies el ADT, yo te recomiendo que cierres Eclipse y lo volvieras abrir, luego abre una ventana de MSDOS (comando "cmd" en inicio, Ejecutar...) busca donde tengas instalado el SDK de android y ejecuta este codigo:

"instalacion del sdk"/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.exe

Te deberia quedar una cosa asi....

Emulador, Android

Una vez ejecutado ese codigo comenzara la instalación del complemento Intel, ¡ojo! si tu procesador no es compatible con la Visualización, veras una notificación como la que ves abajo, si todo va bien sigue el asistente (es muy fácil) solo tendrás que pulsar sobre siguiente varias veces.

Emulador, Android

Una vez que este todo instalado, si quieres comprobar que todo esta bien, puedes ejecutar un comando para verificar que el complemento esta corriendo bien, para ello abre una ventana de MSDOS y ejecuta el siguiente código:

sc query intelhaxm
Emulador, Android

Después de todo, y para usar el complemento de Intel abre el AVD Manager, selecciona el emulador que quieres implementar el Acelerador de Intel Atom (x86) una cosa muy, pero que muy importante es seleccionar en el Target una imagen de Android y no de Google, cuando le des al desplegable veras que para cada API hay 2 imágenes, una de Google y una de Android (selecciona la de Android) después selecciona en la CPU el procesador Intel Atom (x86).

Emulador, Android

Recuerda que cuando usas una imagen de Android no puedes usar los servicios de Google como los mapas, así que esto de la aceleración... pues no es tan fantástico como en un principio parecía :(

En la consola del AVD Manager tendrás un resumen con las principales características de los emuladores, que para mi son: Tipo de Imagen (Target) y la CPU.

Emulador, Android

Como llamar por teléfono de un emulador a otro

Por ultimo, me gustaría decirte como llamar al emulador, esto tarde bastante en descubrirlo, y además es una chorrada una vez que te lo dicen claro, yo ni si quiera sabia que se podía! para llamar por teléfono con un emulador tendrás que iniciar 2 emuladores!! el teléfono que tiene cada emulador es el que esta en la esquina superior Izquierda! ;P. Este emulador tiene el numero 554, cuando inicies el segundo seguramente tenga el correlativo superior, es decir el 5555, ya lo veras cuando se inicie!! Podrás usar la función de llamar del emulador y marcar el teléfono del otro emulador, veras como suena!! ;P

Emulador, Android

Bueno, y hasta aquí la paliza de hoy!! Si te a gustado este sitio, puedes hacer click en me gusta en Facebook, Google+, Tweeter... es el único precio que te pido por este trabajo! ;P. Compartiendo, ayudaras a otros a encontrar esta web! GRACIASSSS.