2012-07-03 56 views
2

我在寫一個調用adb來執行JUnit測試的python腳本。我已經使用'adb get-state'和'adb wait-for-device'來等待模擬器啓動並準備就緒,但由於某些原因,這兩種模式都會啓動得太早。經過這些函數返回,我當我開始運行我的測試中得到這個錯誤:獲取活動管理器的狀態

android.util.AndroidException: Can't connect to activity manager; is the system running? 

有沒有一種方法,我可以得到活動管理的現狀如何?如果我能夠調查那個應該足夠的狀態。

謝謝!

回答

2

adb等待設備告訴你設備上的adbd是否有響應。然而,它是設備上的一個linux級守護進程,遠低於通常在啓動之後的android平臺的級別(除非在設置菜單中剛剛啓用了ADB)。

特別是在模擬器上,啓動java級別的android運行時間是一個漫長的過程,因此adbd響應時可能會有幾秒到幾分鐘的時間,但沒有ActivityManager可以與之通話。在adb等待服務器之後,試圖做任何你想要做的事(大概運行'am'命令)在一個延遲一秒的循環中並檢查輸出可能是最簡單的解決方案。

+0

對不起這個雙重問題,但它引起了你的注意:)這是我最終做的工作。我只是想找到一個更確切的方式來讓這個工作(因爲在我放棄之前循環的時間可能是相當可變的)。 – ZacAttack