2012-08-22 273 views
3

我正在做一些ui自動化,並且我能夠使用getevent存儲屏幕接觸,但是當我嘗試使用sendevent發送此消息時,需要很長時間,因此很難真正重放輸入。Android sendevent非常慢 - 如何加速?

我已經嘗試將腳本加載到設備上並在設備上本地運行腳本(帶有一系列sendevent命令的腳本)。但是這只是稍微留下了這點。有沒有其他方法可以更快速地注入這些命令?

回答

4

觸摸處理程序是跨不同設備上實現。你應該cat /proc/bus/input/devices看看觸摸處理程序的實現。

您也可以做adb shell getevent,與設備交互並查看接口名稱的輸出。

重播需要很長時間的原因是sendevent二進制文件打開接口文件,寫入數據並關閉每次調用sendevent的數據。所以從理論上講,如果你有一堆sendevent命令,二進制文件打開接口文件,寫入數據並關閉每個命令。

我已經解決了這個問題的方法是通過在/ system/core/toolbox下重新編寫sendevent.c文件在重放過程中僅打開一次文件,寫入所有數據並將其關閉到重播。它適合我!

+1

就這麼發生,這正是我所做的!感謝你的回答! – user1598917

3

好的。 而不是使用getevent的/的SendEvent可以從事件接口 嘗試內亞行外殼嘗試直讀:

DD如果=的/ dev /輸入/ event6的= RECORD1#記錄

DD如果=/= record1of的/ dev /輸入/ event6 q若要發揮

然而,這可能跑的太快...

+0

在這種情況下如何處理觸摸之間的延遲。 – Rilwan