我正在运行一个jenkins作业,该作业启动一个avd设备,并使用calabash android对其运行测试。
emulator -avd phone
如何判断此设备何时完全启动,以便在不出现设备连接错误的情况下启动测试?
我试过
adb wait-for-device
但这不会起作用,因为根据adb文档
请注意,这个命令不会导致adb等待整个系统完全启动。因此,您不应该将它准备到其他需要完全启动系统的命令。
现在我睡得很沉,有什么更好的方法来编写这个脚本呢?
谢谢。
我想您是通过adb启动测试的。如果是这样,adb支持等待设备阻止,直到设备可用(在线)。
adb wait-for-device
好吧,想通了。我要找的是
adb shell getprop sys.boot_completed
与jenkins一起使用avd工具的完整脚本如下所示(注意:输出都被注入到一个文本文件中,这样它就不会占用脚本,可能有更好的方法来处理这部分)
启动sim
$ANDROID_HOME/tools/emulator -avd phone -gpu on -memory 2500 1>~/test.txt 2>&1 &
等待sim完成启动
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
解锁sim
$ANDROID_HOME/platform-tools/adb shell input keyevent 82 1>~/test.txt 2>&1 &