$ adb --help
...
-s SERIAL use device with given serial (overrides $ANDROID_SERIAL)
...
$ adb devices List of devices attached emulator-5554 device 7f1c864e device
...
$ adb shell -s 7f1c864e error: more than one device and emulator
?
Use la -s
opción ANTES del comando para especificar el dispositivo, por ejemplo:
adb -s 7f1c864e shell
Consulte también http://developer.android.com/tools/help/adb.html#directingcommands
adb -s 192.168.56.101:5555 shell
adb -e shell
oadb emu <command>
. Que van a fallar si hay más de un emulador de ir y usted tendrá que recurrir a-s
-s
opción antesshell
. Es una experiencia muy mala de usuario que no se puede hacer esto al revés ...adb -d shell
(oadb -e shell
)Este comando lo ayudará en la mayoría de los casos, si es demasiado vago para escribir la identificación completa.
De http://developer.android.com/tools/help/adb.html#commandsummary :
fuente
-d
es para "dispositivo" y-e
para "emulador" . Y si ya descubriste esto, date una palmadita en la espalda. ;)Otra alternativa sería establecer la variable de entorno ANDROID_SERIAL en la serie correspondiente, suponiendo que esté utilizando Windows:
Entonces puede usar
adb.exe shell
sin ningún problema.fuente
set ANDROID_SERIAL=7f1c864e
, es decir. sin comillas.export ANDROID_SERIAL=7f1c864e
.Encontré esta pregunta después de ver el error 'más de un dispositivo', con 2 teléfonos sin conexión que muestran:
Si solo tiene un dispositivo conectado, ejecute los siguientes comandos para deshacerse de las conexiones sin conexión:
fuente
adb kill-server
soluciona el problema con los emuladores sin conexiónEsta esencia hará la mayor parte del trabajo mostrando un menú cuando hay varios dispositivos conectados:
Para evitar escribir, puede crear un alias que incluya la selección del dispositivo como se explica aquí .
fuente
El usuario
@janot
ya ha mencionado esto anteriormente, pero me llevó algo de tiempo filtrar la mejor solución.Hay dos casos de uso amplios:
1) 2 hardware están conectados, primero es el emulador y otro es un dispositivo.
Solución :
adb -e shell....whatever-command
para emulador yadb -d shell....whatever-command
para dispositivo.2) n un número de dispositivos están conectados (todos los emuladores o teléfonos / tabletas) a través de USB / ADB-WiFi:
Solución : Paso 1) ejecutar
adb devices
Esto le dará una lista de los dispositivos actualmente conectados (a través de USB o ADBoverWiFI)Paso 2) ahora ejecute
adb -s <device-id/IP-address> shell....whatever-command
sin importar cómo muchos dispositivos que tienesEjemplo
para borrar los datos de la aplicación en un dispositivo conectado en wifi ADB Ejecutaría:
adb -s 172.16.34.89:5555 shell pm clear com.package-id
para borrar los datos de la aplicación conectados en mi dispositivo USB conectado, ejecutaría:
adb -s 5210d21be2a5643d shell pm clear com.package-id
fuente
Para instalar un apk en uno de tus emuladores:
Primero obtenga la lista de dispositivos:
Luego instale el apk en su emulador con la
-s
bandera:¡Espero que esto ayude a alguien!
fuente
Ejecución de comandos adb en todos los dispositivos conectados
Crear un bash (adb +)
hecho usarlo con
comando adb + // +
fuente
Para Windows, aquí hay un ejemplo rápido de 1 línea de cómo instalar un archivo ... en múltiples dispositivos
Si planea incluir esto en un archivo por lotes, reemplace% x con %% x, como se muestra a continuación
fuente
Cree un Bash (tools.sh) para seleccionar una serie de dispositivos (o emulador):
Luego, en otra opción, puede usar
adb -s
(dispositivo de uso de opciones globales con un número de serie dado que anula $ ANDROID_SERIAL):Probé este código en la terminal de MacOS, pero creo que se puede usar en ventanas a través de la Terminal de Git Bash.
También recuerde configurar las variables ambientales y las rutas del SDK de Android en el
.bash_profile
archivo:fuente
fxMenu
yfxValidatonNumberMenu
son solo para referencia. Lo había comentado para evitar códigos de error. Puede ver una implementación completa en mi repositorio: github.com/equiman/hardhatmac/blob/master/tools.shLa mejor manera de ejecutar shell en cualquier dispositivo en particular es usar:
Funciona 100%
Por favor dale golpes
fuente
Aquí hay un script de shell que hice para mí:
fuente