$ 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 --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
当前回答
对于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
其他回答
当有多个设备连接时,这个要点将为你显示菜单做大部分工作:
$ adb $(android-select-device) shell
1) 02783201431feeee device 3) emulator-5554
2) 3832380FA5F30000 device 4) emulator-5556
Select the device to use, <Q> to quit:
为了避免输入,您可以创建一个别名,其中包括此处解释的设备选择。
下面是我为自己编写的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
为了方便起见,我们可以创建运行配置,设置ANDROID_SERIAL:
adb_wifi.bat可能看起来很像(只有位置参数%1%和“$1”可能不同):
adb tcpip 5555
adb connect %1%:5555
改进之处在于,adb将接收当前的ANDROID_SERIAL。 在shell脚本也ANDROID_SERIAL=xyz adb shell应该工作。
这种说法不一定是错误的:
-s SERIAL use device with given serial (overrides $ANDROID_SERIAL)
但是也可以在运行adb命令之前更改ANDROID_SERIAL。
我们甚至可以设置eg。ANDROID_SERIAL=192.168.2.60:5555定义adb的目标IP。 这也允许运行adb shell,命令被作为“脚本参数”传递。
在你的仿真器中安装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>必须在安装命令之前,否则它将不起作用。
希望这能帮助到一些人!
在任何特定设备上运行shell的最佳方式是使用:
adb -s << emulator UDID >> shell
For Example:
adb -s emulator-5554 shell