Respuesta rápida: Conecta un teléfono con depuración USB activada y confírmalo con adb devices, luego ejecuta adb install path/to/app.apk. Para actualizar sobre una instalación existente, usa adb install -r path/to/app.apk.
adb install path/to/app.apk
adb install -r path/to/app.apk
Pasos mínimos:
- Instalar Platform Tools de SDK y asegúrate de que
adbesté en tu PATH. - En el teléfono, activa Opciones de desarrollador y depuración USB.
- Conecta el USB, desbloquea el teléfono y acepta Permitir depuración USB.
- Ejecuta
adb devicesy confirma que aparece el serialdevice, nounauthorized. - Ejecuta
adb install path/to/app.apk.
Si publicas builds de Android desde Capacitor o Ionic, este flujo es cómo instalar un APK nuevo en el hardware sin esperar a Play Console. Para el despliegue en la tienda después de probar, consulta despliegues escalonados en Google Play.
Tabla de contenidos
- Instala Platform Tools y verifica adb
- Flujo básico de adb install apk
- Flags de adb install
- Varios dispositivos con -s
- Instalar APK por Wi-Fi
- APKs divididas con install-multiple
- Iniciar la app tras la instalación
- Desinstalar con adb
- Ejemplo de Capacitor
- Solución de errores de instalación
Instalar Platform Tools y verificar adb
No necesitas la descarga completa de Android Studio para adb install. Necesitas Herramientas de la plataforma de Google.
- Descarga Platform Tools para tu sistema operativo.
- Descomprime en una carpeta fija.
- Añade esa carpeta a tu PATH.
Verificación:
adb version
En el dispositivo, activa la depuración USB como se describe en la guía de opciones de desarrollador de Android. Algunas skins de OEM (Xiaomi MIUI es un caso común) también requieren Instalar vía USB o similar en la configuración de desarrollador.
Usa un cable de datos. Los cables solo de carga producen adb devices listas y perder tiempo.
Flujo básico de adb install apk
Comprueba siempre la conexión antes de instalar.
adb devices
Salida esperada correcta:
List of devices attached
XXXXXXXX device
Instalación:
adb install path/to/your-app.apk
Cita las rutas que contienen espacios. Desde el directorio del APK:
adb install app-debug.apk
Una ejecución exitosa suele imprimir Realizando instalación en streaming y Éxito. Internamente, adb install envía el archivo a /data/local/tmp, ejecuta pm install, y elimina el archivo temporal. Es más simple que el proceso manual adb push más una shell pm install para pruebas diarias.
Para configurar el entorno de Capacitor más allá de ADB, consulta configuración de Android para apps de Capacitor.
Flags de adb install
| Flag | Significado | Cuándo usarlo |
|---|---|---|
-r |
Reemplaza la app existente, conserva los datos cuando sea posible | Debug rebuilds, same package name |
-d |
Permitir downgrade solo en apps depurables | Revertir un build de debug sobre un build de debug más nuevo |
-g |
Conceder todos los permisos de runtime al instalar | QA más rápido cuando los permisos bloquean el lanzamiento |
-t |
Permitir APKs solo de prueba | Builds testOnly internos desde CI |
Combinaciones comunes:
adb install -r app-debug.apk
adb install -r -g app-debug.apk
adb install -r -d older-build.apk
adb install -r -t internal-test.apk
-r es el hábito por defecto para el desarrollo iterativo. Sin él, Android a menudo devuelve INSTALL_FAILED_ALREADY_EXISTS cuando el paquete ya está presente.
-d permite downgrades solo cuando el paquete instalado es depurable. No hace downgrade de un release no depurable de Play. Sin -d, un versionCode dispara INSTALL_FAILED_VERSION_DOWNGRADE.
-g omite el diálogo de permisos al instalar. No elimina la necesidad de probar los flujos de permisos en una instalación limpia.
-t es obligatorio cuando el manifiesto establece android:testOnly="true". Sin él, obtendrás INSTALL_FAILED_TEST_ONLY.
Las compilaciones de release deben firmarse de forma consistente. Si generas una nueva clave de subida, el Generador de keystore para Android huellas de documentos y salida PKCS#12. Firmar con una clave distinta a la de la app instalada produce INSTALL_FAILED_UPDATE_INCOMPATIBLE.
Varios dispositivos con -s
Cuando hay más de un dispositivo o emulador conectado, adb install puede fallar con más de un dispositivo/emulador. Lista de series:
adb devices
Dirígete a una serie específica con -s:
adb -s SERIAL install -r app-debug.apk
Reemplazar SERIAL con el valor de la primera columna de adb devices.
Instalar APK por Wi-Fi
Android 11 y posterior (depuración inalámbrica):
Coloca el teléfono y la computadora en la misma red Wi-Fi.
- En el teléfono: Ajustes → Opciones de desarrollador → Depuración inalámbrica → Emparejar dispositivo con código de code. Anota la IP de emparejamiento, el puerto y el code de seis dígitos.
- En la computadora, realiza el emparejamiento:
adb pair IP:PAIRING_PORT
Enter the pairing code when prompted.
- Conéctate al puerto de depuración mostrado en la pantalla de Depuración inalámbrica:
adb connect IP:DEBUG_PORT
adb devices
- Desconecta el USB si aparecen dispositivos tanto por USB como por Wi-Fi en
adb devices, o especifica la red Wi-Fi explícitamente:
adb -s IP:DEBUG_PORT install -r app-debug.apk
Android antiguo (USB primero):
adb tcpip 5555
adb connect PHONE_IP:5555
Desconecta el USB después de adb devices muestre el endpoint TCP. El firewall y el aislamiento de red pueden bloquear ADB por Wi-Fi en LAN corporativas.
APKs divididas con install-multiple
Los App Bundles de Play Store se descomprimen en un APK base más splits de configuración (densidad, ABI, idioma) y, a veces, módulos de funciones en tiempo de instalación. Instala el APK base y cada split que coincida con el dispositivo objetivo en un solo comando:
adb install-multiple -r base.apk split_config.xxhdpi.apk split_config.arm64_v8a.apk
Pasa solo los splits de la misma extracción de bundle que encajen con el dispositivo conectado. Un split faltante o incorrecto causa INSTALL_FAILED_INVALID_APK o instalaciones incompletas.
Para hacer sideload desde un .apks archivo, bundletool install-apks --apks=app.apks suele ser más sencillo que listar los archivos manualmente.
Eso es diferente de APKs divididas por ABI cuando Gradle compila APKs independientes por arquitectura (app-armeabi-v7a-debug.apk, app-arm64-v8a-debug.apk, etc.). Cada uno de esos archivos es una app completa. Elige el que coincida con la CPU del dispositivo y ejecuta adb install -r en ese único archivo. No pases todos los APKs de la carpeta de salida a install-multiple.
Iniciar la app tras la instalación
Actividad de launcher conocida (desde AndroidManifest.xml):
adb shell am start -n com.example.app/.MainActivity
Prueba rápida de humo cuando solo conoces el nombre del paquete:
adb shell monkey -p com.example.app -c android.intent.category.LAUNCHER 1
monkey dispara una intención de lanzamiento. No es una prueba de UI completa, pero confirma que la app se abre tras la instalación.
Ver logs:
adb logcat
Desinstalar con adb
Eliminar por nombre de paquete (no por ruta del APK):
adb uninstall com.example.app
Esto elimina la app y sus datos. Úsalo para pruebas de primer lanzamiento y antes de corregir un error de firma.
Para eliminar la app pero dejar los datos de usuario en el dispositivo:
adb uninstall -k com.example.app
-k puede hacer que la siguiente instalación reutilice preferencias o bases de datos antiguas, así que omítelo cuando necesites una instalación limpia real. Usa adb install -r cuando solo necesites un ciclo de actualización más rápido sobre una instalación existente.
Ejemplo de Capacitor
Ciclo típico de Capacitor:
npx cap sync android
Compila el APK de depuración y luego:
adb install -r android/app/build/outputs/apk/debug/app-debug.apk
Firma los APK de release con tu subir clave antes de subir a Play. Con Play App Signing, las descargas de la tienda usan el certificado de firma de la app, que puede diferir de tu certificado de subida. Solo puedes actualizar vía ADB si el certificado del APK coincide con la app instalada y se cumplen las reglas normales de actualización. Compara los certificados de firma antes de desinstalar. Si difieren, prueba con un APK de una pista de pruebas interna (firmado como el build de Play) en lugar de un archivo firmado localmente. Desinstalar el build de Play elimina los datos de la app.
Solución de errores de instalación
| Error o síntoma | Causa probable | Qué probar |
|---|---|---|
unauthorized en adb devices |
Prompt RSA no aceptado | Desbloquea el teléfono, aprueba el depuración USB, adb kill-server luego adb start-server |
no devices/emulators found |
Cable, driver o depuración desactivada | Cable nuevo, activar depuración USB, controlador USB de Google para Windows si es necesario |
INSTALL_FAILED_ALREADY_EXISTS |
Mismo paquete sin -r |
adb install -r app.apk o adb uninstall primero |
INSTALL_FAILED_UPDATE_INCOMPATIBLE |
Clave de firma diferente | Desinstalar la app anterior o instalar un build firmado con la misma clave |
INSTALL_FAILED_VERSION_DOWNGRADE |
versionCode más bajo en una app no depurable | Desinstalar, aumentar la versión o usar -d solo en paquetes depurables |
INSTALL_FAILED_INSUFFICIENT_STORAGE |
Espacio en disco insuficiente | Liberar espacio en el dispositivo, eliminar apps no usadas |
INSTALL_FAILED_TEST_ONLY |
APK testOnly | adb install -t app.apk solo para builds de prueba confiables |
INSTALL_FAILED_INVALID_APK |
Conjunto de splits corrupto o incorrecto | Recompila el APK y pasa todos los splits a install-multiple |
more than one device/emulator |
Varios dispositivos conectados | adb -s SERIAL install ... |
dispositivo no autorizado
adb devices muestra:
XXXXXXXX unauthorized
Corrige en el teléfono, no solo en la terminal:
- Vuelve a conectar el USB y desbloquea la pantalla.
- Toca Permitir en ¿Permitir depuración USB?
- Verificar Permitir siempre desde este equipo para tu máquina de desarrollo.
- Reinicia ADB:
adb kill-server
adb start-server
adb devices
no se encontraron dispositivos/emuladores
- Confirma que la depuración USB está activada (ver opciones de desarrollador).
- Prueba con otro puerto USB y cable.
- En Windows, instala el controlador USB de Google desde SDK Manager si falta el controlador OEM.
- Para emuladores, inicia el AVD antes de
adb install.
INSTALL_FAILED_UPDATE_INCOMPATIBLE
La app instalada fue firmada con un certificado diferente al del APK que estás instalando. Es común al mezclar debug y release, cuando Play App Signing usa una clave distinta a la del APK de subida, o tras una rotación de claves.
Primero, confirma que estás instalando un build firmado con el mismo certificado que la app en el dispositivo. Usa un APK de la pista de pruebas de Play cuando necesites coincidir con una instalación de producción.
Si debes reemplazar la instalación, desinstalar elimina los datos de la app. Haz una copia de seguridad de lo que necesites y luego:
adb uninstall com.example.app
adb install app.apk
INSTALL_FAILED_VERSION_DOWNGRADE
El APK versionCode es inferior a la versión instalada.
Solo para paquetes depurables, pruebas de rollback intencional:
adb install -r -d older.apk
En builds de release desde Play, desinstala primero o aumenta versionCode en lugar de usar -d.
INSTALL_FAILED_INSUFFICIENT_STORAGE
El dispositivo no puede asignar espacio para el paquete. Elimina apps o medios y reintenta. Los APK muy grandes en teléfonos de prueba con poca memoria suelen provocar esto.
INSTALL_FAILED_TEST_ONLY
El build está marcado solo para pruebas. Para tus propios artefactos de CI:
adb install -t -r app.apk
No lo uses -t para instalar APKs no confiables manualmente.
Para equipos de Capacitor que corrigen JavaScript, estilos y configuración sin esperar la revisión de la tienda, Capgo soporta actualizaciones en vivo firmadas, canales y reversión junto con las versiones nativas de la tienda.