これについてしばらくSOを検索しましたが、決定的な答えが見つかりません。
最近、7 つの異なる Android デバイスを搭載した開発マシン用の 7 ポート USB ハブを購入しました。
これは主にすべての充電を維持するために行われましたが、ハブを介してデバイスを認識し、それらすべてに一度に展開するように Maven または DDMS を構成できるかどうかも調べようとしていますか?
Android SDK の現在のバージョンでは、接続されている複数のデバイスに一度に apk をインストールすることはサポートされていません。これはハードな制限であるため、現時点での唯一の回避策は、接続されているデバイスを繰り返し、それぞれに対してインストール コマンドを発行することです。
android-maven-plugin documentationを見ると、 pom.xml で指定できる android:deploy ゴールに興味深いパラメーターがあることがわかります。
デバイス:
接続するデバイスをシリアル番号で指定します。特別な値 "usb" と "emulator" も有効で、それぞれ唯一の USB 接続デバイスまたは唯一の実行中のエミュレーターを選択します。
- タイプ: java.lang.String
- 必須: いいえ
- 式: ${android.device}
まあ、ドキュメントは、接続されている唯一のデバイスに apk をインストールすると主張しています。私は自分でテストしましたが、複数のデバイスが接続されている場合にも機能します。
サンプル pom.xml:
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<sdk>
<platform>13</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
<!-- Install apk to multiple attached devices -->
<device>usb</device>
</configuration>
</plugin>
実行によるサンプルログmvn android:deploy
:
[INFO] Waiting for initial device list from the Android Debug Bridge
[INFO] Found 2 devices connected with the Android Debug Bridge
[INFO] android.device parameter set to usb
[INFO] Device 0123456789abcd_samsung_GT-I9100 found.
[INFO] Successfully uninstalled com.company.app from 0123456789abcd_samsung_GT-I9100
[INFO] Device 0123456789efg_HTC_HTCDesire found.
[INFO] Successfully uninstalled com.company.app from 0123456789efg_HTC_HTCDesire
[INFO] Found 2 devices connected with the Android Debug Bridge
[INFO] android.device parameter set to usb
[INFO] Device 0123456789abcd_samsung_GT-I9100 found.
[INFO] Successfully installed C:\workspace\my-app\target\app-1.0.0-SNAPSHOT.apk to 0123456789abcd_samsung_GT-I9100
[INFO] Device 0123456789efg_HTC_HTCDesire found.
[INFO] Successfully installed C:\workspace\my-app\target\app-1.0.0-SNAPSHOT.apk to 0123456789efg_HTC_HTCDesire
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
android-maven-plugin がどのように実装するかを知りたい場合は、こちらのソース コードを確認してください。
yorkow が正しく言及しているように、Android Maven プラグインは複数の接続されたデバイスとエミュレーターをサポートしています。
実際には、接続されたすべてのデバイスとエミュレーター (パラメーターなし)、すべての接続されたデバイス (USB に設定されたデバイス パラメーター)、すべてのエミュレーター (エミュレーターに設定されたデバイス パラメーター)、または特定のデバイス (デバイスのシリアル番号に設定されたデバイス パラメーター) のいずれかに対して実行されます。デバイス)。
プラグインを使用するには、 Android Maven プラグインの Web サイトと、Maven: The Complete Reference という本の Android 開発に関する章を参照することをお勧めします。
留意すべき主な点は、このパラメータとマルチ デバイス サポートがすべてのデバイス インタラクションの目標(デプロイ、アンデプロイ、再デプロイ、実行、計測、プル、プッシュ) に適用されることです。たとえば、多数のデバイスですべてのテストを実行したり、接続されているすべてのデバイスにもファイルをプッシュします。
また、オペレーティング システムによっては、USB 製造元 ID を udev ルールまたはその他の設定に追加する必要があります。詳しくは開発サイトをご覧ください。
試す
adb devices
最初に Android Maven Plugin ゴールを使用して、検出できるものを確認します
mvn android:devices
PS: 私はプラグインのコア コミッターであり、リンクされた書籍コンテンツの著者です..