2015-02-05 50 views
0

我正在運行一個啓動avd設備的jenkins工作,並使用calabash-android對它進行測試。如何判斷avd何時完全啓動?

emulator -avd phone 

我怎麼能知道什麼時候該設備完全啓動,讓我知道我可以開始測試沒有得到設備連接出現錯誤?

我試圖

adb wait-for-device 

但是這不會起作用,因爲根據亞行docs

「請注意,這個命令不會使亞行要等到整個系統完全引導。出於這個原因,你不應該把它加在需要完全引導系統的其他命令上。「

現在我有一個困難的睡眠,什麼會是一個更好的方式來編寫腳本?

謝謝。

回答

0

我認爲你正在通過adb啓動你的測試。如果是這樣,adb支持等待設備阻塞,直到設備可用(在線)。

adb wait-for-device 
0

好吧,算了一下。我一直在尋找的命令是

adb shell getprop sys.boot_completed 

使用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 & 
+0

您也可以有時不得不等待「android.process.acore」過程完成啓動,然後才能安裝任何的APK,否則它只會。 Jenkins的Android模擬器插件應該在下一個版本中具有此功能。 – 2015-02-09 23:52:00

相關問題