Generalidades

Utilice ADB para las tareas diarias.Si está desarrollando una aplicación para Android, … | Autor: Aung Kyaw Paing | Septiembre de 2021

Ang Jueping

Si está desarrollando una aplicación de Android, a menudo querrá saber cómo se comunica nuestra PC con el dispositivo Android durante la depuración. Bueno, la respuesta es a través de Android Debug Bridge, adb Abreviatura. Cuando ejecute su aplicación, la computadora instalará la apk de depuración adb install Y comienza la aplicación adb am start (Am significa administrador de eventos más sobre lo siguiente).Pero hay mas adb No solo eso, de hecho, hay algunos comandos que pueden ayudarlo con sus actividades diarias.

Primero, intente correr adb En su terminal para asegurarse de que esté instalado en su sistema.Si ves algo a lo largo de la línea command not found,esto significa adb Aún no está instalado.Para MacOS, ejecute brew install android-platform-tools no debería ser problema.Para el resto (y MacOS y si lo prefieres manual), puedes seguir los pasos a continuación

  1. Descargue las herramientas de la plataforma aquí
  2. Descomprímelo donde quieras guardarlo (preferiblemente ~/Android/platform-tools)
  3. Luego, en su configuración de shell ( ~/.bashsrc, ~/.zshrc Etc.) Agregue las siguientes líneas (para Windows, es posible que deba agregar la ruta dentro System variables):
export PATH=$PATH:$YOUR_EXTRACTED_PATH/platform-tools

Luego de eso tendremos que recargar el shell (cerrar y abrir la terminal).Entonces intenta correr adb de nuevo. Si funciona, podemos continuar explorando algunos de sus usos.

Si está utilizando un dispositivo físico, debe habilitar la depuración USB en el dispositivo.Primero, habilite las opciones de desarrollador ingresando System => About, luego haga clic en Número de versión interno Siete veces. Algunos dispositivos tienen diferentes formas de habilitar las opciones de desarrollador, por lo que si los pasos comunes no funcionan, busque en Google para su dispositivo.Después de eso, ingrese Developer Options Y habilitar «Depuración USB«.

LEER  [R.E.A.D] ¿Los androides sueñan con ovejas eléctricas?Completo | Por Madonna Johnston | Ene 2022

Luego, conecte su dispositivo a su PC y ejecute adb devices En la terminal. Compruebe si aparece el nombre de su dispositivo.

Debería mostrarse así

De lo contrario, es posible que su PC no pueda reconocer su dispositivo (especialmente en Windows que requiere controladores) o que la depuración USB no esté habilitada.Si esta es tu primera conexión adb, Es posible que también deba autorizar su PC en su dispositivo Android, que debería mostrar un cuadro de diálogo emergente. No se preocupe, puede revocar el acceso más tarde en las opciones de desarrollador.Si su dispositivo aparece en adb devicesEntonces podemos continuar.

Si desea ir más allá, de alguna manera podemos dejar obsoleto el cable USB.Puedes habilitar Wireless ADB Debugging existe Developer Options. después,

  • Conecte su dispositivo a la PC mediante USB
  • correr adb tcpip 5555 Hágalo escuchar en el puerto 5555.
  • correr adb shell netcfg o adb shell ifconfig Verifique la IP de su dispositivo Android
  • Desconecte el USB
  • correr adb connect $DEVICE_IP:5555 Conéctese a su dispositivo de forma inalámbrica

Asegúrate de correr adb usb Porque es peligroso abrirlo en la red (especialmente pública)

En Android 11 y versiones posteriores, Android ahora tiene una función que facilita la depuración inalámbrica. Los dispositivos se pueden emparejar de forma inalámbrica a través de un código de emparejamiento o un código QR sin tener que conectarse a la PC por primera vez.Grifo Wireless Debugging Mostrará una pantalla similar a la que se muestra a continuación:

Haga clic en «Emparejar el dispositivo con el código de emparejamiento y verá una ventana emergente similar a la siguiente:

Ve a la terminal y corre adb pair $DEVICE_IP_AND_PORT $PAIRING_CODEDebería conectarse a su teléfono.

~ adb pair 192.168.1.39:39005 954121
Successfully paired to 192.168.1.39:39005 [guid=adb-ec54c0bd-nyDhpf]

Si alguna vez ha utilizado una Mac, estará familiarizado con la transferencia de archivos de Android. Para Linux y Windows, podemos buscar manualmente el archivo y copiarlo y pegarlo en nuestra computadora.Sin embargo, prefiero transferir archivos de las siguientes formas adb Porque me ahorra la molestia de tener que conectar USB.

Si queremos transferir De mi computadora al dispositivo, Nosotros podemos usar adb push Pedido.

adb push $FILE_IN_YOUR_PC$ $PATH_IN_YOUR_DEVICE$

Por ejemplo, si quiero enviar el documento al dispositivo, puedo ejecutar

adb push ~/document.txt /sdcard/document.txt

Reversiblemente, podemos realizar adb pull Para transferir Del dispositivo a la PC.

adb pull $FILE_IN_YOUR_DEVICE$ $FILE_IN_YOUR_PC$ 
adb pull /sdcard/document.txt ~/document.txt

con adb, No es necesario utilizar cables, correo electrónico, AirDroid ni ninguna otra herramienta para volver a transferir con el dispositivo.

adb También se puede utilizar para completar formularios automáticamente cuando realiza pruebas manuales. adb Permitirle enviar input Comando al dispositivo.Estas entradas pueden ser tocar, ingresar texto o enviar eventos clave, como ENTER, TAB Espera, echemos un vistazo a esta escena que necesito ingresar. user1 con password1 .

Ejemplo de inicio de sesión

Podemos usar el siguiente comando para ingresar texto en el campo de nombre de usuario o contraseña

adb shell input text $YOUR_TEXT$
adb shell input text user1 && adb shell input text password1

Si ejecuta el comando en la terminal, encontrará que no es completamente correcto. password1 Se agregará después del final user1. Eso es porque no transferimos Atención La entrada de texto lo hace. Debemos cambiarlo de la entrada del nombre de usuario a la entrada de la contraseña.Para esto, asumiendo que tiene el apropiado nextFocus Los atributos en su entrada, podemos enviar un TAB_EVENT Al dispositivo para cambiar entre entradas.Puede encontrar todos los códigos de evento de entrada posibles aquí, si se desplaza hacia abajo, verá KEYCODE_TAB Se establece en 61. Para eventos críticos, debemos usar input keyevent $KEY_EVNET_CODE. Se parece a esto

adb shell input keyevent 61

Si combinamos todos estos, tendremos la siguiente línea de código, que escribirá automáticamente las credenciales para nuestra cuenta de prueba.

adb shell input text user1 && adb shell input keyevent 61 && adb shell input text password1
✨✨✨

Si has capturado ENTER El evento clave de comenzar a iniciar sesión, incluso podemos usar input keyevent 66 Presione Enter, luego comience cero haga clic manual para iniciar sesión.

Personalmente, completé un alias para formularios repetidos en mi configuración de shell porque redujo mi tiempo durante las pruebas manuales.Además, parece magia En presentaciones y presentaciones, cuando vea pequeños comandos similares testAccountLogin La ejecución está en curso, todo es normal.

alias testAccountLogin = adb shell input text user1 && adb shell input keyevent 61 && adb shell input text password1

Dije que el ejemplo anterior asume que tienes el apropiado nextFocus Los atributos de la entrada.Sin embargo, si está probando una aplicación de terceros y la aplicación no es realmente correcta nextFocus? ¿Cómo cambiamos automáticamente entre las entradas?No se preocupe, todavía podemos usar input tap $X_VALUE $Y_VALUE Toca la pantalla.Hay dos formas, la primera implica

  1. correr adb shell getevent -l Registrar eventos de entrada en la terminal
  2. Presione manualmente su campo de entrada
  3. Comprueba si hay ABS_MT_POSITION_X con ABS_MT_POSITION_Y En la terminal
  4. Copiar valores (deben estar en hexadecimal)
  5. Convertir valor a valor decimal
  6. correr adb shell input tap $DECIMAL_X $DECIMAL_Y Vea si hizo clic en el campo de entrada

Esto implica algunos pasos complicados, por lo que prefiero usar una forma más directa.

  1. Opciones de desarrollador abiertas
  2. Habilitar Input > Pointer Options
  3. Comprueba si puedes ver los números en la parte superior de la pantalla.
  4. Mantenga su dedo o coloque el cursor en el campo de entrada
  5. Copie los valores x, y (generalmente en la esquina superior izquierda de la pantalla)
  6. correr adb shell input tap $dx $dy Vea si hizo clic en el campo de entrada

En nuestro ejemplo, también puedo usar el comando tap para hacer lo mismo

adb shell input text user1 && adb shell input tap x y && adb shell input text password1

Esto se aplica a cualquier elemento de la pantalla, incluidos los botones. El comando completo, incluido el clic en el botón de inicio de sesión, es el siguiente:

adb shell input text user1 && adb shell input tap x y && adb shell input text password1 && adb shell input tap x y
Utilice clics en lugar de eventos clave

Otra tarea común es tomar capturas de pantalla y grabar videos. Son útiles cuando desea informar un problema y desea mostrar claramente los pasos de la copia. Primero comencemos con la captura de pantalla.

adb shell screencap $PATH_IN_DEVICE

Por ejemplo, podemos ejecutar adb shell screncap /sdcard/our_screencap.png. Entonces podemos ejecutar adb pull /sdcard/our_screencap.png Extrae la captura de pantalla en nuestra PC.

Para la grabación de video, podemos realizar

adb shell screenrecord $PATH_IN_DEVICE

Después de terminar de grabar, podemos presionar Ctrl + C (o Comando + C en MacOS) para detener la grabación.Similar a lo anterior, también podemos ejecutar adb pull Después de grabar, extraiga el archivo a nuestra computadora de desarrollo. Además, podemos ofrecer opciones como resolución, tasa de bits, tiempo, etc. Puede explorar estas opciones aquí. Tenga en cuenta que este método tiene algunas limitaciones, como que no puede girar la pantalla durante la grabación y no captura el audio.

Los enlaces profundos son una de las pocas pruebas tediosas porque tienes que hacer clic manualmente en el enlace en alguna aplicación de terceros para ver si tu aplicación está manejando el enlace correctamente.Podemos eliminar esta necesidad de aplicaciones de terceros utilizando esta función para probar adb. Como se describe en este documento, puede ejecutar el siguiente comando

adb shell am start
-W -a android.intent.action.VIEW
-d <URI> <PACKAGE>

adb shell am start
-W -a android.intent.action.VIEW
-d "example://gizmos" com.example.android

Para descomponer este comando,

  • am Representa al administrador de actividades.Por simplicidad, en Android, cada aplicación tiene un activity O más activities Lleve la IU que el usuario pueda ver. El administrador de actividades sabe qué aplicaciones tienen qué actividades y podemos iniciar una pantalla / actividad específica a través del administrador de actividades.
  • -W Indica que está esperando a que se complete el lanzamiento.
  • -a android.intent.action.VIEW Es donde especificamos la operación a realizar. En Android, tenemos operaciones predefinidas que el sistema operativo comprende, y el sistema operativo puede usar esta información para enrutar operaciones a la aplicación correspondiente. Si alguna vez ha abierto un archivo y desea conocer el origen de todas estas aplicaciones en la ventana emergente, la respuesta es a través de esta función del sistema operativo. El sistema operativo sabe qué aplicación puede manejar qué archivo, es decir, qué acción.
  • -d <URI> <PACKAGE> : el destino especifica dos parámetros, el primero es nuestro uri de enlace profundo, el segundo es la aplicación que queremos vista Este enlace profundo. Para el primero, reemplácelo con el enlace que desea probar, y para el segundo, puede ingresar el nombre del paquete de la aplicación.

Si ejecuta este comando, el sistema operativo debería iniciar su aplicación. Primero, el sistema operativo primero preguntará a la aplicación si puede manejar este tipo de enlace profundo. Si la aplicación puede manejar el enlace profundo, recibirá el enlace profundo. Ahora la aplicación es responsable de analizar y administrar el enlace profundo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba