Diferencia entre revisiones de «Usuario:Juanda/android/adb»
(→Comandos habituales de Linux en Android) |
|||
Línea 6: | Línea 6: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | === ¿Qué es ADB? === | + | ==== ¿Qué es ADB? ==== |
*[[wikipedia:Android_Debug_Bridge|ADB]] son las siglas de Android Debug Bridge | *[[wikipedia:Android_Debug_Bridge|ADB]] son las siglas de Android Debug Bridge | ||
*Es una herramienta de desarrollo [http://developer.android.com/tools/help/adb.html incluida en el SDK de Android]. | *Es una herramienta de desarrollo [http://developer.android.com/tools/help/adb.html incluida en el SDK de Android]. | ||
Línea 13: | Línea 13: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | ===Cómo usar ADB=== | + | ====Cómo usar ADB==== |
*Debemos instalar el SDK de Android o el [http://developer.android.com/sdk/index.html ADT-Bundle] | *Debemos instalar el SDK de Android o el [http://developer.android.com/sdk/index.html ADT-Bundle] | ||
*Está situado en el directorio platform-tools. | *Está situado en el directorio platform-tools. | ||
Línea 26: | Línea 26: | ||
<div class="slide"> | <div class="slide"> | ||
===Configuración del dispositivo=== | ===Configuración del dispositivo=== | ||
+ | </div> | ||
+ | <div class="slide"> | ||
====Windows==== | ====Windows==== | ||
*Tendremos que descargar el driver adb para el dispositivo. | *Tendremos que descargar el driver adb para el dispositivo. | ||
Línea 67: | Línea 69: | ||
*De las trazas observamos que el dispositivo se conecta como bus:3, device: 6 | *De las trazas observamos que el dispositivo se conecta como bus:3, device: 6 | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
*Ejecutamos lsusb para ver el vendor id del dispositivo, en nuestro caso 2207:0010: | *Ejecutamos lsusb para ver el vendor id del dispositivo, en nuestro caso 2207:0010: | ||
Línea 85: | Línea 88: | ||
</source> | </source> | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
*Actualizamos el fichero anterior: | *Actualizamos el fichero anterior: | ||
Línea 99: | Línea 103: | ||
</source> | </source> | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
*Paramos y arrancamos adb (android device bridge) y comprobamos la lista de dispositivos: | *Paramos y arrancamos adb (android device bridge) y comprobamos la lista de dispositivos: | ||
Línea 111: | Línea 116: | ||
</source> | </source> | ||
</div> | </div> | ||
− | |||
+ | <div class="slide"> | ||
=== Usos más frecuents de adb === | === Usos más frecuents de adb === | ||
<code>adb</code> provee numerosas funciones que se pueden ver en detalle mediante el comando: | <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> | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Comprobación comunicación==== | ====Comprobación comunicación==== | ||
Línea 125: | Línea 131: | ||
List of devices attached | List of devices attached | ||
01a927828f90ccde device | 01a927828f90ccde device | ||
− | |||
juanda@juanda-PC:~$ | juanda@juanda-PC:~$ | ||
</source> | </source> | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Comunicación vía shell==== | ====Comunicación vía shell==== | ||
Línea 139: | Línea 145: | ||
</source> | </source> | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Transferencia de ficheros==== | ====Transferencia de ficheros==== | ||
Línea 147: | Línea 154: | ||
:Copiamos un fichero remoto (del movil) al PC. | :Copiamos un fichero remoto (del movil) al PC. | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Ver el fichero de log en tiempo real==== | ====Ver el fichero de log en tiempo real==== | ||
Línea 153: | Línea 161: | ||
* Es útil usar algún filtro o redirigir a un fichero. | * Es útil usar algún filtro o redirigir a un fichero. | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Instalación de aplicaciones==== | ====Instalación de aplicaciones==== | ||
Línea 161: | Línea 170: | ||
*adb uninstall Aplicacion.apk: Para desinstalar | *adb uninstall Aplicacion.apk: Para desinstalar | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
====Reiniciar el dispositivo==== | ====Reiniciar el dispositivo==== | ||
Línea 167: | Línea 177: | ||
*<code>adb reboot recovery</code> | *<code>adb reboot recovery</code> | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
==== Error "Device not found" ==== | ==== Error "Device not found" ==== | ||
Línea 174: | Línea 185: | ||
adb start-server</source> | adb start-server</source> | ||
*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). | ||
− | + | </div> | |
− | + | ||
+ | <div class="slide" | ||
====Error driver==== | ====Error driver==== | ||
*No se reconoce el dispositivo: | *No se reconoce el dispositivo: | ||
Línea 191: | Línea 202: | ||
adb start-server | adb start-server | ||
</source> | </source> | ||
− | |||
</div> | </div> | ||
− | |||
+ | <div class="slide"> | ||
====Error no permissions==== | ====Error no permissions==== | ||
<source lang="bash"> | <source lang="bash"> | ||
Línea 209: | Línea 219: | ||
adb start-server | adb start-server | ||
</source> | </source> | ||
− | + | </div> | |
+ | <div class="slide"> | ||
==Requisitos para usar adb== | ==Requisitos para usar adb== | ||
*Si lo utilizamos para debuggear una aplicación se debe indicar en el Android Manifest añadiendo android:debuggable="true" al elemento <application>. Eclipse lo hace solo. | *Si lo utilizamos para debuggear una aplicación se debe indicar en el Android Manifest añadiendo android:debuggable="true" al elemento <application>. Eclipse lo hace solo. | ||
+ | </div> | ||
<div class="slide"> | <div class="slide"> | ||
===Despliegue de aplicaciones a dispositivo físico=== | ===Despliegue de aplicaciones a dispositivo físico=== |
Revisión de 22:16 12 may 2013
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>
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:
sudo apt-get update sudo apt-get install ia32-libs
Problema con libncurses.so.5 64-bit
Under 64bits version of Linux Mint 14 and maybe other Debian/Ubuntu flavours adb
shows the following error:
./adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
You can solve it by installing libncurses5 i386's version. Just type apt-get install libncurses5:i386
as root.
adb vía wifi
To update ADB use SDK Manager.
For some reason the SDK Manager does not automatically show the new release versions of Android SDK Tools and Android Platform-Tools, so if the versions of your Android SDK Tools and/or Android Platform-Tools are respectively older than 21.1 and 16.0.1, you will need to first delete them then reload the SDK Manager to get their new release versions to be displayed and available for installation.
Also, it appears that Android Support Libraries (under Extra) is also required for ADB to work, so you should install it as well.
Also, to get ADB-over-WiFi to work, first use ADB-over-USB to the same given PC/Laptop and grant access with "always" box checked.
*Añado una o varias entradas en el fichero pero hay un error al hacer el push: <source lang="bash"> juanda@dpto-01:~/Android/sdk/tools$ vi hosts juanda@dpto-01:~/Android/sdk/tools$ cat hosts 127.0.0.1 localhost 192.168.1.1 incidencias.jd www.incidencias.jd 192.168.1.1 spp.jd www.spp.jd juanda@dpto-01:~/Android/sdk/tools$ adb push hosts /etc/hosts failed to copy 'hosts' to '/etc/hosts': Read-only file system juanda@dpto-01:~/Android/sdk/tools$
</div>
*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: <source lang="bash"> juanda@dpto-01:~/Android/sdk/tools$ adb shell shell@android:/ $ su - shell@android:/ # mount -o rw,remount /system shell@android:/ # exit shell@android:/ $ exit juanda@dpto-01:~/
</div>