Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Ruby编写Android仿真器Shell脚本_Android_Ruby - Fatal编程技术网

用Ruby编写Android仿真器Shell脚本

用Ruby编写Android仿真器Shell脚本,android,ruby,Android,Ruby,我们正在开发一个ruby脚本,它执行一系列shell命令来启动模拟器并运行一些葫芦测试 PID = fork do Signal.trap('HUP') { puts 'PROCESS ENDED'; exit } exec 'emulator -avd TestDevice1' end fork do sleep(55) exec 'adb shell input keyevent 82' end fork do sleep(60) exec

我们正在开发一个ruby脚本,它执行一系列shell命令来启动模拟器并运行一些葫芦测试

PID = fork do
    Signal.trap('HUP') { puts 'PROCESS ENDED'; exit }
    exec 'emulator -avd TestDevice1'
end

fork do
    sleep(55)
    exec 'adb shell input keyevent 82'
end

fork do
    sleep(60)
    exec 'calabash-android run ~/MyApp/MyApp.apk'
    Process.Kill('HUP', PID)
end

我们目前正在使用sleep命令,以便在仿真器完全就绪之前不会运行葫芦测试。这并不理想。是否有Android命令来检查设备是否准备就绪?我的意思是Android已经启动,锁屏已经显示。

我发现检测仿真器是否准备好使用,以及Calabash启动安装过程的最可靠的方法是检测
bootanim
何时停止

您可以在终端中使用ADB检查仿真器是否已手动完成引导:

adb shell getprop init.svc.bootanim

作为葫芦测试套件的一部分,我在Rake命令中提供了以下内容:

booting = ''

while booting != 'stopped'
  booting = `adb shell getprop init.svc.bootanim`.strip
  puts 'Waiting for emulator to boot'
  sleep 2
end

希望它对你有用

adb设备为您提供已连接设备的列表。当状态从“脱机”变为“设备”时,在readyadb devices命令正确到一定程度之前,设备不应可见。然而,“设备”状态在android启动屏幕仍处于打开状态时可见(在锁定屏幕出现之前)。如果您知道某个进程在锁定屏幕可见时启动,您可以使用adb shell ps | grep