можно ли установить APK файл, если несколько эмуляторов/устройств [дубликат]


этот вопрос уже есть ответ здесь:

Я знаю, как установить файл APK на эмулятор с помощью командной строки и все такое. Но я хочу знать, можно ли установить тот же apk файл в несколько эмулятор, давая любое конкретное имя ? На самом деле мне нужно проверить один файл apk на многих устройствах. и для этого я запустил много устройств. Я знаю, как его установить. если все устройства открыты, то он не получит установить. Итак, есть ли альтернатива для установки этого файла apk, указав какой-либо конкретный идентификатор эмулятора устройства или любое имя ??? Пожалуйста, помогите мне, если есть какие-либо идеи для этого. . . Спасибо.

6 62

6 ответов:

Да, вы можете установить apk на определенном устройстве.

в команду, типа:

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

потом типа:

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

Шаг 1: получить идентификаторы устройств все устройства, подключенные к устройству

устройства adb

Шаг 2: Установите на определенное устройство ypu хотите установить

adb-s deviceId установить путь + apk

пример:

Шаг 1:

C:\Android\android-sdks\platform-tools > устройства adb Список подключенных устройств эмулятор-5554 устройства 014FD87107021017 устройство

шаг 2:

C:\Android\android-sdks\platform-tools>adb-s 014FD87107021017 установить C:\Users\ пользователь\документы\имя приложения.apk

можно выполнить команду install одновременно на всех подключенных устройствах.

ключ к запуску 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 вместо жестко закодированных имен путей и действий.

этак вы:

  1. не нужно вручную выполнять установку на каждом устройстве
  2. не нужно ждать завершения одной установки, чтобы выполнить другую (задачи adb запускаются параллельно)

используйте следующие сценарии для установки apk на нескольких устройствах / эмуляторах.

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

удалить-r, если вы не переустановите apk. Также вы можете заменить " install-r /path/to/product.apk " для других команд adb, таких как работа на одном устройстве.

Он работает для меня на реальных устройствах, но я считаю, что он также должен работать для эмуляторов.

да вы можете установить свой файл apk в нескольких эмуляторах, для этого вы должны дать имя в командной строке вот ссылка для руководства

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

вы можете установить на несколько устройств одновременно с помощью отладки USB.

В Eclipse Выполнить-- > выполнить конфигурации -- > выберите свой проект (слева) -->цель --> запуск на всех совместимых устройствах.

выбранный проект будет установлен на всех подключенных устройствах