Diferencia entre revisiones de «Usuario:Juanda/android/adb»
De WikiEducator
(→2º método: desde el PC) |
|||
(25 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 25: | Línea 25: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | ==Configuración | + | ==Configuración previa para usar adb== |
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Windows==== | ====Windows==== | ||
*Tendremos que descargar el driver adb para el dispositivo. | *Tendremos que descargar el driver adb para el dispositivo. | ||
− | + | *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. | |
− | *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. | + | *Puedes encontrar un driver genérico que se encuentra en la carpeta android-sdk-windows\usb_driver del SDK Android. |
− | * | + | *Lo más probable es que tengas que utilizar el driver del fabricante. |
*A veces también hace falta otro ejecutable adb distinto al que aparece en el Android SDK. | *A veces también hace falta otro ejecutable adb distinto al que aparece en el Android SDK. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Para los que no aparecen habrá que ir a sus webs o contactar con su servicio de soporte. | ||
*No siempre existen los drivers o funcionan como debieran ¡ojo! | *No siempre existen los drivers o funcionan como debieran ¡ojo! | ||
+ | *En ocasiones para que funcione se utiliza el driver de google pero modificando el fichero de instalación del driver: adb_usb.ini | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
+ | |||
====Mac==== | ====Mac==== | ||
− | *No hace falta hacer nada. Filosofia MAC: O funciona directamente o no funciona. | + | *No hace falta hacer nada. |
+ | *Filosofia MAC: O funciona directamente o no funciona. | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
=====Ubuntu===== | =====Ubuntu===== | ||
− | *Es conveniente leer la documentación sobre [https://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html udev | + | *Es conveniente leer la documentación sobre [https://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html udev] (gestión dinámica de dispositivos en Linux) |
*Tendremos que añadir el fichero 51-android.rules con los permisos y texto que figura a continuación: | *Tendremos que añadir el fichero 51-android.rules con los permisos y texto que figura a continuación: | ||
<source lang="bash"> | <source lang="bash"> | ||
Línea 118: | Línea 126: | ||
<div class="slide"> | <div class="slide"> | ||
− | === Usos más frecuents de adb === | + | |
− | <code>adb</code> provee numerosas funciones que se pueden ver en detalle mediante el comando: | + | ====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. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *'''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"> | ||
+ | == Usos más frecuents de adb == | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ====adb help==== | ||
+ | *<code>adb</code> provee numerosas funciones que se pueden ver en detalle mediante el comando: | ||
<source lang="bash">adb help</source> | <source lang="bash">adb help</source> | ||
+ | *Veremos a continuación las más importantes | ||
</div> | </div> | ||
Línea 187: | Línea 211: | ||
</div> | </div> | ||
− | <div class="slide" | + | <div class="slide"> |
− | ==== | + | ====Errores habituales==== |
*No se reconoce el dispositivo: | *No se reconoce el dispositivo: | ||
<source lang="bash"> | <source lang="bash"> | ||
Línea 194: | Línea 218: | ||
List of devices attached | List of devices attached | ||
?????????? device | ?????????? device | ||
− | |||
− | |||
</source> | </source> | ||
− | * | + | *False de permisos: |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<source lang="bash"> | <source lang="bash"> | ||
juanda@juanda-PC:~$ adb devices | juanda@juanda-PC:~$ adb devices | ||
Línea 212: | Línea 226: | ||
juanda@juanda-PC:~$ | juanda@juanda-PC:~$ | ||
</source> | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
*Driver incorrecto | *Driver incorrecto | ||
− | *Configuración fichero udev | + | *Configuración errónea fichero udev |
+ | *Reiniciar 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> | ||
*Reiniciar servicio adb: | *Reiniciar servicio adb: | ||
<source lang="bash"> | <source lang="bash"> | ||
Línea 221: | Línea 244: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ===Error en funcionamiento de dispositivos físicos y emuladores=== | + | ====Error en funcionamiento de dispositivos físicos y emuladores==== |
*El error es el siguiente: | *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' | :[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' | ||
Línea 252: | Línea 254: | ||
</source> | </source> | ||
</div> | </div> | ||
− | + | <div class="slide"> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | = | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
==adb vía wifi== | ==adb vía wifi== | ||
− | + | </div> | |
+ | <div class="slide"> | ||
+ | ====Primer método: desde el terminal==== | ||
+ | *Habilitar adb desde el dispositivo movil (debemos ser root): | ||
+ | <source lang="bash"> | ||
+ | setprop service.adb.tcp.port 5555 | ||
+ | stop adbd | ||
+ | start adbd | ||
+ | </source> | ||
− | + | *Para deshabilitarlo: | |
− | + | <source lang="bash"> | |
− | + | setprop service.adb.tcp.port -1 | |
− | + | stop adbd | |
− | + | start adbd | |
+ | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ====2º método: desde el PC==== | ||
+ | *Desde un equipo, '''con acceso USB''' | ||
+ | <source lang="bash"> | ||
+ | adb tcpip 5555 | ||
+ | adb connect <ip>:5555 | ||
+ | </source> | ||
+ | *El puerto no hace falta, por defecto es el 5555 | ||
+ | *Para volver a escuchar por USB: | ||
+ | <source lang="bash"> | ||
+ | adb usb | ||
+ | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Primer método: hay que teclear mucho desde el movil, ¡muy pesado! | ||
+ | *Segundo método: hace falta llevar el cable usb, ¡una lata! | ||
+ | *Tercer método: Instalar una aplicación en el móvil: adbWireless, WiFi ADB o ADB WiFi. ¡Necesitan acceso root! | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ==Eclipse y adb== | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Si adb no está correctamente configurado desde Eclipse no funcionará. | ||
+ | *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 class="slide"> | <div class="slide"> | ||
==Ejemplos uso terminal Linux en en Android== | ==Ejemplos uso terminal Linux en en Android== | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | ===Actualización fichero /etc/hosts=== | + | ====Actualización fichero /etc/hosts==== |
*El comando para ver las interfaces del movil es netcfg (no ifconfig) | *El comando para ver las interfaces del movil es netcfg (no ifconfig) | ||
*El fichero hosts se encuentra en /system/etc/hosts | *El fichero hosts se encuentra en /system/etc/hosts | ||
Línea 293: | Línea 319: | ||
</source> | </source> | ||
</div> | </div> | ||
− | < | + | |
+ | <div class="slide"> | ||
*Añado una o varias entradas en el fichero pero hay un error al hacer el push: | *Añado una o varias entradas en el fichero pero hay un error al hacer el push: | ||
<source lang="bash"> | <source lang="bash"> | ||
Línea 306: | Línea 333: | ||
</source> | </source> | ||
</div> | </div> | ||
− | < | + | |
+ | <div class="slide"> | ||
*En muchos dispositivos la partición /system se monta como solo lectura así que hay que montarla con permisos de escritura. | *En muchos dispositivos la partición /system se monta como solo lectura así que hay que montarla con permisos de escritura. | ||
*A continuación todas las trazas al cambiarlo en mi sistema: | *A continuación todas las trazas al cambiarlo en mi sistema: | ||
Línea 318: | Línea 346: | ||
</source> | </source> | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
*La partición ya tiene permisos de lectura, hacemos el push: | *La partición ya tiene permisos de lectura, hacemos el push: | ||
Línea 327: | Línea 356: | ||
*¡Vaya! Ahora fallan los permisos.... | *¡Vaya! Ahora fallan los permisos.... | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
*Cambiamos permisos fichero /etc/hosts para su sustitución: | *Cambiamos permisos fichero /etc/hosts para su sustitución: | ||
Línea 341: | Línea 371: | ||
</source> | </source> | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
*Comprobamos que todo ha ido bien y ponemos todo como estaba: | *Comprobamos que todo ha ido bien y ponemos todo como estaba: |
Última revisión de 11:10 15 may 2013