上回咱們說到怎麼利用 getevent 得到 Android 的輸入事件,本次就來說明如何使用 sendevent 模擬輸入的動作。
2018年12月30日 星期日
2018年12月23日 星期日
20-getevent
getevent 是一個和模擬輸入無直接相關的指令,但若看官想知道當滑動 Android 觸控面板時是由那些輸入事件所構成,或想記錄點擊、滑動等動作以回放這些操作,那 getevent 將是一種選擇。
2018年12月8日 星期六
19-Level up !!! input draganddrop
拖放 (Drag and Drop) 是種很常見的操作,可是咱們曾介紹的 MonkeyDevice.drag 和 input swipe 都難以漂亮地模擬此動作,並非不能,只是實現的效果非常不理想且醜陋。不過從 Android 8.0.0 開始,有一新的 input 成員能夠較為優雅地實現此模擬了,它便是 input draganddrop。
2018年12月2日 星期日
18-input三兄弟swipe
input swipe 的功能和 MonkeyDevice.drag 類似,都是模擬手指滑動螢幕的行為,其使用方式也雷同:
語法 | input swipe <x1> <y1> <x2> <y2> [ duration(ms) ] |
---|---|
說明 | 功能與 MonkeyDevice.drag (tuple start, tuple end, float duration, integer steps) 類似。 |
duration 預設為 300 ms。 |
2018年11月5日 星期一
17-input三兄弟tap
語法 | input tap <x> <y> |
---|---|
說明 | 與 MonkeyDevice.touch (<x>, <y>, MonkeyDevice.DOWN_AND_UP) 的行為一樣。 |
16-input三兄弟keyevent
2018年11月4日 星期日
15-輕量級的輸入模擬 (input)
相比於 MonkeyDevice 提供的 press、touch 和 drag 三種方法,本喵更常使用 shell 提供的 input 來執行對應的動作。其實若單以行為的可控制性來說,MonkeyDevice 是勝過 shell input 的,比如 shell input tap 只能執行「點一下螢幕」這樣的動作,而 MonkeyDevice.touch() 還可以模擬「長壓螢幕」的行為。但之所以選擇 shell input,是因為 monkeyrunner 太常丟出 exception 了,雖然這可以藉由良好的封裝來重複嘗試執行,但設計上畢竟較繁複,執行測試時也會花費更多時間在不必要的 try...exception 上;另一個理由則是本喵被分配的工作剛好 shell input 便足夠勝任了,所以除非有必要,否則本喵是傾向使用簡單的方式來達成目的。
訂閱:
文章 (Atom)