3. 管理多个设备连接
任务说明
当电脑通过USB或无线方式同时连接多台Android设备时,adb命令默认无法确定操作哪一台设备。本案例将演示如何查看已连接设备列表,并使用adb -s参数将命令定向到指定设备执行,避免操作冲突。
环境准备
- 已安装ADB工具(Android SDK Platform-Tools),并已加入系统PATH
- 至少两台Android设备已开启USB调试,并通过USB线连接到电脑
- 在终端执行
adb devices确认设备均能被识别
核心命令与代码
以下命令序列演示了多设备管理的关键操作。在Windows CMD、PowerShell或macOS/Linux终端中均可直接执行。
# 1. 查看当前连接的所有设备及其序列号
adb devices -l
# 2. 获取设备序列号列表(用于脚本自动化)
adb devices | grep "device$" | awk '{print $1}'
# 3. 使用 -s 参数向指定设备发送命令(以序列号 emulator-5554 为例)
adb -s emulator-5554 shell getprop ro.product.model
adb -s emulator-5554 install app.apk
# 4. 使用 -s 参数向另一台设备执行不同命令
adb -s 0123456789ABCDEF shell getprop ro.product.model
# 5. 多设备同时执行同一命令(通过循环)
for device in $(adb devices | grep "device$" | awk '{print $1}'); do
echo "=== 设备: $device ==="
adb -s $device shell getprop ro.build.version.release
done
关键说明
adb devices输出中,第一列为设备序列号(Serial Number),第二列为状态。device表示正常连接,offline表示离线,unauthorized表示未授权(需在设备上确认调试授权)。-s参数必须紧跟设备序列号,且位于其他adb子命令之前。序列号可通过adb devices获取,每台设备唯一。- 若不使用
-s指定设备,adb会报错提示“more than one device/emulator”,此时命令不会执行。 - 无线连接的设备(通过
adb pair配对后)同样会出现在设备列表中,序列号为IP:端口格式,使用方法与USB设备完全一致。
验证方法
执行以下步骤确认操作成功:
- 运行
adb devices -l,确认输出中列出所有已连接设备,且状态均为device。 - 对每台设备分别执行
adb -s <序列号> shell getprop ro.product.model,观察输出结果是否与各设备实际型号一致。 - 故意省略
-s参数执行adb shell getprop ro.product.model,系统应提示多设备错误,证明-s参数的必要性。
通过条件:每台设备均能通过-s定向返回各自独立的型号信息,且不指定设备时命令被拒绝执行。