雄心勃勃地尝试在多个模拟器上运行Android应用程序 - 无法停止模拟器

时间:2017-03-12 14:52:57

标签: android bash android-emulator avd

所以我有一个想法,在我的笔记本电脑上使用一个avd测试我的Android应用程序,但有多个config.ini文件来改变avd本身的构成。

我创建了多个avds,并将config.ini文件复制到一个单独的文件夹中。

我还写了一个bash脚本

  • 循环访问我的config.ini文件
  • 将它们一次复制到avd文件夹(覆盖最后一个)
  • 尝试停止当前正在运行的模拟器 (这是我的大问题)
  • 启动模拟器
  • 对它进行测试(截取屏幕截图)
  • adb将屏幕截图拉入文件夹
  • 再次使用下一个ini文件

所以我的大部分工作都有效,但我不能为我的生活停止/启动/重启avd。

我尝试过多种SO问题,包括但不限于

  • adb emu kill
  • telnet kill
  • adb shell stop
  • pgrep模拟器-f(找到pid)然后kill -9来阻止它

似乎无法正常工作,无需锁定我的脚本或留下一些补余文件,这意味着我无法再次启动模拟器。

这看起来应该是如此简单和一种很好的方式在多个设备模拟器上运行我的应用程序,而不必让它们全部一次运行,这是我的笔记本电脑永远无法处理的东西(它可能会做3一次)

1 个答案:

答案 0 :(得分:2)

在(linux)shell上执行此操作:

adb shell su -c 'svc power shutdown' && echo "target has shut down"

或许你必须这样做"扎根",像这样: adb root && adb shell 'svc power shutdown' && echo "target has shut down"

它将关闭目标(正确显示"系统断电"仿真内部窗口),然后关闭仿真器窗口。没有陈旧的锁文件。

当然,在启动目标之后,您必须等待目标,直到目标正确启动并接受此类adb shell命令。

刚刚在模拟目标android API 19(kitkat)上测试过 - 效果很好。

我希望它能解决您远程编写多个目标设置的想法。

相关问题