adb shell getevent -p 

android 使用命令模拟点击 滑动_第1张图片

出现上述截图的就是屏幕触摸输入设备


带上 -l  

adb shell getevent -p  -l


android 使用命令模拟点击 滑动_第2张图片

EV_ABS      ABS_MT_TRACKING_ID   00000b21EV_ABS      ABS_MT_PRESSURE      0000007fEV_ABS      ABS_MT_TOUCH_MAJOR   00000006EV_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      0000007eEV_SYN      SYN_REPORT           00000000   //同步事件EV_ABS      ABS_MT_TRACKING_ID   ffffffffEV_KEY      BTN_TOUCH            UP         // MotionEvent.ACTION_UP事件触发EV_SYN      SYN_REPORT           00000000   //同步事件

获得event 体系里 宽(0035)和高(0036)


通过adb模拟滑动、按键、点击事件


adb shell  input  -h  
android 使用命令模拟点击 滑动_第3张图片

  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. Android使用EventBus传递事件
  2. linux命令
  3. android 按钮的四种点击事件
  4. Android am/pm命令用法
  5. 【Android】监听自定义通知栏消息事件
  6. 使用adb命令启动Android程序
  7. 疯狂android讲义---事件处理2

随机推荐

  1. Spring 获取 request 的几种方法及其线程
  2. SpringCloudAlibaba—微服务概念及Spring
  3. 手把手教你写一个spring IOC容器
  4. Spring Boot之发送HTTP请求(RestTemplate
  5. 别再面向 for 循环编程了,Spring 自带的观
  6. Spring 天天用,bean 懒加载原理你懂吗?
  7. Pytorch
  8. [SpringCloud教程]6. OpenFeign远程接口
  9. 优雅spring-boot项目启动,停止,重启脚本
  10. spring工程搭建