# Android Debug Bridge (adb)

Conexión a dispositivo vía red.

```shell
# Opción 1
## Desde un equipo con Windows conectado al dispositivo mediante USB,
## habilitamos la conexión ADB hacia el dispositivo móvil vía red
.\adb.exe tcpip 5555
## Conexión ADB  vía red al dispositivo desde equipo con Linux/Unix
adb connect <device-ip-address>:5555

# Opción 2
## Desde el dispositivo móvil (rooteado), mediante una terminal (por ejemplo Termux), 
## habilitamos la conexión ADB hacia el dispositivo móvil vía red
su
setprop service.adb.tcp.port 5555
stop adbd
start adbd
## Conexión ADB vía red al dispositivo desde equipo con Linux/Unix
adb connect <device-ip-address>:5555
```

Listar dispositivos conectados.

```shell
adb devices -l
```

Instalación de aplicación.

```shell
adb install app.apk
```

Obtener listado de aplicaciones instaladas.

```shell
adb shell pm list packages
```

Obtener listado de aplicaciones de terceros instaladas.

```sh
adb shell pm list packages -3 -U --show-versioncode | sort
```

Obtener nombre de aplicación en ejecución.

```sh
adb shell "dumpsys activity activities | grep VisibleActivityProcess"
```

Obtener listado de aplicaciones en ejecución.

```sh
adb shell top -m 10 -q
```

Iniciar una aplicación.

```sh
adb shell monkey -p <app-package-name> -c android.intent.category.LAUNCHER 1
```

Cerrar una aplicación.

```shell
adb shell am force-stop <app-package-name>
```

Desinstalación de una aplicación.

```shell
adb shell pm list packages
adb uninstall <app-package-name>
```

Iniciar shell interactiva.

```shell
adb shell
```

Ejecutar comando sin iniciar shell interactiva.

```shell
adb shell "<shell-command>"
```

Copiar archivo al dispositivo.

```shell
adb push <local-file> <destination-directory>
```

Copiar archivo desde el dispositivo.

```shell
adb pull <remote-file> <local-file>
```

Obtener información de una aplicación.

```shell
adb shell pm list packages
adb shell pm dump <app-package-name>
```

Obtener ruta del archivo APK de una aplicación.

```shell
adb shell pm list packages
adb shell pm path <app-package-name>
```

Realizar una captura de pantalla (screenshot).

```shell
# Guarda captura de pantalla en dispositivo
adb shell -p "<destination-directory>/screenshot.png"

# Guarda captura de pantalla en nuestro equipo
adb exec-out screencap -p > screenshot.png
```

Grabar la pantalla del dispositivo (video).

```shell
# General
adb shell screenrecord "<destination-directory>/screenrecord.mp4"

# Grabar la pantalla del dispositivo, copiar video a 
# nuestro equipo y borrarlo desde el dispositivo
adb shell screenrecord "/sdcard/screenrecord.mp4"
adb pull "/sdcard/screenrecord.mp4"
adb shell rm "/sdcard/screenrecord.mp4"
```

Obtener versión de Android.

```shell
adb shell getprop ro.build.version.release
```

Obtener versión de API level.

```shell
adb shell getprop ro.build.version.sdk
```

Obtener build number.

```sh
adb shell getprop ro.build.display.id
```

Obtener build model.

```sh
adb shell getprop ro.product.model
```

Reiniciar dispositivo.

```shell
adb reboot
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mobile.mrw0l05zyn.cl/android/android-debug-bridge-adb.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
