首語:android
咱們都知道,adb能夠對模擬器和root過的真機進行不少操做,例如:模擬點擊,輸入,截圖,手機和PC,數據互傳等。這篇要說的就是adb操做模擬器或者真機的輸入輸出。工具
0x01 問題測試
使用adb進行模擬長按鼠標或者長按某個按鈕,座標?spa
0x02 遍歷資料(互聯網取資料)操作系統
網上找了一下資料,基本都是須要跟event相關的,例如:/dev/input/event0 X X X; /dev/input/event3 Y Y Y。.net
通常都是input keyevent後面帶參數或者是sendevent /dev/input/...這樣的形式。blog
思考了一下,資料也說,應該是跟使用的android設備有關係,模擬器,真機,TV等都是不同的,真機和真機之間也有可能不同。事件
最後肯定了一個,按照網上的思路,先用getevent進行捕獲事件,而後在用sendevent進行發送操縱。忽然讓我想到了,window消息機制不就是這樣麼?get
咱們在window下模擬操做的時候,有時候也是須要藉助spy++工具,進行捕獲消息,而後模擬Send,Post消息的。input
0x03 測試結果
因而,在真實加上,排除各類狀況,只進行相關的那麼一點點操做,其餘操做都不進行。好比:長按,就只是長按,任何移動都不出現。而後獲得的消息內容。
不過獲得的內容是16進制的值。在使用adb進行發送的時候,須要轉化成10進制的。
0x04 結論和思考
測試,確實操做成功了。
/dev/input/event應該是做爲一個操做系統(android)的驅動器同樣的存在。而輸入的input有不少種(鍵盤,鼠標,手柄,遙控器等),不一樣的驅動,對應不一樣的動做,因此就會有不少種輸入方式了。因此,凡事仍是要思考,學而不思則罔,思而不學則殆。
0x05 附錄
參考資料:http://blog.csdn.net/mad1989/article/details/38109689
參考資料:http://blog.csdn.net/liu_zhen_wei/article/details/12559277
參考資料:http://blog.csdn.net/chen969097157/article/details/52351228