繁体   English   中英

在Eclipse中,有什么办法可以同时在多个模拟器中启动应用程序?

[英]In Eclipse, any way to start application in more than one emulator at the same time?

在测试Android布局时,我一直在为Eclipse(带有ADT)构建三个不同的仿真器,因此我必须运行3次,然后选择每个。 是否有任何配置或插件可以让我按一次Run并在所有三个应用程序中启动该应用程序?

我希望我有一台足以同时运行3个仿真器的强大机器! :)

我怀疑Android开发工具能否为您做到这一点……您可能最能得到的就是编写一些脚本。 “ adb设备”将为您提供仿真器实例的列表,然后您只需要迭代在每个实例上运行以下两个命令的列表:

adb -s <序列号>安装app.apk

adb -s <序列号> shell启动-a android.intent.action.MAIN -n org.example.app/org.example.app.MainActivity

我终于做到了。 我在Mac环境中,因此我使用Applescript简化了一些变量的设置,但这可以直接从终端实现。

set apkref to "install -r /path/to/your/app.apk"
set appref to "shell am start -a android.intent.action.MAIN -n
com.example.app/com.example.app.MainActivity"
set sourceref to "/path/to/android/tools/"

set devices to do shell script sourceref & "adb devices |  grep \"[device]$\" | 
sed  's/.device/\\ /' | sed  's/^/\\adb -s /' | sed  's@$@\\" & apkref &
" \\&" & "@' | sed  's@^@\\" & sourceref & "@' 
| sed -E -e :a -e '$!N; s/\\n/ /g; ta'"
do shell script devices

set devices to do shell script sourceref & "adb devices |  grep \"[device]$\" | 
sed  's/.device/\\ /' | sed  's/^/\\adb -s /' | sed  's@$@\\" & appref & 
" \\&" & "@' | sed  's@^@\\" & sourceref & "@' 
| sed -E -e :a -e '$!N; s/\\n/ /g; ta'" 
do shell script devices

如您所见,我正在运行一些shell命令。 实现sed的特定连接是很痛苦的,但是却是一个很好的学习经验。

第一个Shell脚本会将apk安装在通过adb设备找到的所有设备中。 如果应用程序已经存在,则由于-r标志,adb会重新安装它。 我将命令与&串联在一起,因此每个命令都在后台运行,并同时安装和运行。 以前,我尝试将命令与&&串联,因此每个命令都等待其轮换,结果处理起来要慢得多。

第二个Shell脚本将在所有设备上运行该应用程序。

我敢肯定,可以由对sed有更多了解的人来简化此操作,但这对我很有用。

受到这种小经验的启发,我继续创建Automator应用程序来做到这一点,并在每台设备上运行adb logcat(因此,当我从一个logcat中按ctrl + c时,它将启动下一个logcat)。

我尽力创建服务来运行此Automator应用程序,但是Mac OS X中的Eclipse不支持服务。 解决方法是将应用程序作为外部工具运行。

为了增添风味,我在Automator应用程序中添加了Growl通知,以告诉我何时安装和运行adb应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM