Diferencia entre revisiones de «Usuario:Juanda/android/adb»
De WikiEducator
Línea 23: | Línea 23: | ||
*No es necesario ser root para utilizarlo | *No es necesario ser root para utilizarlo | ||
*Normalmente se utiliza vía USB pero también puede hacerse vía wifi. | *Normalmente se utiliza vía USB pero también puede hacerse vía wifi. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ===Configuración del dispositivo=== | ||
+ | ====Windows==== | ||
+ | *Tendremos que descargar el driver adb para el dispositivo. | ||
+ | *Puedes encontrar un driver genérico que se encuentra en la carpeta android-sdk-windows\usb_driver del SDK Android. Aunque lo más probable es que tengas que utilizar el driver del fabricante. | ||
+ | *En la web de Android hay un [http://developer.android.com/tools/extras/oem-usb.html listado de enlaces] para la descarga de los drivers de los principales fabricantes. | ||
+ | *Para los que no aparecen habrá que ir a sus webs o contactar con su servicio de soporte. | ||
+ | *A veces también hace falta otro ejecutable adb distinto al que aparece en el Android SDK. | ||
+ | *No siempre existen los drivers o funcionan como debieran ¡ojo! | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ====Mac==== | ||
+ | *No hace falta hacer nada. Filosofia MAC: O funciona directamente o no funciona. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | =====Ubuntu===== | ||
+ | *Tendremos que añadir el fichero 51-android.rules con los permisos y texto que figura a continuación: | ||
+ | <source lang="bash"> | ||
+ | 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# | ||
+ | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *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 | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *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> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *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> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *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> | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
Línea 46: | Línea 133: | ||
*Se pueden mandar comandos individuales de shell mediante: <code>adb shell <command_to_be_executed_on_the_device></code> | *Se pueden mandar comandos individuales de shell mediante: <code>adb shell <command_to_be_executed_on_the_device></code> | ||
*Desde Android 4.2.2 se pide autorizar el acceso a cada ordenador desde una ventana emergente el el dispositivo movil. | *Desde Android 4.2.2 se pide autorizar el acceso a cada ordenador desde una ventana emergente el el dispositivo movil. | ||
+ | *Si el terminal resulta pequeño podemos ejecutar el siguiente comando: | ||
+ | <source lang="bash"> | ||
+ | stty rows 60 cols 156 | ||
+ | </source> | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
Línea 77: | Línea 168: | ||
<div class="slide"> | <div class="slide"> | ||
==== Error "Device not found" ==== | ==== Error "Device not found" ==== | ||
− | |||
*Se producen cuando adb no encuentra el dispositivo. | *Se producen cuando adb no encuentra el dispositivo. | ||
*Podemos reiniciar el servicio de adb: | *Podemos reiniciar el servicio de adb: | ||
<code>adb kill-server</code> | <code>adb kill-server</code> | ||
<code>adb start-server</code> | <code>adb start-server</code> | ||
− | |||
*Hay que asegurarse que la opción '''USB debugging''' o '''Android Debug Bridge''' desde Ajustes->Herramientas de Desarrollo (varía un poco de versión a versión). | *Hay que asegurarse que la opción '''USB debugging''' o '''Android Debug Bridge''' desde Ajustes->Herramientas de Desarrollo (varía un poco de versión a versión). | ||
− | + | *Errores con el driver | |
{{note|note=Some devices require a file at <code>.android/adb_usb.ini</code> be added to help your computer find the correct device. For example, the "encore" device requires that this file include a line containing <code>0x2080</code>, the identification code for the device. If you have installed adb and are unable to find the device, you may wish to inquire as to whether this may be the case for your device.}} | {{note|note=Some devices require a file at <code>.android/adb_usb.ini</code> be added to help your computer find the correct device. For example, the "encore" device requires that this file include a line containing <code>0x2080</code>, the identification code for the device. If you have installed adb and are unable to find the device, you may wish to inquire as to whether this may be the case for your device.}} | ||
Línea 97: | Línea 186: | ||
</source> | </source> | ||
− | ==== | + | </div> |
− | + | <div class="slide"> | |
+ | ====Error no permissions==== | ||
+ | <source lang="bash"> | ||
+ | juanda@juanda-PC:~$ adb devices | ||
+ | List of devices attached | ||
+ | ???????????? no permissions | ||
+ | juanda@juanda-PC:~$ | ||
+ | </source> | ||
+ | *Driver incorrecto | ||
+ | *Configuración fichero udev | ||
+ | *Reiniciar servicio adb: | ||
+ | <code>adb kill-server</code> | ||
+ | <code>adb start-server</code> | ||
==Requisitos para usar adb== | ==Requisitos para usar adb== | ||
Línea 111: | Línea 212: | ||
*'''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."'' | *'''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> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====Indicar que queremos desplegarlo en el dispositivo al ejecutar la aplicación==== | ====Indicar que queremos desplegarlo en el dispositivo al ejecutar la aplicación==== |
Revisión de 21:41 12 may 2013