[英]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.