adb shell getevent -p
出現上述截圖的就是屏幕觸摸輸入設備
android adb命令、帶上 -l
adb shell getevent -p-l
。
EV_ABS??????ABS_MT_TRACKING_ID?? 00000b21
linux android、EV_ABS??????ABS_MT_PRESSURE????? 0000007f
EV_ABS? ????ABS_MT_TOUCH_MAJOR?? 00000006
EV_ABS??????ABS_MT_POSITION_X??? 0000038f???// x坐標
android滑動條、EV_ABS??????ABS_MT_POSITION_Y??? 00000421? ?// y坐標
EV_KEY??????BTN_TOUCH??????????? DOWN???? // MotionEvent.ACTION_DOWN事件觸發
EV_SYN??????SYN_REPORT?????????? 00000000???//同步事件
android手機安裝linux?EV_ABS??????ABS_MT_PRESSURE????? 0000007e
EV_SYN??????SYN_REPORT?????????? 00000000 //同步事件
EV_ABS??????ABS_MT_TRACKING_ID?? ffffffff
EV_KEY??????BTN_TOUCH??????????? UP??? // MotionEvent.ACTION_UP事件觸發
EV_SYN??????SYN_REPORT?????????? 00000000? //同步事件
獲得event 體系里 寬(0035)和高(0036)
通過adb模擬滑動、按鍵、點擊事件
adb shell? input? -h
adb shell input text? string? ? ?在搜索框中自動輸入 string
keyevent 手機的按鍵操作,如:home鍵、返回鍵、菜單鍵、鎖屏等
例如需要點擊一下home鍵
adb shell input keyevent 3 ?或者?adb shell input keyevent?KEYCODE_HOME
tap?是模擬touch屏幕的事件,以下命令就是點擊屏幕300,300位置
adb shell input tap 300 300
swipe?是滑動事件,以下命令表示從屏幕300,300 移動到400,400
adb shell input swipe 300 300 400 400
KEYCODE_HOME 所在文件
frameworks/base/core/java/android/view/KeyEvent.java
sendevent 命令
sendevent? /dev/input/eventX? ? ?type? ? ? code? ? ? value
type、code、value? 定義在kernel-3.18/include/uapi/linux/input.h
/*
* Event types
*/
#define EV_SYN? ? ? ? ? 0x00
#define EV_KEY? ? ? ? ? 0x01? ? ? ? ? ? ? ? --按鍵
#define EV_REL? ? ? ? ? 0x02? ? ? ? ? ? ? ? --觸摸相對坐標
#define EV_ABS? ? ? ? ? 0x03? ? ? ? ? ? ? ?--觸摸絕對坐標
#define EV_MSC? ? ? ? ? 0x04
#define EV_SW? ? ? ? ? ?0x05
#define EV_LED? ? ? ? ? 0x11
#define EV_SND? ? ? ? ? 0x12
#define EV_REP? ? ? ? ? 0x14
#define EV_FF? ? ? ? ? ?0x15
#define EV_PWR? ? ? ? ? 0x16
#define EV_FF_STATUS? ? ? ? 0x17
#define EV_MAX? ? ? ? ? 0x1f
#define EV_CNT? ? ? ? ? (EV_MAX+1)
一般常用的是EV_KEY, EV_REL, EV_ABS, EV_SYN
分別對應keyboard, 相對坐標, 絕對坐標, 同步事件
EV_SYN對應的code如下
/*
* Synchronization events.
*/
#define SYN_REPORT? ? ? 0
#define SYN_CONFIG? ? ? 1
#define SYN_MT_REPORT? ? ? ?2
#define SYN_DROPPED? ? ?3
#define SYN_MAX? ? ? ? ?0xf
#define SYN_CNT? ? ? ? ?(SYN_MAX+1)
input keyevent
模擬按鍵,sendevent用起來比較繁瑣,可以用input keyevent代替
input keyevent 3??? // Home? (KeyEvent.java)
input keyevent 4??? // Back
input keyevent 19? ? //Up
用senevent 模擬觸屏事件
sendevent /dev/input/event1 0003 0000 0000015e??? // ABS x 坐標
sendevent /dev/input/event1: 0003 0001 000000df??? // ABS y 坐標
sendevent /dev/input/event1: 0001 014a 00000001 ? // BTN touch事件 值為1
adb shell input keyevent 82? ? ?這個命令會發送一個解屏事件到鎖屏的設備上解屏
http://blog.shvetsov.com/2013/02/grab-android-screenshot-to-computer-via.html
adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png? ? ?截屏并通過perl輸出到本地目錄
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态