日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Robot: 一個記錄和回放Android input event(touch)的工具

Robot: 一個記錄和回放Android input event(touch)的工具

來源:程序員人生   發布時間:2015-03-16 10:24:39 閱讀次數:3109次

這個工具的主要目的就是記錄屏幕上的各種操作,然后屢次回放,用于穩定性測試和1些需要屢次重復才能復現的bug的重現。

代碼在以下位置:

       http://download.csdn.net/detail/dfysy/8479123

之前,他人轉發我1個記錄/回放 event的程序,在KK之前都是可以用的,但是由于Android L enable了PIE(positionindependent execution), 在L上沒法用了。又沒有源碼,只能自己再寫1個。

程序的原理:

       就是讀取/dev/input下面的所有event輸入,把他們都記錄下來,然后在回放的時候在1個1個的寫回去。記錄的信息除input_event的內容外,還需要記錄該event是從哪個input節點讀入的,由于回放的時候需要知道這個event應當寫入哪個節點。

由于input_event里面記錄的event產生時間和實際讀取的時間會有差異,會致使回放的時候計算兩個event之間的時間差出現毛?。ㄘ?#20540;)。最好的設計應當是對所有讀出的event再根據產生時間進行排序。但是為了簡化設計,此處直接記錄讀取event的墻鐘時間,這樣雖然不同input節點間的時間關系可能有偏差。但是同1個input節點直接的順序還是正確的。

程序的主要風格是C和C++的混合體,之所以使用C++,主要是由于使用了template處理map和vector,這樣就不用使用C語言費力巴哈的去實現相干的插入查找的算法,目的是快速,不是較勁。

主要的數據結構和功能:

       map<string,int> fileName2fd; /*input filenameàinput fd*/

       map<string,int> fileName2fdr; /*記錄文件中的filenameà記錄文件中的fd*/

       map<int,string> fd2fileName;/*input fdàinputfilename*/

       map<int,string> fdr2fileName;/*記錄文件中的fdà記錄文件中的filename*/

       map<int,int> fdr2fd;/*記錄文件中的fdàinputfd*/

       vector<event_info>eventListFile;/*記錄文件中的所有list,這樣就不用每次都讀文件了*/

       vector<event_info>eventListScan; /*記錄所有從input 文件節點讀取到的event*/

程序主要分為以下幾個部份

        1) 遍歷dev/input目錄,打開所有節點,(此部份使用了android的getevent部份代碼)。建立fd和文件名之間的相互map

             scanAndOpenInputs(INPUT_DIR);

        2) 分析命令輸入,如果是recording的話,進入receiveEvents(),讀取input文件節點的event,并進行保存。此處使用了select來監控各個input。

            ret= select(max_fd, &fds, NULL, NULL, &timeout);

       3)  分析命令輸入,如果是playback的話,則從文件中讀出各個event,并計算各個event之間的時間差,然后根據fd和filename對應將其寫入對應的文件節點。


Android.mk 里面需要加以下的選項,以即可以使用stl的庫,這里采取的靜態編譯,以避免下載到某些裝備找不到庫

        LOCAL_C_INCLUDES += bionic bionic/libstdc++/include external/stlport/stlport
        LOCAL_STATIC_LIBRARIES := libc libstlport_static


        LOCAL_FORCE_STATIC_EXECUTABLE := true
        include $(BUILD_EXECUTABLE)


TODO:1)增加輸出到指定文件的功能,這樣就能夠為不同的測試內容記錄不同的文件

               2)增加playback指定文件的功能,這樣就能夠用shell來組織各個功能的測試了。

 

       

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本成人中文字幕 | 日本一区二区三区免费在线 | 免费成人av | 美女一区二区三区 | 日韩毛片| 国产福利91精品一区二区三区 | 欧美日韩国产黄色 | 精品高清视频 | 日韩系列在线 | 日韩在线视频一区二区三区 | 午夜精品久久久久久99热软件 | 羞羞视频在线观看免费视频 | 国产久视频 | 欧美一区二区三区在线看 | 欧美日本韩国 | 午夜激情在线观看 | 久久久久久免费精品一区二区三区 | 变态 另类 欧美 大码 日韩 | 免费看成人吃奶视频在线 | 色一区二区 | 国产一区二区日韩 | 国产精品99蜜臀久久不卡二区 | 欧美不卡激情三级在线观看 | 国产精品日韩三级 | 国产一区二区精品在线 | 在线视频日韩精品 | 精品日韩在线 | 免费欧美一区 | 黄色片视频免费 | 久久国产精品久久 | 福利视频网 | 九九福利 | 欧美在线一级 | 日韩视频中文字幕 | 国产亚洲视频在线观看 | 欧美日韩国产一区二区三区 | 日韩久久一区二区 | 99久久久久久久久久久 | 欧美精品在线视频 | 在线免费看黄网站 | 久久一本到 |