Diferencia entre revisiones de «Usuario:Juanda/android/emulador»
(→Aumentar la partición system) |
|||
Línea 142: | Línea 142: | ||
:-... | :-... | ||
</div> | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | *Instalamos la aplicación SuperUser que se encarga de dar permisos de root a las aplicaciones: | ||
+ | <source class="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 class="slide"> | ||
+ | *Instalamos la aplicación BusyBox que tiene un conjunto de comandos útiles de Linux. | ||
+ | <source class="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. | ||
+ | </div> | ||
+ | |||
+ | |||
<div class="slide"> | <div class="slide"> |
Revisión de 21:40 22 may 2013
Guía Administración Android
Tutorial sobre conceptos básicos sobre el sistema operativo Android
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
- -...
- Instalamos la aplicación SuperUser que se encarga de dar permisos de root a las aplicaciones:
Idioma no válido.
Necesita especificar un idioma como esto: <source lang="html4strict">...</source>
lenguajes soportados para sintaxis remarcada:
4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic
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$
- 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.
Idioma no válido.
Necesita especificar un idioma como esto: <source lang="html4strict">...</source>
lenguajes soportados para sintaxis remarcada:
4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic
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$
- Una vez instalada se debe ejecutar para que se termine la instalación, son necesarios permisos de root.
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)