如何将一个apk通过adb安装到多个已连接的设备?

9 浏览
0 Comments

如何将一个apk通过adb安装到多个已连接的设备?

我有7台设备连接到我的开发机。

通常我会使用adb install 命令,只能将应用安装到一台设备上。

现在我想要将我的apk文件安装到我连接的7台设备上。我该如何在一条命令中完成这个操作?我希望可以运行一个脚本来实现。

0
0 Comments

问题的原因是使用adb命令将apk安装到多个连接的设备时出现错误。解决方法是使用适当的命令来执行此操作,其中包括使用xargs和adb命令。

以下是解决方法的详细步骤:

1. 使用adb devices命令列出连接的设备。

2. 使用tail -n +2命令从设备列表中移除第一行(标题行)。

3. 使用cut -sf 1命令获取设备列表中的第一列(设备ID)。

4. 使用xargs -iX adb -s X install -r *.apk命令将apk安装到每个设备上。

另外,如果正在使用Maven,则可以更简单地使用mvn android:deploy命令来设置。

然而,某些用户报告了一个错误消息,xargs: adb: terminated by signal 13,这可能是由于设备连接的问题或其他adb命令错误引起的。

总结上述内容,以下是解决问题的步骤:

1. 使用adb devices命令列出连接的设备。

2. 使用tail -n +2命令从设备列表中移除第一行(标题行)。

3. 使用cut -sf 1命令获取设备列表中的第一列(设备ID)。

4. 使用xargs -iX adb -s X install -r *.apk命令将apk安装到每个设备上。

5. 如果使用Maven,可以使用mvn android:deploy命令来设置。

希望以上解决方法对您有所帮助。

0
0 Comments

问题的原因是需要通过adb将apk文件安装到多个连接的设备上。为了解决这个问题,可以使用一个shell脚本来完成任务。该脚本会安装多个apk文件和任何mp4文件到连接的设备上。

脚本的具体内容如下:

echo "Installatron"
for SERIAL in $(adb devices | tail -n +2 | cut -sf 1);
do 
  for APKLIST in $(ls *.apk);
  do
  echo "Installatroning $APKLIST on $SERIAL"
  adb -s $SERIAL install $APKLIST
  done
  for MP4LIST in $(ls *.mp4);
  do
  echo "Installatroning $MP4LIST to $SERIAL"
  adb -s $SERIAL push $MP4LIST sdcard/
  done
done
echo "Installatron has left the building"

通过运行这个脚本,可以将当前目录下的所有apk文件安装到连接的设备上,并将所有mp4文件推送到设备的sdcard目录下。

感谢其他回答帮助我解决了这个问题。

0
0 Comments

如何通过ADB将APK安装到多个已连接的设备?

您可以使用adb devices获取已连接设备的列表,然后对每个设备运行adb -s DEVICE_SERIAL_NUM install...

像这样(bash):

adb devices | tail -n +3 | cut -sf 1 -d " " | xargs -iX adb -s X install ...

评论中建议较新版本使用以下代码:

adb devices | tail -n +2 | cut -sf 1 | xargs -iX adb -s X install ...

对于Mac OSX(未在Linux上进行测试):

adb devices | tail -n +2 | cut -sf 1 | xargs -I {} adb -s {} install ...

谢谢!不幸的是,我无法运行脚本。我不是shell脚本的专家。我收到错误:xargs: illegal option -- i usage: xargs [-0opt] [-E eofstr] [-I replstr [-R replacements]] [-J replstr] [-L number] [-n number [-x]] [-P maxprocs] [-s size] [utility [argument ...]]

尝试将-iX替换为-I X

你是否将...替换为你的APK名称?尝试将最后一个adb调用全部替换为echo X,以确保它输出您期望的值。

adb devices | tail -n +3 | cut -sf 1 -d " " | xargs -I X echo X -s X install SONR没有输出任何内容

adb devices呢?adb是否能够看到您的设备?

是否可能在同一个单行命令中在adb install之前回显设备序列号?

cut -sf 1 -d " "有问题,如果我运行./adb devices | tail -n +2 | cut -sf 1 -d " "我得不到任何东西。如果我运行./adb devices | tail -n +2,我得到4个已连接的设备,没有标题。

删除-d " ",因为(至少在我的adb输出中)分隔符是制表符,而不是空格。

使用脚本连接到多个设备,侦听TCP / IP端口是否可能?

这个方法可行,但是您必须在发出另一个adb install命令之前等待每个adb install命令完成。请参阅我的答案以获取更好的解决方案,尽管有点冗长。

在Linux上也适用。

0