Diferencia entre revisiones de «Android Debug Bridge: ADB»

De MediaWiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 11 ediciones intermedias del mismo usuario)
Línea 16: Línea 16:
 
* Cando un cliente se quere conectar ao emulador, este comproba se xa está executándose o servidor. En caso de que non estea, levanta o servizo.
 
* Cando un cliente se quere conectar ao emulador, este comproba se xa está executándose o servidor. En caso de que non estea, levanta o servizo.
 
: Se queremos levantalo manualmente temos que executar a orde: '''adb start-server'''.
 
: Se queremos levantalo manualmente temos que executar a orde: '''adb start-server'''.
 +
 +
 +
* <u>'''Nota:'''</u> Cada emulador vai empregar dous portos, un para a consola e outro onde escoita os comandos adb que recibe do cliente.
 +
: Por iso cando dende consola aparecen a lista de dispositivos, aparece '''nome-5554''' en vez de 'nome-5555' (máis información [https://developer.android.com/studio/command-line/adb neste enlace]).
  
 
==Dispositivos conectados==
 
==Dispositivos conectados==
Línea 32: Línea 36:
 
Image:Android_2013_adb_06.jpg| '''<ruta sdk>/platform-tools/adb shell''' permite conectarse á consola do dispositivo. Ollo que neste exemplo hai un só dipositivo conectado, logo veremos como se actúa cando hai dous ou máis.
 
Image:Android_2013_adb_06.jpg| '''<ruta sdk>/platform-tools/adb shell''' permite conectarse á consola do dispositivo. Ollo que neste exemplo hai un só dipositivo conectado, logo veremos como se actúa cando hai dous ou máis.
 
Image:Android_2013_adb_07.jpg| A consola do dispositivo e a execución do comando '''pwd'''.  
 
Image:Android_2013_adb_07.jpg| A consola do dispositivo e a execución do comando '''pwd'''.  
−
Image:Android_2013_adb_08b.jpg| A execución do comando '''df -h''' para ver os puntos de montaxe, os seus tamaños e consumos de espazo.
+
Image:Android_2013_adb_08b.jpg| A execución do comando '''df''' para ver os puntos de montaxe, os seus tamaños e consumos de espazo.
 
Image:Android_2013_adb_9.jpg| A execución do comando '''mount''' que amosa en que directorios están montado os dispositivos físicos. Observar onde está montada a tarxeta SD, o formato de ficheiros, a codificación de caracteres, etc.Podedes comprobar como aparecer 3 cartafoles diferentes para a mesma tarxeta SD. Isto é debido a que a partires da versión 6.0 de Android, podemos indicar a aplicación que se vai instalar se vai necesitar permisos lectura/escritura sobre a tarxeta SD. Así, se unha aplicación soamente ten permiso de lectura amosará o contido de /mnt/runtime/read/. Máis información [https://source.android.com/devices/storage/ neste enlace].  
 
Image:Android_2013_adb_9.jpg| A execución do comando '''mount''' que amosa en que directorios están montado os dispositivos físicos. Observar onde está montada a tarxeta SD, o formato de ficheiros, a codificación de caracteres, etc.Podedes comprobar como aparecer 3 cartafoles diferentes para a mesma tarxeta SD. Isto é debido a que a partires da versión 6.0 de Android, podemos indicar a aplicación que se vai instalar se vai necesitar permisos lectura/escritura sobre a tarxeta SD. Así, se unha aplicación soamente ten permiso de lectura amosará o contido de /mnt/runtime/read/. Máis información [https://source.android.com/devices/storage/ neste enlace].  
 
Image:Android_2013_adb_10.jpg| '''ls -l''' amosa o contido en formato lista do directorio actual: o raíz. Na carpeta '''data''' ...
 
Image:Android_2013_adb_10.jpg| '''ls -l''' amosa o contido en formato lista do directorio actual: o raíz. Na carpeta '''data''' ...
Línea 38: Línea 42:
 
Image:Android_2013_adb_12.jpg| ... contén as aplicacións instaladas no dispositivo.  
 
Image:Android_2013_adb_12.jpg| ... contén as aplicacións instaladas no dispositivo.  
 
</gallery>
 
</gallery>
−
 
−
 
−
===Xestión dunha BBDD con sqlite3===
 
−
*A modo de exemplo vaise ver como facer consultas básicas, dentro do dispositivo, co xestor [http://es.wikipedia.org/wiki/SQLite sqlite3].
 
−
*Máis información en: http://www.sqlite.org/
 
−
*Vaise traballar coa bases de datos dos contactos do teléfono.
 
−
 
−
 
−
<gallery caption="sqlite3" widths="350" heights="300px" perrow="2">
 
−
Image:Android_2013_adb_13.jpg| Situarse na carpeta da aplicación. Toda aplicación ten unha estrutura de ficheiros semellante. Hai un directorio chamado '''databases'''.
 
−
Image:Android_2013_adb_21.jpg| Contén un ficheiro sqlite3 que é unha base de datos chamada '''contacts2.db'''.
 
−
Image:Android_2013_adb_15.jpg| Abrir os contactos do teléfono.
 
−
Image:Android_2013_adb_16.jpg| Crear un novo contacto ...
 
−
Image:Android_2013_adb_17.jpg| Localmente ...
 
−
Image:Android_2013_adb_18.jpg| Indicar o nome e o número e gardar o contacto.
 
−
Image:Android_2013_adb_19.jpg| Volver á axenda.
 
−
Image:Android_2013_adb_20.jpg| Lista de contactos.
 
−
Image:Android_2013_adb_22.jpg| Lanzar o xestor de Base de Datos. '''sqlite3 contacts2.db'''. Observar que consola se despraza cara ...
 
−
Image:Android_2013_adb_23.jpg| ... a dereita.
 
−
Image:Android_2013_adb_24.jpg| Todo comando empeza por '''punto "."''' , salvo as sentencias sql, e estas deben rematar en '''";"'''.
 
−
Image:Android_2013_adb_25.jpg| '''.help''' amosa a axuda do xestor.
 
−
Image:Android_2013_adb_26.jpg| O resto da axuda do xestor.
 
−
Image:Android_2013_adb_27.jpg| '''.databases''' amosa a base de datos á que se está conectado.
 
−
Image:Android_2013_adb_28.jpg| '''.show''' amosa os valores para distintos parámetros de configuración, entre eles, '''mode'''.
 
−
Image:Android_2013_adb_29.jpg| '''.tables''' amosa as táboas da BD.
 
−
Image:Android_2013_adb_30.jpg| '''select * from raw_contacts''' (observar que falta o ";", o cal é introducido na seguinte liña). Amosa os nomes dos contactos. 
 
−
Image:Android_2013_adb_31.jpg| '''select * from view_v1_phones;''' amosa os números de teléfono.
 
−
Image:Android_2013_adb_32.jpg| Executando '''.help''' vese como poder cambiar o '''modo''' en que se visualiza o contido dunha táboa'''.
 
−
Image:Android_2013_adb_33.jpg| '''.mode line''' indica que amose cada campo dunha táboa co seu valor nunha liña por campo. '''select * from raw_contacts;'''
 
−
Image:Android_2013_adb_34.jpg| '''.exit''' serve para saír do xestor e volver á consola do dispositivo.
 
−
Image:Android_2013_adb_36.jpg| Con '''exit''' saímos da consola do dispositivo e volvemos á consola do ordenador.
 
−
Image:Android_2013_adb_37.jpg| Con '''adb shell comando''' execútase o comando na consola do dispositivo e a saída amósase na consola do ordenador.
 
−
</gallery>
 
−
 
−
 
−
<u>'''Nota:'''</u> Se queremos reiniciar o dispositivo teremos que executar, dentro do shell, as seguintes ordes:
 
−
:* stop
 
−
:* start
 
−
 
−
Con isto faremos o 'efecto' de reiniciar. Isto é necesario no caso de ter un servizo que se executa cando se acende o dispositivo Android e queiramos comprobar o seu funcionamento.
 
  
 
==Sacar ficheiros do dispositivo==
 
==Sacar ficheiros do dispositivo==
Línea 83: Línea 47:
  
 
<gallery caption="adb pull" widths="350" heights="300px" perrow="2">
 
<gallery caption="adb pull" widths="350" heights="300px" perrow="2">
−
Image:Android_2013_adb_38.jpg| Neste caso sácase do dispositivo a BD anterior de contactos: '''contacts2.db'''. Co parámetro: '''adb pull'''. ('''<ruta sdk>/platform-tools/adb pull /data/data/com.android.providers.contacts/databases/contacts2.db''')
+
Image:PDM_adb_pull_1.jpg| Abrimos un emulador e buscamos un google unha imaxe calquera a descargar. Mantendo premido o rato sobre a imaxe aparece a opción de '''Download'''.
−
Image:Android_2013_adb_39.jpg| Observar a BD '''contacts2.db''' no cartafol do ordenador.
+
Image:PDM_adb_pull_2.jpg| Podemos comprobar como por defecto, dita imaxe se garda na memoria interna do emulador. Debemos de anotar dita ruta.
−
Image:Android_2013_adb_40.jpg| Existen moitos xestores para manipular BBDD sqlite3, neste caso vaise instalar no ordenador un complemento no Mozilla Firefox e así vale para os tres SOs. Ir '''Ferramentas->Complementos''' en Firefox. Buscar sqlite e instalar o complemento '''Sqlite Manager'''
+
Image:PDM_adb_pull_3.jpg| Agora debemos facer uso do comando '''adb pull''' para 'traer' un arquivo dende o emulador á máquina real ('''<ruta sdk>/platform-tools/adb pull /storage/emulated/0/Download/pexels-photo.jpg'''). Máis información [http://adbshell.com/commands/adb-pull neste enlace]. Podemos indicar o cartafol de destino da forma: '''<ruta sdk>/platform-tools/adb pull /storage/emulated/0/Download/pexels-photo.jpg /cartafol_destino/'''
−
Image:Android_2013_adb_41.jpg| Reiniciar o Firefox.
+
 
−
Image:Android_2013_adb_42.jpg| Complemento instalado e activo.
 
−
Image:Android_2013_adb_43.jpg| En '''Ferramentas->SQLite Manager''' ábrese o xestor de BBDD.
 
−
Image:Android_2013_adb_44.jpg| Conectar á BD  ...
 
−
Image:Android_2013_adb_45.jpg| ... descargada do dispositivo.
 
−
Image:Android_2013_adb_46.jpg| Agora pódese manipular a BD.
 
 
</gallery>
 
</gallery>
  
 
==Instalar unha aplicación==
 
==Instalar unha aplicación==
−
*As aplicacións instalables teñen extensión '''apk''' como se verá na UNIDADE 2 do curso: '''adb installl'''.
+
*As aplicacións instalables teñen extensión '''apk''' como se verá na UNIDADE 2 do curso: [http://adbshell.com/commands/adb-install adb install].
 
*Neste caso vaise baixar de internet un visor PDF moi sinxelo para Android.
 
*Neste caso vaise baixar de internet un visor PDF moi sinxelo para Android.
  
Línea 101: Línea 60:
 
Image:Android_2013_adb_47.jpg| Descargar o .apk do visor PDF de http://sourceforge.net/projects/andpdf/files/
 
Image:Android_2013_adb_47.jpg| Descargar o .apk do visor PDF de http://sourceforge.net/projects/andpdf/files/
 
Image:Android_2013_adb_48.jpg| A aplicación descargada.
 
Image:Android_2013_adb_48.jpg| A aplicación descargada.
−
Image:Android_2013_adb_51.jpg| '''<ruta sdk>/platform-tools/adb install Descargas/AndroidPdfViewer_1_0_1.apk''' instalará o paquete no dispositivo.
+
Image:Android_2013_adb_51.jpg| '''<ruta sdk>/platform-tools/adb install Descargas/AndroidPdfViewer_1_0_1.apk''' instalará o paquete no dispositivo (en Windows: c:\RUTA_SDK\platform-tools\adb.exe install  Downloads\AndroidPdfViewer_1_0_1.apk, estando situados no cartafol anterior a Downloads).
 
Image:Android_2013_adb_50.jpg| A aplicación instalada.
 
Image:Android_2013_adb_50.jpg| A aplicación instalada.
 
Image:Android_2013_adb_52.jpg| A aplicación instalada no directorio '''/data/data/''' ...
 
Image:Android_2013_adb_52.jpg| A aplicación instalada no directorio '''/data/data/''' ...
Línea 108: Línea 67:
  
 
==Introducir ficheiro no dispositivo==
 
==Introducir ficheiro no dispositivo==
−
*Ao igual que se sacan ficheiros do dispositivo tamén se poden introducir ficheiros no mesmo: '''adb push'''.
+
*Ao igual que se sacan ficheiros do dispositivo tamén se poden introducir ficheiros no mesmo: [http://adbshell.com/commands/adb-push adb push].
  
  
Línea 152: Línea 111:
 
<gallery caption="Dispositivo físico" widths="350" heights="300px" perrow="2">
 
<gallery caption="Dispositivo físico" widths="350" heights="300px" perrow="2">
 
Image:Android_2014_adb_70A.jpg| Se non aparece en '''Ajustes->{ } Opciones de desarrollo'''. Ir a '''Ajustes -> Información del teléfono'''.
 
Image:Android_2014_adb_70A.jpg| Se non aparece en '''Ajustes->{ } Opciones de desarrollo'''. Ir a '''Ajustes -> Información del teléfono'''.
−
Image:Android_2014_adb_70B.jpg| Pulsar 7 veces sobre '''Número de compilación''' e xa aparece ...
+
Image:Android_2014_adb_70B.jpg| Pulsar 7 veces sobre '''Número de compilación''' e xa aparece ...Nos XIAOMI aparece ao premer 5 veces en 'versión MIUI'.
 
Image:Android_2013_adb_70.jpg| ... '''{ } Opciones de desarrollo'''. Premer nesa opción. En versións máis antigas ir a '''Ajustes-> Aplicaciones->Desarrollo'''
 
Image:Android_2013_adb_70.jpg| ... '''{ } Opciones de desarrollo'''. Premer nesa opción. En versións máis antigas ir a '''Ajustes-> Aplicaciones->Desarrollo'''
 
Image:Android_2013_adb_71.jpg| Habilitar '''Depuración USB'''  
 
Image:Android_2013_adb_71.jpg| Habilitar '''Depuración USB'''  
Línea 179: Línea 138:
 
Image:Android_2013_adb_86.jpg|  '''<ruta sdk>/platform-tools/adb devices''' amosa o dispositivo físico conectado ao ordenador.
 
Image:Android_2013_adb_86.jpg|  '''<ruta sdk>/platform-tools/adb devices''' amosa o dispositivo físico conectado ao ordenador.
 
</gallery>
 
</gallery>
−
 
−
 
−
 
−
 
−
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2018).
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
−
 
  
  

Revisión actual del 17:16 22 sep 2019

Introdución

Máis información neste enlace.

  • O Android Debug Bridge ADB é unha utilidade que permite comunicarse cun dispositivo virtual ou real.
O executable se atopa no cartafol de instalación do SDK/plataform-tools/ e ten nome 'adb' en Linux ou 'adb.exe' en Windows.


  • Esta composto dun:
  • Un servidor que sempre está funcionando no ordenador real e que vai servir de 'ponte' para mandar os comandos dende o cliente ao emulador ou dispositivo real Android. Este servidor sempre estará escoitando no porto 5037.
O servidor escanea os portos impares dende 5555 a 5585 buscando dispositivos reais ou emuladores aos que mandar os comandos.
  • Un cliente ADB, que mandará as ordes ao emulador ou dispositivo real a través do servidor adb facendo uso do porto 5037.


  • Cando un cliente se quere conectar ao emulador, este comproba se xa está executándose o servidor. En caso de que non estea, levanta o servizo.
Se queremos levantalo manualmente temos que executar a orde: adb start-server.


  • Nota: Cada emulador vai empregar dous portos, un para a consola e outro onde escoita os comandos adb que recibe do cliente.
Por iso cando dende consola aparecen a lista de dispositivos, aparece nome-5554 en vez de 'nome-5555' (máis información neste enlace).

Dispositivos conectados

O shell do dispositivo

  • Permite executar comandos dentro do dispositivo android.
  • Android está baseado en Linux, por tanto poderanse executar moitos dos comandos dese SO nun dispositivo android.
  • Importante: Para acceder en modo root en AVDs con versións de android 7 ou superior débese execuatar antes de entrar nel:adb root.

Sacar ficheiros do dispositivo

  • Outra das funcionalidades que nos permite é sacar ficheiros/carpetas do dispositivo.

Instalar unha aplicación

  • As aplicacións instalables teñen extensión apk como se verá na UNIDADE 2 do curso: adb install.
  • Neste caso vaise baixar de internet un visor PDF moi sinxelo para Android.

Introducir ficheiro no dispositivo

  • Ao igual que se sacan ficheiros do dispositivo tamén se poden introducir ficheiros no mesmo: adb push.


Desinstalar unha aplicación do dispositivo

  • Ao igual que se pode instalar unha aplicación tamén se pode desinstalar: adb uninstall.
  • Tamén se pode realizar de modo gráfico.


Varios dispositivos

  • Até agora só traballamos con adb cun só dispositivo. Como actuar cando hai máis dun dispositivo real ou virtual?.


Conectar un dispositivo físico

  • Agora tócalle a quenda aos dispositivos físicos.
  • Hai que habilitar a Depuración USB


Conectar un dispositivo físico en Windows

  • En Linux e OS X non é preciso instalar o driver do dispositivo para conectarse a el, pero en Windows si.
  • Neste caso vaise usar de exemplo un dispositivo físico Samsung.









-- Ángel D. Fernández González e Carlos Carrión Alvarez. -- (2018).