5

これについてしばらくSOを検索しましたが、決定的な答えが見つかりません。

最近、7 つの異なる Android デバイスを搭載した開発マシン用の 7 ポート USB ハブを購入しました。

これは主にすべての充電を維持するために行われましたが、ハブを介してデバイスを認識し、それらすべてに一度に展開するように Maven または DDMS を構成できるかどうかも調べようとしていますか?

4

2 に答える 2

4

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 がどのように実装するかを知りたい場合は、こちらのソース コードを確認してください。

于 2012-09-03T04:45:50.733 に答える
1

yorkow が正しく言及しているように、Android Maven プラグインは複数の接続されたデバイスとエミュレーターをサポートしています。

実際には、接続されたすべてのデバイスとエミュレーター (パラメーターなし)、すべての接続されたデバイス (USB に設定されたデバイス パラメーター)、すべてのエミュレーター (エミュレーターに設定されたデバイス パラメーター)、または特定のデバイス (デバイスのシリアル番号に設定されたデバイス パラメーター) のいずれかに対して実行されます。デバイス)。

プラグインを使用するには、 Android Maven プラグインの Web サイト、Maven: The Complete Reference という本の Android 開発に関する章を参照することをお勧めします。

留意すべき主な点は、このパラメータとマルチ デバイス サポートがすべてのデバイス インタラクションの目標(デプロイ、アンデプロイ、再デプロイ、実行、計測、プル、プッシュ) に適用されることです。たとえば、多数のデバイスですべてのテストを実行したり、接続されているすべてのデバイスにもファイルをプッシュします。

また、オペレーティング システムによっては、USB 製造元 ID を udev ルールまたはその他の設定に追加する必要があります。詳しくは開発サイトをご覧ください。

試す

adb devices 

最初に Android Maven Plugin ゴールを使用して、検出できるものを確認します

mvn android:devices

PS: 私はプラグインのコア コミッターであり、リンクされた書籍コンテンツの著者です..

于 2012-09-04T03:33:37.700 に答える