[Android]通過adb shell input上報命令類比螢幕點擊事件【轉】

來源:互聯網
上載者:User

標籤:解析度   .net   類比點擊   資料   鍵盤事件   tail   輸入框   oid   體系   

本文轉載自:http://blog.csdn.net/yuanzihui/article/details/52871652

常用的 input上報命令: 
input text 1234 實際向介面注入1234文字,有輸入框,能明顯看到效果 
input keyevent 4 鍵盤事件,4 為返回 
input tap 100 300 單擊觸屏事件 ,類比點擊x=100 y = 300 位置 
input swipe 100 300 500 300 觸屏滑動事件,類比滑動,從x =100 
y = 300 滑動到x=500 y=300位置 
input press 類比按下軌跡球 
input roll 100 300 類比軌跡球滑動 x 方向100 y方向300

擷取座標方法: 
第一步:計算比例

adb shell getevent -p | grep -e “0035” -e “0036” 
獲得event 體系裡 寬(0035)和高(0036)

以當前我使用的手機為例,命令會輸出如下資訊: 
0035 : value 0, min 0, max 1602, fuzz 0, flat 0, resolution 0 
0036 : value 0, min 0, max 2503, fuzz 0, flat 0, resolution 0

0035(寬) max 1602 
0036(高) max 2503

計算比例(用已知的螢幕解析度,如1080p即:1080(寬) * 1920(高)): 
rateW = 1080(手機螢幕的寬) / 1602(event裡0035的max) = 0.674 
rateH = 1920(手機螢幕的高) / 2503(event裡0036的max) = 0.767

第二步:點擊螢幕計算點擊位置的座標 
adb shell getevent | grep -e “0035” -e “0036” 
點擊螢幕上需要的位置,會有如下輸出: 
/dev/input/event0: 0003 0035 00000341 
/dev/input/event0: 0003 0036 000008ec

 把0035和0036後面的位置資料從16進位轉化為10進位 
width = 0x341 = 3*16*16 + 4*16 + 1 = 833 
height = 0x8ec = 8*16*16 + 14*16 + 12 = 2284 
這是在event體系裡的位置,將其轉化為螢幕位置 
screenW = width*rateW = 833*0.674 = 561 
screenH = height*rateH = 2284*0.767 = 1751

終於算出來了 
剛剛點擊的螢幕位置座標就是(561, 1751)

[Android]通過adb shell input上報命令類比螢幕點擊事件【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.