adb shell 模拟手势

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)

 

 

通过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输出到本地目录

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值