我正在编写一个需要使用adb命令的小型gradle插件。我的问题是installDebug
任务如何知道所有设备?默认情况下,它将安装在所有设备上。我找到了installTask
,但没有用于指定设备的-s
参数。
他们是如何在Android gradle plugin中做到这一点的?
附加问题:在Android Studio中,我可以选择一个特殊设备,但如何从gradle脚本中得知这一点?
我正在编写一个需要使用adb命令的小型gradle插件。我的问题是installDebug
任务如何知道所有设备?默认情况下,它将安装在所有设备上。我找到了installTask
,但没有用于指定设备的-s
参数。
他们是如何在Android gradle plugin中做到这一点的?
附加问题:在Android Studio中,我可以选择一个特殊设备,但如何从gradle脚本中得知这一点?
2条答案
按热度按时间qfe3c7zg1#
InstallTask
不存在于最新的源代码中。使用InstallVariantTask
代替它。正如您从其源代码中所看到的,它检查ANDROID_SERIAL
环境变量以选择特定设备,如果该变量不存在,则针对所有兼容设备运行安装任务(uninstall和connectedAndroidTest任务也是如此)。额外答案:这是不可能的AFAIK. Android Studio does not install/launch通过gradle安装应用程序。在
.idea/workspace.xml
文件中,您会发现ANDROID_EXTENDED_DEVICE_CHOOSER_SERIALS
属性,该属性会在部署APK后的某个时间点更新,但在gradle脚本运行期间此信息不可用。z9gpfhce2#
在最新版本的Android Studio中,
.idea/deploymentTargetDropDown.xml
将包含一个可能目标的列表、最近 * 选择 * 的目标以及选择该目标的 * 时间 *同一文件也存储在settings directory中
它看起来像是一个实现细节,对于任何关键使命都不值得依赖,但是一旦您做出选择,它就会被填充,这使得它对部署相关的脚本非常有用