標籤:content 事件 str 資訊 圖片 3.1 實現 分享 net
前提:
在我們應用程式或者在寫Android自己主動化測試時候經常會須要類比實體按鍵,來給我們做測試用。這也是我要整理的目的。
基本的涉及的是Linux Input Event事件。
下面的範例基於Android 5.1(Linux-3.10)。
一、利用getevent、sendevent類比按鍵
(1)命令:getevent -t
結果:
...add device 6: /dev/input/event9 bus: 0000 vendor 0000 product 0000 version 0000 name: "msm8994-snd-card Button Jack" location: "ALSA" id: "" version: 1.0.1 events: KEY (0001): 0100 0101 0102 0103 0104 0105 0106 0107 input props: <none> ...
得知:我們所要的耳機按鍵的相應的input事件是event9。
(2)命令:getevent -t /dev/input/event9 (getevent -l /dev/input/event9會有更加具體資訊),使用按耳機按鍵預先擷取耳機事件資訊
結果:
按鍵按下:0001 00e2 000000010000 0000 00000000松下按鍵:0001 00e2 000000000000 0000 00000000
(3)使用sendevent命令類比觸發線控按鍵事件
sendevent /dev/input/event9 0001 00e2 00000001sendevent /dev/input/event9 0000 0000 00000000**這個之間要延時500ms~1s,不然會被系統誤覺得是誤觸發的**sendevent /dev/input/event9 0001 00e2 00000000sendevent /dev/input/event9 0000 0000 00000000
註:僅僅要是input的事件都是能夠用sendevent來類比。但有時候就力不從心了如類比觸控螢幕的滑動,假設用sendevent就須要大量的命令來類比。
這時能夠用input命令來取代。
二、利用input命令實現類比按鍵、觸控螢幕操作
(1)類比按鍵
命令:input keyevent {索引值}
已知Android手機音量+(KEYCODE_VOLUME_UP)的索引值是24,那使用
input keyevent 24就可類比按下音量+鍵。
很多其它的索引值見附件1。
(2)類比觸控螢幕操作(點按、滑動)
命令:input swipe {起始點x軸值} {起始點y軸值} {終點x軸值} {終點y軸值} {滑動時間[可忽略]}。時間單位:ms
比如:從x=100,y=500。滑到x=600,y=500。時間100ms
input swipe 100 500 600 500 100
命令:input tap {x軸值} {y軸值}
比如:點擊x=100,y=500這個點。類比點擊APP表徵圖開啟應用
input tap 100 500
附件1
Android(Linux)類比按鍵、觸控螢幕等事件