0

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

emulator -avd phone

如何判断此设备何时完全启动,以便我知道我可以开始测试而不会出现设备连接错误?

我试过了

adb wait-for-device 

但这行不通,因为根据 adb docs

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

现在我睡得很香,有什么更好的方法来编写这个脚本?

谢谢你。

4

2 回答 2

0

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

adb shell getprop sys.boot_completed

将 avd 工具与 jenkins 一起使用的完整脚本如下所示(注意:输出全部被抽取到一个文本文件中,这样它就不会占用脚本,可能有更好的方法来处理这部分内容)

启动模拟

$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

解锁模拟

$ANDROID_HOME/platform-tools/adb shell input keyevent 82 1>~/test.txt 2>&1 &
于 2015-02-05T22:34:06.123 回答
0

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

adb wait-for-device
于 2015-02-05T17:23:11.863 回答