如何判断avd何时完全启动?

时间:2015-02-05 17:01:04

标签: android bash jenkins avd calabash-android

我正在运行一个启动avd设备的jenkins工作,并使用calabash-android对它进行测试。

emulator -avd phone

如何判断此设备何时完全启动,以便我知道可以在不收到设备连接错误的情况下启动测试?

我试过

adb wait-for-device 

但是根据adb docs

,这不会奏效
  

"请注意,此命令不会导致adb等待整个系统完全启动。因此,您不应将其添加到需要完全启动系统的其他命令。"

现在我有一个艰难的睡眠,什么是更好的脚本编写方式?

谢谢。

2 个答案:

答案 0 :(得分:0)

我认为您是通过adb启动测试的。如果是这样,adb支持等待设备阻止,直到设备可用(在线)。

adb wait-for-device

答案 1 :(得分:0)

好的,想通了。我正在寻找的命令是

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 &