通过Maven将多个部署到USB集线器上的Android设备

Mo *_*gas 5 android ddms maven

我在SO上搜索了一段时间,但找不到明确的答案.

我最近为我的开发机器购买了一个7端口USB集线器,上面有7个不同的Android设备.

这主要是为了让一切都充满电,但我也试图找出是否可以配置Maven甚至DDMS来识别设备并通过集线器立即部署到所有设备?

yor*_*rkw 4

当前版本的 Android SDK 不支持同时在多个连接的设备上安装 apk。这是硬限制,因此目前唯一的解决方法是迭代连接的设备并为每个设备发出安装命令。

如果您查看android-maven-plugin 文档,您会发现 android:deploy 目标中有一个有趣的参数,您可以在 pom.xml 中指定该参数:

设备:

按序列号指定要连接到的设备。特殊值“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>
Run Code Online (Sandbox Code Playgroud)

运行示例日志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] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

如果你想知道 android-maven-plugin 是如何实现的,请查看这里的源代码

  • 顺便提一句。我希望我已经更新了设备参数的帮助文本,使其更加清晰。应该会在下一个版本中发布。 (2认同)