我正在运行一个启动avd设备的jenkins工作,并使用calabash-android对它进行测试。
emulator -avd phone
如何判断此设备何时完全启动,以便我知道可以在不收到设备连接错误的情况下启动测试?
我试过
adb wait-for-device
但是根据adb docs
,这不会奏效"请注意,此命令不会导致adb等待整个系统完全启动。因此,您不应将其添加到需要完全启动系统的其他命令。"
现在我有一个艰难的睡眠,什么是更好的脚本编写方式?
谢谢。
答案 0 :(得分:0)
我认为您是通过adb启动测试的。如果是这样,adb支持等待设备阻止,直到设备可用(在线)。
adb wait-for-device
答案 1 :(得分:0)
好的,想通了。我正在寻找的命令是
adb shell getprop sys.boot_completed
使用带有jenkins的avd工具的完整脚本如下所示(注意:输出全部被输入到文本文件中以便它不会占用脚本,这可能是更好的方法处理这一部分)
$ANDROID_HOME/tools/emulator -avd phone -gpu on -memory 2500 1>~/test.txt 2>&1 &
A=$($ANDROID_HOME/platform-tools/adb shell getprop sys.boot_completed | tr -d '\r')
while [ "$A" != "1" ]; do
sleep 2
A=$($ANDROID_HOME/platform-tools/adb shell getprop sys.boot_completed | tr -d '\r')
done
$ANDROID_HOME/platform-tools/adb shell input keyevent 82 1>~/test.txt 2>&1 &