座標是monkey指令碼的核心。monkey提供了選取控制項的api,而座標是api input param的必要引數。那麼如何獲取控制項的座標呢?
同款機型,不同解析度下的絕對座標相同。但不同解析度下,相對座標不同。需要兩個步驟。
在shell 中使用getevent(大小寫敏感),獲取當前event。
c:\users\***x>adb shell
hwmha:/ # getevent
/system/bin/sh: getevent: not found
127|hwmha:/ # getevent
add device 1: /dev/input/event5
name: "huawei,touchscreen"
could not
get driver version
for /dev/input/mouse0, not a typewriter
add device 2: /dev/input/event2
name: "hisi_on"
add device 3: /dev/input/event1
name: "hisi_gpio_key"
add device 4: /dev/input/event3
name: "fingerprint"
add device 5: /dev/input/event4
name: "hi3660_hi6403_card headset jack"
add device 6: /dev/input/event0
name: "soundtrigger_input_dev"
could not
get driver version
for /dev/input/mice, not a typewriter
若無螢幕觸碰事件,則返回如上資訊。即裝置名稱。
若觸碰螢幕,則將看到,在裝置資訊之後,又有結果輸出。
/dev/input/event5: 0003
003a
00000032
/dev/input/event5: 0003
0035
000001ef
/dev/input/event5: 0003
0036
000003fe
/dev/input/event5: 0003
0039
00000000
/dev/input/event5: 0000
0002
00000000
/dev/input/event5: 0001
014a
00000001
/dev/input/event5: 0000
0000
00000000
/dev/input/event5: 0000
0002
00000000
/dev/input/event5: 0001
014a
00000000
/dev/input/event5: 0000
0000
00000000
code的值很多,我們這裡只需要記住乙個。
0003—>絕對座標。
另外,買一贈三
0000—>同步事件。代表某一操作的完成。
0001—>key_broad。
0002—>相對座標。
不同的code有不同的type。下面我們來看絕對座標的type。
當然,我們也只關注兩個值。
0035—>絕對座標x
0036—>絕對座標y
例子中的值x,y分別為0x1ef,0x3fe。轉換為十進位制為495,1022。
目的達到,ctrl+c,結束getevent。
轉換需要五個引數,即x軸的最大值,最小值,y軸的最大值,最小值,當前的解析度。
轉換公式為:
相對座標x =(x-x軸最小值)*解析度x/(x軸最大值-x軸最小值)
相對座標y =(y-y軸最小值)*解析度y/(y軸最大值-y軸最小值)
注:其中數值都為十進位制。
那麼如何獲取x,y軸的最大最小值呢?
使用getevent的-p引數獲取。
130|hwmha:/ # getevent -p
add device 1: /dev/input/event5
name: "huawei,touchscreen"
events:
key (0001): 003b 003c 003d 003e 003f 0041
0042
0043
0044
0057
0058
00bd 00be 00bf 00c0 00c1
0145
014a
abs (0003): 0000 : value
0, min
0, max
1079, fuzz 0, flat 0, resolution 0
0001 : value
0, min
0, max
1919, fuzz 0, flat 0, resolution 0
0018 : value
0, min
0, max
255, fuzz 0, flat 0, resolution 0
0030 : value
0, min
0, max
15, fuzz 0, flat 0, resolution 0
0032 : value
0, min
0, max
100, fuzz 0, flat 0, resolution 0
0033 : value
0, min
0, max
100, fuzz 0, flat 0, resolution 0
0035 : value
0, min
0, max
1079, fuzz 0, flat 0, resolution 0
0036 : value
0, min
0, max
1919, fuzz 0, flat 0, resolution 0
0039 : value
0, min
0, max
15, fuzz 0, flat 0, resolution 0
003a : value
0, min
0, max
255, fuzz 0, flat 0, resolution 0
我們可以很容易的找到0035,0036。
那麼x軸,最大值為max 1079,最小值為min 0。
y軸,最大值為max 1919,最小值為min 0。
那麼解析度呢?
c:\users
\***x>adb shell wm size
physical size: 1080x1920
剩下的就是計算了。 Monkey工具指令碼功能詳解
monkey指令碼 adb shell monkey f 1 參考原始碼 monkey指令碼主要命令 dispatchpointer 相當於把手按在某乙個點上面 dispatchpress keycode 向系統傳送固定的按鍵 keycode 事件 android keycode鍵值對應大全 lau...
Nmap高階使用(指令碼篇)
先用以下命名掃瞄目標機器或者目標c段都跑了什麼服務 也可以用下面的指令碼先嘗試獲取下目標機器更詳細的服務banner資訊 nmap st pn open v banner.nse 192.168.3.23 ftp anon.nse 檢查目標ftp是否允許匿名登入,光能登陸還不夠,它還會自動檢測目錄是...
loadrunder之指令碼篇 action分類
action分類 l vuser init 2.vuser end 3.action 在lr中使用者的初始化操作應該存放在vuser init中。使用者的結束操作存放在vuser end中。因為這兩個action在後面的run logic預設設定中是處在指令碼最先執行和最後執行的位置,並且負載時,不...