Diferencia entre revisiones de «Usuario:Juanda/android/emulador»
De WikiEducator
(→Pasos preliminares) |
(→Pasos preliminares) |
||
| (12 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 53: | Línea 53: | ||
<div class="slide"> | <div class="slide"> | ||
| + | |||
| + | ====Simulaciones del entorno==== | ||
| + | *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 <console-port> | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | <source lang="bash"> | ||
| + | juanda@dpto-01:~/Android/sdk$ adb devices | ||
| + | List of devices attached | ||
| + | emulator-5554 device | ||
| + | |||
| + | juanda@dpto-01:~/Android/sdk$ telnet localhost 5554 | ||
| + | Trying 127.0.0.1... | ||
| + | Connected to localhost. | ||
| + | Escape character is '^]'. | ||
| + | Android Console: type 'help' for a list of commands | ||
| + | OK | ||
| + | gsm call 696797518 | ||
| + | OK | ||
| + | </source> | ||
| + | [http://developer.android.com/tools/devices/emulator.html Más información de comandos] | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | |||
==Configuración del emulador== | ==Configuración del emulador== | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
====Pasos preliminares==== | ====Pasos preliminares==== | ||
| − | *Descargamos la plataforma SDK sobre la que vaya a funcionar el navegador: en este caso elegiremos la 2.2 | + | *Descargamos la plataforma SDK sobre la que vaya a funcionar el navegador mediante el SDK Manager: en este caso elegiremos la 2.2 |
| + | *[http://www.media.formandome.es/android/practica_emulador.tar.gz Descargamos los ficheros] para la práctica | ||
*Damos de alta un nuevo dispositivo Android (observa que se crea en color verde). | *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" | *Vamos a crear nuestro dispositivo AVD (Android Virtual Device) a partir del dispositivo anterior y lo llamaremos "prueba" | ||
| Línea 89: | Línea 117: | ||
====Aumentar la partición system==== | ====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: | *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: | ||
| + | <source lang="bash"> | ||
juanda@juanda-PC:~/Descargas/kk$ emulator -avd nexus4jd -partition-size 400 | juanda@juanda-PC:~/Descargas/kk$ emulator -avd nexus4jd -partition-size 400 | ||
| − | + | </source> | |
*Comprobamos que el tamaño de la partición haya cambiado: | *Comprobamos que el tamaño de la partición haya cambiado: | ||
| + | <source lang="bash"> | ||
root@android:/ # df | root@android:/ # df | ||
Filesystem Size Used Free Blksize | Filesystem Size Used Free Blksize | ||
| Línea 108: | Línea 137: | ||
<div class="slide"> | <div class="slide"> | ||
| + | |||
====Instalación de comandos adicionales==== | ====Instalación de comandos adicionales==== | ||
*Observa la estructura de directorios y los ejecutables que faltan | *Observa la estructura de directorios y los ejecutables que faltan | ||
| Línea 139: | Línea 169: | ||
:- Subiendo un fichero mediante push | :- Subiendo un fichero mediante push | ||
:-... | :-... | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | *Instalamos la aplicación SuperUser que se encarga de dar permisos de root a las aplicaciones: | ||
| + | <source lang="bash"> | ||
| + | juanda@dpto-01:~/Android$ adb install Superuser.apk | ||
| + | 4023 KB/s (1468798 bytes in 0.356s) | ||
| + | pkg: /data/local/tmp/Superuser.apk | ||
| + | Success | ||
| + | juanda@dpto-01:~/Android$ | ||
| + | </source> | ||
| + | *Observamos en el emulador que está instalada y se ejecuta con normalidad | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
| + | *Instalamos la aplicación BusyBox que tiene un conjunto de comandos útiles de Linux. | ||
| + | <source lang="bash"> | ||
| + | juanda@dpto-01:~/Android$ adb install BusyBox.apk | ||
| + | 4034 KB/s (3235962 bytes in 0.783s) | ||
| + | pkg: /data/local/tmp/BusyBox.apk | ||
| + | Success | ||
| + | juanda@dpto-01:~/Android$ | ||
| + | </source> | ||
| + | *Una vez instalada se debe ejecutar para que se termine la instalación, son necesarios permisos de root. | ||
| + | *Comprobamos el correcto funcionamiento | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | *No funciona porque falta de instalar su | ||
| + | [[Archivo:Busybox-error.png|500px]] | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | *Instalamos su: | ||
| + | <source lang="bash"> | ||
| + | juanda@dpto-01:~/Android$ adb push su /system/xbin/su | ||
| + | 3728 KB/s (380532 bytes in 0.099s) | ||
| + | juanda@dpto-01:~/Android$ adb shell chmod 06755 /system/xbin/su | ||
| + | juanda@dpto-01:~/Android$ adb shell | ||
| + | </source> | ||
| + | *Terminamos la instalación del BusyBox y comprobamos si funciona: | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ====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: | ||
| + | :-[http://code.google.com/p/android-group-korea/downloads/detail?name=mkfs.yaffs2.x86 mkfs.yaffs2 para x86] | ||
| + | :-[http://code.google.com/p/android-group-korea/downloads/detail?name=mkfs.yaffs2.arm mkfs.yaffs2 para arm] | ||
| + | <source lang="bash"> | ||
| + | juanda@dpto-01:~/Android$ adb push mkfs.yaffs2.arm /data/ | ||
| + | juanda@dpto-01:~/Android$ adb shell | ||
| + | # cd /data | ||
| + | #chmod 777 mkfs.yaffs2.armt+found | ||
| + | </source> | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | *Generamos la imagen y nos lo llevamos al pc: | ||
| + | <source lang="bash"> | ||
| + | # ./mkfs.yaffs2.arm /system /data/system.img | ||
| + | mkfs.yaffs2: Android YAFFS2 Tool,Build by PowerGUI | ||
| + | at http://www.openhandsetalliance.org.cn | ||
| + | Building... | ||
| + | Build Ok. | ||
| + | # exit | ||
| + | juanda@dpto-01:~/Android$ adb pull /data/system.img | ||
| + | 4579 KB/s (82621440 bytes in 17.620s) | ||
| + | juanda@dpto-01:~/Android$ | ||
| + | </source> | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | |||
====Optimización del emulador==== | ====Optimización del emulador==== | ||
*Por defecto, el emulador va más lento que un desfile de cojos. | *Por defecto, el emulador va más lento que un desfile de cojos. | ||
| Línea 149: | Línea 249: | ||
: -[http://developer.android.com/tools/devices/emulator.html Configuración en Eclipse] | : -[http://developer.android.com/tools/devices/emulator.html Configuración en Eclipse] | ||
*Ojo KVM con VmWare y VirtualBox pueden no llevarse del todo bien | *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. | ||
</div> | </div> | ||
Última revisión de 11:12 22 may 2013