$ 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
?
Используйте -s
параметр ДО команды, чтобы указать устройство, например:
adb -s 7f1c864e shell
Смотрите также http://developer.android.com/tools/help/adb.html#directingcommands
adb -s 192.168.56.101:5555 shell
adb -e shell
илиadb emu <command>
. Они потерпят неудачу, если будет запущено более одного эмулятора, и вам придется вернуться к-s
-s
опцию раньшеshell
. Это очень плохой пользовательский опыт, что вы не можете сделать это наоборот ...adb -d shell
(илиadb -e shell
).Эта команда поможет вам в большинстве случаев, если вам лень вводить полный идентификатор.
С http://developer.android.com/tools/help/adb.html#commandsummary :
источник
-d
для "устройства" и-e
для "эмулятора" . И если вы уже поняли это, похлопайте себя по спине. ;)Другой альтернативой может быть установка переменной среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:
Тогда вы можете использовать
adb.exe shell
без каких-либо проблем.источник
set ANDROID_SERIAL=7f1c864e
, т.е. без кавычек.export ANDROID_SERIAL=7f1c864e
.Я обнаружил этот вопрос после того, как увидел ошибку «более одного устройства», когда 2 автономных телефона показывали:
Если у вас подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:
источник
adb kill-server
исправляет проблему с автономными эмуляторамиЭта суть сделает большую часть работы для вас, показывая меню, когда подключено несколько устройств:
Чтобы не печатать, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь .
источник
Пользователь
@janot
уже упоминал об этом выше, но мне потребовалось некоторое время, чтобы отфильтровать лучшее решение.Существует два варианта использования:
1) подключено 2 устройства, первый - эмулятор, а другой - устройство.
Решение :
adb -e shell....whatever-command
для эмулятора иadb -d shell....whatever-command
для устройства.2) подключено n устройств (все эмуляторы или телефоны / планшеты) через USB / ADB-WiFi:
Решение : Шаг 1) запустите.
adb devices
Это даст вам список подключенных устройств (через USB или ADBoverWiFI).Шаг 2) теперь будет работать
adb -s <device-id/IP-address> shell....whatever-command
независимо от того, как много устройств у вас есть.Пример
для очистки данных приложения на устройстве, подключенном по Wi-Fi ADB, я бы выполнил:
adb -s 172.16.34.89:5555 shell pm clear com.package-id
чтобы очистить данные приложения, подключенного к USB-устройству, я должен выполнить:
adb -s 5210d21be2a5643d shell pm clear com.package-id
источник
Чтобы установить apk на один из ваших эмуляторов:
Сначала получите список устройств:
Затем установите APK на свой эмулятор с
-s
флагом:Надеюсь, это поможет кому-то!
источник
Запуск команд adb на всех подключенных устройствах
Создать bash (adb +)
сделал это с
команда adb + // +
источник
Для Windows приведен краткий пример того, как установить файл на нескольких устройствах.
Если вы планируете включить это в пакетный файл, замените% x на %% x, как показано ниже
источник
Создайте Bash (tools.sh) для выбора серийного номера на устройствах (или в эмуляторе):
Затем в другом варианте можно использовать
adb -s
(глобальный параметр -s использовать устройство с заданным серийным номером, который переопределяет $ ANDROID_SERIAL):Я тестировал этот код на терминале MacOS, но я думаю, что его можно использовать в Windows через терминал Git Bash.
Также не забудьте настроить переменные среды и пути Android SDK в
.bash_profile
файле:источник
fxMenu
иfxValidatonNumberMenu
только для справки. Я прокомментировал это, чтобы избежать кодов ошибок. Вы можете увидеть полную реализацию в моем хранилище: github.com/equiman/hardhatmac/blob/master/tools.shЛучший способ запустить оболочку на любом конкретном устройстве - использовать:
Работает 100%
Пожалуйста, возьмите это
источник
Вот сценарий оболочки, который я сделал для себя:
источник