adb shell getevent -p
出现上述截图的就是屏幕触摸输入设备
带上 -l
adb shell getevent -p -l
EV_ABS ABS_MT_TRACKING_ID 00000b21 EV_ABS ABS_MT_PRESSURE 0000007f EV_ABS ABS_MT_TOUCH_MAJOR 00000006 EV_ABS ABS_MT_POSITION_X 0000038f // x坐标 EV_ABS ABS_MT_POSITION_Y 00000421 // y坐标 EV_KEY BTN_TOUCH DOWN // MotionEvent.ACTION_DOWN事件触发 EV_SYN SYN_REPORT 00000000 //同步事件 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)
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输出到本地目录