腳本運行一段時間(盡可能長)只要與pc連接出現問題,例如設備offline了,那麼monkeyrunner源碼裡的一些方法的那些異常都會報出來,如果我們的腳本裡沒有捕獲這些異常,那麼就會層層拋出直至腳本崩潰。目前還不會捕捉這些異常,希望有人解決過類似問題,幫我一把……謝謝。
目前報過的異常有:TimeoutException、AdbCommandRejectedException、Error sending touch event、Error sending press event等等,感覺都是連接有問題導致這些方法調用不了,拋出了源碼裡的那些方法對應的異常。
現在就想捕獲異常,有異常就重啟手機,重啟後重新運行腳本,可是reboot重啟手機的這個方法也是需要連接有效才能正常使用的,愁死人了。
還有一種情況就是腳本運行了很久後不動了,也沒報異常,死活不往下運行了……
換手機,不要用一些不穩定的手機。正常手機不會運行monkey的時候突然offline的。
是monkeyrunner,就是模擬真實手機用戶點擊應用的操作,每個內容到最後一步截圖保存,有異常也截圖保存,大概每次跑完有上千張圖。然後重復……
如果是這樣,我就有點明白了,問題可能存在於截圖上,截圖是很耗費usb帶寬的行為,而且截圖本身並沒有被系統特別嚴格壓力測試過,在同時和mr運行的時候會導致adb的一些沖突,導致timeout或者中斷的結果,我建議你這樣做,理論上可以解決:
1. 在每次循環運行完成後執行adb kill-service;adb start-service,這樣重啟adb連接
2. 如果1不管用,就盡量縮減截圖的次數,一點點縮減,直到穩定運行