web-dev-qa-db-ja.com

複数のエミュレーター/デバイスが接続されている場合、APKファイルをインストールすることは可能ですか?

コマンドプロンプトなどによって、apkファイルをエミュレーターにインストールする方法を知っています。しかし、特定の名前を付けることで、同じapkファイルを複数のエミュレータにインストールすることは可能ですか?実際、1つのapkファイルを多くのデバイスでテストする必要があります。そのために多くのデバイスを起動しました。私はそれをインストールする方法を知っています。すべてのデバイスが開いている場合、インストールされません。特定のデバイスエミュレーターIDまたは名前を指定して、そのapkファイルをインストールする代替手段はありますか?何かアイデアがあれば私を助けてください。 。 。ありがとう。

85
iDroid Explorer

はい、特定のデバイスにapkをインストールできます。

コマンドで、次を入力します。

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

次に入力:

adb -s "<deviceIDfromlist>" install "<path-to-apk>"
233
Azhar Shaikh

ステップ1:デバイスを取得し、デバイスに接続されているすべてのデバイスを識別します

adbデバイス

ステップ2:特定のデバイスへのインストールypuがインストールしたい

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

9
Vinayak

接続されているすべてのデバイスで、インストールコマンド同時を発行できます。

重要なのは、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:ハードコーディングされたパス名とアクティビティ名の代わりに引数を指定することで、スクリプトを改善することもできます。

そうすれば:

  1. 各デバイスで手動でインストールを実行する必要はありません
  2. 別のインストールを実行するために、1つのインストールが完了するのを待つ必要はありません(adbタスクは並行して起動されます)
6
Drew

次のスクリプトを使用して、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コマンドに置き換えることができます。

実際のデバイスでは動作しますが、エミュレータでも動作するはずです。

5
mlchen850622

はい。コマンドで名前を指定する必要があるため、複数のエミュレータにapkファイルをインストールできます。

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

2
Pratik

USBデバッグを使用して、一度に複数のデバイスにインストールできます。

Eclipse Runで-> Run Configurations->プロジェクトを選択します(左側)-> Target-> Launch on all compatible devices.

選択したプロジェクトは、接続されているすべてのデバイスにインストールされます

0
Vinay