$ 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

当前回答

Adb -d shell(或Adb -e shell)。

如果您懒得输入完整的ID,这个命令在大多数情况下都有帮助。

从http://developer.android.com/tools/help/adb.html # commandsummary:

-d -将adb命令直接到唯一连接的USB设备。当连接多个USB设备时返回错误。 -e -将adb命令直接指向唯一正在运行的模拟器。当多个模拟器正在运行时返回一个错误。

其他回答

下面是我为自己编写的shell脚本:

#! /bin/sh

for device in `adb devices | awk '{print $1}'`; do
  if [ ! "$device" = "" ] && [ ! "$device" = "List" ]
  then
    echo " "
    echo "adb -s $device $@"
    echo "------------------------------------------------------"
    adb -s $device $@
  fi
done

在你的仿真器中安装apk:

首先获取设备列表:

-> adb devices
List of devices attached
25sdfsfb3801745eg        device
emulator-0954   device

然后在模拟器上使用-s标志安装apk:

-> adb -s "25sdfsfb3801745eg" install "C:\Users\joel.joel\Downloads\release.apk"
Performing Streamed Install
Success

附注:这里的顺序很重要,所以-s <id>必须在安装命令之前,否则它将不起作用。

希望这能帮助到一些人!

对于Windows,这里有一个简单的例子,告诉你如何在多个设备上安装一个文件

FOR /F "skip=1"  %x IN ('adb devices') DO start adb -s %x install -r myandroidapp.apk

如果您计划在批处理文件中包含此文件,请将%x替换为%%x,如下所示

FOR /F "skip=1"  %%x IN ('adb devices') DO start adb -s %%x install -r myandroidapp.apk

在看到“不止一个设备”错误后,我发现了这个问题,2个离线电话显示:

C:\Program Files (x86)\Android\android-sdk\android-tools>adb devices
List of devices attached
SH436WM01785    offline
SH436WM01785    offline
SH436WM01785    sideload

如果您只连接了一台设备,请执行以下命令清除离线连接:

adb kill-server
adb devices

另一种方法是将环境变量ANDROID_SERIAL设置为相关的串行,这里假设你使用的是Windows:

set ANDROID_SERIAL=7f1c864e
echo %ANDROID_SERIAL%
"7f1c864e"

然后你可以使用adb.exe shell没有任何问题。