关于android:如果连接了多个仿真器/设备,是否可以安装APK文件

Is it possible to install APK file if more than one emulators/devices are connected

本问题已经有最佳答案,请猛点这里访问。

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


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

在命令中,键入:

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

然后输入:

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


步骤1:获取设备Ids所有设备连接到设备

adb设备

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

adb -s deviceId安装路径+ apk

例:

步骤1:

C: Android android-sdks platform-tools> adb devices
附加设备列表
模拟器-5554设备
014FD87107021017设备

第2步:

C: Android android-sdks platform-tools> adb -s 014FD87107021017安装C: Users
用户文档 appname.apk


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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/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任务并行启动)

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

    1
    2
    3
        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命令,例如在单个设备上工作。

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


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

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


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

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

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