Curso de Android
De WikiEducator
Saltar a: navegación, buscar
Guía Administración Android
Tutorial sobre conceptos básicos sobre el sistema operativo Android
Presentación | Conceptos básicos | Ciclo de desarrollo | Bootloader | fastboot | recovery | adb | Sistema de Ficheros | Rootear | Eclipse | emulador
Contenido
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:
juanda@juanda-PC:~/Android/sdk/tools$ android avd
- El sdk guarda imágenes del sistema para los AVD:
juanda@juanda-PC:~/Android/sdk/system-images/android-17/x86$ ls build.prop NOTICE.txt source.properties userdata.img kernel-qemu ramdisk.img system.img
- Cada vez que creamos un AVD nuevo, copia sus imágenes en un directorio de usuario:
juanda@juanda-PC:~/.android/avd/htcdesire.avd$ ls -l total 542492 -rw------- 1 juanda juanda 16860 abr 20 02:43 cache.img -rw-rw-r-- 1 juanda juanda 549 abr 15 21:30 config.ini -rw-rw-r-- 1 juanda juanda 51 abr 20 02:44 emulator-user.ini -rw-rw-r-- 1 juanda juanda 1280 abr 20 02:43 hardware-qemu.ini -rw-rw-r-- 1 juanda juanda 506134528 abr 20 02:44 snapshots.img -rw-rw-r-- 1 juanda juanda 1279 abr 20 02:44 snapshots.img.default-boot.ini -rw-rw-r-- 1 juanda juanda 4048704 abr 15 21:30 userdata.img -rw------- 1 juanda juanda 45346716 abr 20 02:44 userdata-qemu.img juanda@juanda-PC:~/.android/avd/htcdesire.avd$
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.
Configuración del emulador
Pasos preliminares
- Descargamos la plataforma SDK sobre la que vaya a funcionar el navegador: en este caso elegiremos la 2.2
- 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:
juanda@dpto-01:~/Android/eclipse$ adb devices List of devices attached emulator-5554 device juanda@dpto-01:~/Android/eclipse$ adb shell #
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: juanda@juanda-PC:~/Descargas/kk$ emulator -avd nexus4jd -partition-size 400 *Comprobamos que el tamaño de la partición haya cambiado: root@android:/ # df Filesystem Size Used Free Blksize /dev 410M 32K 410M 4096 /mnt/secure 410M 0K 410M 4096 /mnt/asec 410M 0K 410M 4096 /mnt/obb 410M 0K 410M 4096 /system 388M 198M 189M 4096 /data 194M 11M 182M 4096 /cache 64M 1M 62M 4096 root@android:/ #
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:
juanda@dpto-01:~/Android/eclipse$ adb shell # mount rootfs / rootfs ro 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pts devpts rw,mode=600 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 none /acct cgroup rw,cpuacct 0 0 tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0 none /dev/cpuctl cgroup rw,cpu 0 0 /dev/block/mtdblock0 /system yaffs2 ro 0 0 /dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0 /dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0 # # mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
- Comprobamos que la partición system tenga escritura:
- - Haciendo un mount
- - Subiendo un fichero mediante push
- -...
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).
- Ojo KVM con VmWare y VirtualBox pueden no llevarse del todo bien
Instalación de KVM
- Comprobamos que la máquina soporte aceleración de hardware (valor superior a 0):
juanda@dpto-01:~$ egrep -c '(vmx|svm)' /proc/cpuinfo 2 juanda@dpto-01:~$
- Instalamos kvm:
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils $ sudo adduser `id -un` libvirtd Adding user '<username>' to group 'libvirtd' ...
- Cerramos sesión y volvemos a entrar. Debemos ejecutar el siguiente comando para ver que esté bien instalado:
$ virsh -c qemu:///system list Id Name State ---------------------------------- $
- En la configuración del emulador:
- Eclipse: Run -> Run Configurations -> Target -> Additional Emulator Command Line Options: "-qemu -m 512 -enable-kvm"
- Terminal:
emulator -avd <avd_name> -qemu -m 512 -enable-kvm
- 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)