如果连接了多个模拟器/设备,是不是可以安装 APK 文件 [重复]

Posted

技术标签:

【中文标题】如果连接了多个模拟器/设备,是不是可以安装 APK 文件 [重复]【英文标题】:Is it possible to install APK file if more than one emulators/devices are connected [duplicate]如果连接了多个模拟器/设备,是否可以安装 APK 文件 [重复] 【发布时间】:2011-11-03 09:55:04 【问题描述】:

我知道如何通过命令提示符将 apk 文件安装到模拟器中。 但我想知道是否可以通过提供任何特定名称将相同的 apk 文件安装到多个模拟器中? 实际上我必须在许多设备中测试一个 apk 文件。为此,我已经启动了许多设备。我知道如何安装它。如果所有设备都打开,那么它将无法安装。那么是否有任何替代方法可以通过提供任何特定的设备模拟器 ID 或任何名称来安装该 apk 文件? 如果有任何想法,请帮助我。 . . 谢谢。

【问题讨论】:

【参考方案1】:

是的,您可以在特定设备上安装 apk。

在命令中输入:

adb devices
// list of devices and its unique ID...

然后输入:

adb -s "<deviceIDfromlist>" install "<path-to-apk>"

【讨论】:

设备ID是指那个数字??在设备上显示为 5554 或 5556... 就像??? 是的,执行 adb devices 后得到的数字 谢谢。我得到了它。但是,“deviceIDfromlist”是列为 5554 或 5556 或类似的设备号吗?或任何不同的数字?? @djaqeel:那时我是安卓新手。现在我对这一切都了如指掌。 如果您需要知道哪个设备可以使用adb devices -l,它将为您提供有关每个设备的更多信息,如下所示:c1cd3890098c08f0 device usb:337641472X product:rubenswifixx model:SM_T360 device:rubenswifi transport_id:5 0123456789ABCDEF device usb:336592896X product:HR935 model:HR935 device:HR935 transport_id:3【参考方案2】:

第一步:获取所有连接设备的设备ID

adb devices

第 2 步:安装到您要安装的特定设备

adb -s deviceId install path+apk

例子:

第 1 步:

C:\android\android-sdks\platform-tools>adb devices

附加设备列表 emulator-5554 设备 014FD87107021017 设备

第 2 步:

C:\Android\android-sdks\platform-tools>adb -s 014FD87107021017 install C:\Users\
user\Documents\appname.apk

【讨论】:

我们应该使用一些流水线或脚本来顺序执行所有命令 对于 Windows,这是一个快速的 1 行: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【参考方案3】:

使用以下脚本在多个设备/模拟器上安装 apk。

    for SERIAL in $(adb devices | grep -v List | cut -f 1);
    do adb -s $SERIAL install -r /path/to/product.apk;
    done

如果您不重新安装 apk,请删除 -r。您还可以将“install -r /path/to/product.apk”替换为其他 adb 命令,例如在一台设备上工作。

它适用于我的真实设备,但我相信它也适用于模拟器。

【讨论】:

【参考方案4】:

可以在所有连接的设备上同时发出安装命令。

关键是在单独的进程 (&) 中启动 adb

我想出了以下脚本来同时在我所有连接的设备上启动安装,最后在每个设备上启动已安装的应用程序:

#!/bin/sh

function install_job  

    adb -s $x[0] install -r PATH_TO_YOUR_APK
    adb -s $x[0] shell am start -n "com.example.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER




#iterate over devices IP-addresses or serial numbers and start a job 

while read LINE
do
    eval x=($LINE)
    install_job $x[0] > /dev/null 2>&1 &
done <<< "`adb devices |  cut -sf 1`"

echo "WATING FOR INSTALLATION PROCESSES TO COMPLETE"
wait

echo "DONE INSTALLING"

注意 1: STDOUT 和 STDERR 被抑制。您不会看到任何“adb install”操作结果。如果你真的需要的话,我想这可能会得到改善

注意 2:您还可以通过提供 args 而不是硬编码的路径和活动名称来改进脚本。

这样你:

    不必在每台设备上手动执行安装 不必等待一次安装完成即可执行另一次安装(并行启动 adb 任务)

【讨论】:

感谢您的回答。但是 hotveryspicy 适合我的要求。我还更新了我的问题,以便其他人对我所问的问题没有错误的线索。真的谢谢你的回答。我为您的回答 +1,因为它也以另一种方式提供帮助。 感谢反馈,我更正了答案 如果有人想一次性安装 apk 文件,您的答案不正确...【参考方案5】:

是的,您可以在多个模拟器中安装您的 apk 文件,因为您必须在命令提示符中提供名称,这里是指导链接

http://developer.android.com/guide/developing/tools/emulator.html

【讨论】:

该链接现在无法访问。【参考方案6】:

您可以使用 USB 调试一次在多个设备上安装。

在 Eclipse 中 运行--> 运行配置--> 选择您的项目(左侧)--> 目标--> 在所有兼容设备上启动。

所选项目将安装在所有连接的设备上

【讨论】:

以上是关于如果连接了多个模拟器/设备,是不是可以安装 APK 文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

adb常用指令

Flutter:在连接的设备上运行或构建到 apk 时未加载 Json 文件

颤动的 Image.network 无法在发布 apk 上运行

adb的使用以及常见问题

macbook ipa文件怎么安装

Android之adb命令