〖Android〗屏幕觸屏事件錄制與回放


需求:

  不管是做自動化測試的,還是傳媒技術的,自動化操作Android App是一種操作需求;

  自動化的操作可以節省很多的人力資源投入;

 

實現:

  Android UI界面的自動化,通常有兩個方法:

  1. 使用得較多的是input命令,input可以直接輸入“所有按鍵、屏幕點擊、拖動和直接輸入文本內容”

  2. 較為復雜的操作使用getevent 和 sendevent來完成,理論上可以操作一切觸屏的輸入

 

問題:

  通常,input使用起來會特別簡單方便,可以把坐標記錄好,寫寫腳本就完事了;

  但是涉及到復雜的操作,如 長按等 input就不能完成了;

 

思路:

  於是還是回到了 getevent和sendevent方法,sendevent命令本身就是只簡單調用一下ioctl來向 /dev/input/eventX 發送控制;

  但是由於 Shell腳本在執行過程中,效率本身就是個問題,使用Shell腳本回放錄制的內容,會出現意想不到的問題,如:

    一個操作被分割成兩個操作來執行, 這本身就不是我們期望的;

 

解決:

  所以,我寫在寫回放腳本時,就把 錄制到的信息,制作成一個C語言文件,直接以二進制形式來執行,這樣子就不會出現操作被分割的現象了;

  源代碼:https://github.com/scue/android_tap_record

 

相關鏈接:

  1. sendevent.c: https://github.com/android/platform_system_core/blob/master/toolbox/sendevent.c

  2. 編譯工具請使用NDK: http://developer.android.com/tools/sdk/ndk/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM