adb shell getevent -p 


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


带上 -l  

adb shell getevent -p  -l


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  


  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: 用Instrumentation类发送鼠标或按键事件
  2. android 按钮的四种点击事件
  3. Android(安卓)如何 隐藏导航栏
  4. Android(安卓)App: 按键识别
  5. Android的Location功能代码
  6. Android使用EventBus传递事件
  7. Android(安卓)TextView 给文本中指定片段添加自定义点击事件
  8. android Pull解析xml 使用小结
  9. Android(安卓)GPS获得经纬度并得到该坐标精确地址

随机推荐

  1. Android(安卓)数据存储机制
  2. Android(安卓)Studio中读取文本文件内容
  3. Android设置PreferenceCategory背景颜色
  4. Android(安卓)实现微信登录详解
  5. Android中SurfaceView的使用
  6. android屏幕分辨率分类
  7. Android点击事件分发流程
  8. Android(安卓)TV 键值修改流程
  9. 【转】Android.自定义控件的实现
  10. android span相关