|
|
Línea 88: |
Línea 88: |
| :Properties (botón derecho) y pulsamos en Add JavaScript Library y seleccionamos jQuery. | | :Properties (botón derecho) y pulsamos en Add JavaScript Library y seleccionamos jQuery. |
| | | |
− | ===Despliegue de aplicaciones a dispositivo físico===
| |
− | :Desplegar una aplicación a un dispositivo físico es un proceso con dos partes:
| |
− | ====Configuración del dispositivo====
| |
− | [[Archivo:Android_phone_settings.png|600px|thumb|center|(Configuración de dispositivo físico Android para despliegue de aplicaciones de desarrollo)]]
| |
− | *En Android 4 la habilitación del USB Debug está en Ajustes > Opciones de Desarrollo.
| |
− | *'''Nota:''' A partir de '''Android 4.2''', las opciones de desarrollo no están visibles por defecto: ''"To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen to find Developer options."''
| |
− | </div>
| |
− | <div class="slide">
| |
− | ====Configuración del dispositivo====
| |
− | =====Windows=====
| |
− | *Tendremos que descargar el driver del dispositivo
| |
− | =====Mac=====
| |
− | *No hace falta hacer nada
| |
− | =====Ubuntu=====
| |
− | *Tendremos que añadir el fichero 51-android.rules con los permisos y texto que figura a continuación:
| |
− | root@juanda-PC:/etc/udev/rules.d# ls -l 51-android.rules
| |
− | -rw-r--r-- 1 root root 76 feb 24 11:33 51-android.rules
| |
− | root@juanda-PC:/etc/udev/rules.d# cat 51-android.rules
| |
− | SUBSYSTEM=="usb", ATTR{idVendor}=="ID_DISPOSITIVO", MODE="0666", GROUP="plugdev"
| |
− | root@juanda-PC:/etc/udev/rules.d#
| |
− | *Tendremos que conocer el identificador del dispositivo (ID_DISPOSITIVO), así que conectamos el dispositivo y observamos las trazas del fichero de logs del sistema:
| |
− | <source lang="bash">
| |
− | tail -100f /var/log/syslog
| |
− | Feb 24 11:12:27 juanda-PC kernel: [ 1918.767308] usb 3-1: new high-speed USB device number 6 using xhci_hcd
| |
− | Feb 24 11:12:27 juanda-PC mtp-probe: checking bus 3, device 6: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1"
| |
− | Feb 24 11:12:27 juanda-PC kernel: [ 1918.784245] usb 3-1: ep 0x81 - rounding interval to 32768 microframes, ep desc says 0 microframes
| |
− | Feb 24 11:12:27 juanda-PC kernel: [ 1918.784252] usb 3-1: ep 0x83 - rounding interval to 32768 microframes, ep desc says 0 microframes
| |
− | Feb 24 11:12:27 juanda-PC kernel: [ 1918.784256] usb 3-1: ep 0x4 - rounding interval to 32768 microframes, ep desc says 0 microframes
| |
− | Feb 24 11:12:27 juanda-PC kernel: [ 1918.784796] scsi11 : usb-storage 3-1:1.0
| |
− | Feb 24 11:12:27 juanda-PC mtp-probe: bus: 3, device: 6 was not an MTP device
| |
− | Feb 24 11:12:28 juanda-PC kernel: [ 1919.781950] scsi 11:0:0:0: Direct-Access Linux File-CD Gadget 0000 PQ: 0 ANSI: 2
| |
− | Feb 24 11:12:28 juanda-PC kernel: [ 1919.782212] scsi 11:0:0:1: Direct-Access Linux File-CD Gadget 0000 PQ: 0 ANSI: 2
| |
− | Feb 24 11:12:28 juanda-PC kernel: [ 1919.782607] sd 11:0:0:0: Attached scsi generic sg8 type 0
| |
− | </source>
| |
− | *De las trazas observamos que el dispositivo se conecta como bus:3, device: 6
| |
− | *Ejecutamos lsusb para ver el vendor id del dispositivo, en nuestro caso 2207:0010:
| |
− | <source lang="bash">
| |
− | juanda@juanda-PC:/etc/udev$ lsusb
| |
− | Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
| |
− | Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
| |
− | Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
| |
− | Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
| |
− | Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
| |
− | Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
| |
− | Bus 001 Device 003: ID 413c:2111 Dell Computer Corp.
| |
− | Bus 001 Device 004: ID 046d:c063 Logitech, Inc. DELL Laser Mouse
| |
− | Bus 004 Device 002: ID 059f:104a LaCie, Ltd
| |
− | Bus 002 Device 003: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
| |
− | Bus 001 Device 006: ID 0cf3:e004 Atheros Communications, Inc.
| |
− | Bus 003 Device 006: ID 2207:0010
| |
− | </source>
| |
− | *Actualizamos el fichero anterior:
| |
− | <source lang="bash">
| |
− | juanda@juanda-PC:/etc/udev/rules.d$ cat 51-android.rules
| |
− | SUBSYSTEM=="usb", ATTR{id_vendor}=="2207", MODE="0666", GROUP="plugdev"
| |
− | </source>
| |
− | *Para comprobar si todo hay ido bien, se puede hacer desde la línea de comandos:
| |
− | *Reiniciamos el servicio de udev:
| |
− | <source lang="bash">
| |
− | juanda@juanda-PC:/etc/udev/rules.d$ sudo service udev restart
| |
− | udev stop/waiting
| |
− | udev start/running, process 9069
| |
− | juanda@juanda-PC:/etc/udev/rules.d$
| |
− | </source>
| |
− | *Paramos y arrancamos adb (android device bridge) y comprobamos la lista de dispositivos:
| |
− | <source lang="bash">
| |
− | juanda@juanda-PC:/etc/udev/rules.d$ adb kill-server
| |
− | juanda@juanda-PC:/etc/udev/rules.d$ adb start-server
| |
− | * daemon not running. starting it now on port 5037 *
| |
− | * daemon started successfully *
| |
− | juanda@juanda-PC:/etc/udev/rules.d$ adb devices
| |
− | List of devices attached
| |
− | emulator-5554 device
| |
− | </source>
| |
− | *Es útil poner los comandos más habituales dentro del PATH:
| |
− | <source lang="bash">
| |
− | juanda@juanda-PC:~$ cat .bashrc|grep -i PATH
| |
− | PATH=$PATH:$HOME/Android/sdk/tools:$HOME/Android/sdk/platform-tools
| |
− | </source>
| |
| | | |
− | ====Indicar que queremos desplegarlo en el dispositivo al ejecutar la aplicación====
| |
− | *Cuando ejecutemos la aplicación veremos una pantalla similar a la siguiente:
| |
− | :Eclipse->Windows->Open Perspective->DDMS
| |
− | *Aparecerán los emuladores que tengamos corriendo y los dispositivos físicos que estén enchufados a la entrada USB del PC
| |
− | *En caso de tener un solo dispositivo disponible esta pantalla no aparecerá.
| |
− | </div>
| |
− | <div>
| |
− | ===Error en funcionamiento de dispositivos físicos y emuladores===
| |
− | *El error es el siguiente:
| |
− | :[2013-02-22 13:55:20 - adb] Unexpected exception 'Cannot run program "/home/juanda/Android/sdk/platform-tools/adb": java.io.IOException: error=2, No existe el archivo o el directorio' while attempting to get adb version from '/home/juanda/Android/sdk/platform-tools/adb'
| |
− | *Solución, instalar los siguientes paquetes:
| |
− | <source lang="bash">
| |
− | sudo apt-get update
| |
− | sudo apt-get install ia32-libs
| |
− | </source>
| |
| </div> | | </div> |
| </div> | | </div> |