Usuario:Juanda/android/emulador

=Uso del emulador en Android=

AVD

 * Android Virtual Devices
 * Interfaz gráfica para crear dispositivos Android
 * Se ejecuta desde el icono de eclipse o mediante el comando:
 * Video sobre como crear dispositivos AVD
 * Descargar video


 * El sdk guarda imágenes del sistema para los AVD:
 * Cada vez que creamos un AVD nuevo, copia sus imágenes en un directorio de usuario:

Teclas rápidas

 * Son muchas... las más importantes:
 * Inicio: Tecla Home.
 * Esc: Tecla de volver.
 * Ctrl-F11: Cambia la orientación entre horizontal y vertical.
 * Alt-Intro: Visualiza el emulador a pantalla completa.

Simulaciones del entorno
Más información de comandos
 * Falta de batería, tráfico de red, llamadas o sms, posición geográfica...
 * Cada instancia del emulador utiliza dos puertos, el del adb (por defecto 5555) y uno inferior de consola.
 * Podemos ver el puerto de consola mediante el comando adb devices
 * Se accede mediante telnet localhost 

Pasos preliminares

 * Descargamos la plataforma SDK sobre la que vaya a funcionar el navegador mediante el SDK Manager: en este caso elegiremos la 2.2
 * Descargamos los ficheros para la práctica
 * Damos de alta un nuevo dispositivo Android (observa que se crea en color verde).
 * Vamos a crear nuestro dispositivo AVD (Android Virtual Device) a partir del dispositivo anterior y lo llamaremos "prueba"
 * Arrancamos el dispositivo
 * Comprobamos que tenemos acceso al dispositivo mediante adb:

Carencias del emulador

 * Faltan comandos (por ejemplo find o el editor vi).
 * Falta el Play Store
 * Faltan las APIs de Google
 * ¿Espacio en partición /system?
 * Al apagar el emulador lo que haya instalado en la partición system desaparece
 * El emulador va más lento que un desfile de cojos

Aumentar la partición system

 * Al instalar cosas en el emulador en el /system, por defecto puede venir lleno, por lo que debemos cambiar el tamaño de la partición al arrancar:
 * Comprobamos que el tamaño de la partición haya cambiado:

Instalación de comandos adicionales

 * Observa la estructura de directorios y los ejecutables que faltan
 * Para instalar nuevos comandos (en /system/bin) se debe tener acceso con lectura y escritura a la partición.
 * Utilizaremos busybox para instalar los comandos
 * Miramos el tipo de partición de system y el dispositivo que utiliza para hacer un re-mount:


 * Comprobamos que la partición system tenga escritura:
 * - Haciendo un mount
 * - Subiendo un fichero mediante push


 * Instalamos la aplicación SuperUser que se encarga de dar permisos de root a las aplicaciones:
 * Observamos en el emulador que está instalada y se ejecuta con normalidad


 * Instalamos la aplicación BusyBox que tiene un conjunto de comandos útiles de Linux.
 * Una vez instalada se debe ejecutar para que se termine la instalación, son necesarios permisos de root.
 * Comprobamos el correcto funcionamiento


 * No funciona porque falta de instalar su


 * Instalamos su:
 * Terminamos la instalación del BusyBox y comprobamos si funciona:

Generación de imagen de system

 * Si queremos que las modificaciones que hemos hecho en el system sean persistentes, debemos generar una imagen de la partición
 * Para generar una imagen nos hará falta el ejecutable mkfs.yaffs2.
 * En este caso utilizaremos el arm pero también existe para x86:
 * -mkfs.yaffs2 para x86
 * -mkfs.yaffs2 para arm


 * Generamos la imagen y nos lo llevamos al pc:

Optimización del emulador

 * Por defecto, el emulador va más lento que un desfile de cojos.
 * Si está disponible (Intel va con algo de retardo a veces), resulta más útil utilizar un emulador con Intel (haz un wipe user data la primera vez que lo uses, sino, ¿se queda colgado?)
 * Puede ir más rápido también mediante aceleración de máquinas virtuales mediante KVM (Kernel-based virtual machine).
 * -Instalación.
 * -Configuración en Eclipse


 * Ojo KVM con VmWare y VirtualBox pueden no llevarse del todo bien
 * La aceleración del emulador para Windows se hace directamente desde el SDK Manager.

Instalación de KVM

 * Comprobamos que la máquina soporte aceleración de hardware (valor superior a 0):
 * Instalamos kvm:
 * Cerramos sesión y volvemos a entrar. Debemos ejecutar el siguiente comando para ver que esté bien instalado:
 * En la configuración del emulador:
 * Eclipse: Run -> Run Configurations -> Target -> Additional Emulator Command Line Options: "-qemu -m 512 -enable-kvm"
 * Terminal:


 * Tiempos carga desde ordenador Intel(R) Core(TM)2 Duo CPU    E8500  @ 3.16GHz
 * emulador ARM: 1,10 a 1,20 (10 segundos menos sin boot animation)
 * emulador x86: 15-18 segundos
 * emulador x86 con virtualización kvm: 15-18 segundos


 * Debemos marcar snapshots para acelerarlo (no es compatible con la opción de emulación de GPU)