关闭

android ADB 模拟手机点击事件

标签: android手机adb模拟手机点击事件
1786人阅读 评论(0) 收藏 举报
分类:

手机连接到ADB 输入命令  

adb shell getevent -p

显示

从这里可以知道每一个 /dev/input/event3: 0003 0035 00000161 event3是什么事件 便于以后进行分析简介代码

接下来输入

adb shell getevent

然后手机就可以接受手机屏幕上的点击事件的位置(不过是16进制)
/dev/input/event3: 0003 0030 00000025
/dev/input/event3: 0003 0032 00000005
/dev/input/event3: 0003 0035 00000160  点击事件位置
/dev/input/event3: 0003 0036 00000226  点击事件位置
/dev/input/event3: 0000 0002 00000000 
/dev/input/event3: 0000 0000 00000000 
/dev/input/event3: 0003 0030 00000025
/dev/input/event3: 0003 0032 00000005
/dev/input/event3: 0003 0035 00000160
/dev/input/event3: 0003 0036 00000226
/dev/input/event3: 0000 0002 00000000
/dev/input/event3: 0000 0000 00000000
/dev/input/event7: 0003 0028 00000012
/dev/input/event7: 0000 0000 00000000
/dev/input/event3: 0000 0002 00000000
/dev/input/event3: 0000 0000 00000000
/dev/input/event7: 0003 0028 00000016
/dev/input/event7: 0000 0000 00000000
/dev/input/event7: 0003 0028 00000018
/dev/input/event7: 0000 0000 00000000
/dev/input/event3: 0000 0002 00000000
/dev/input/event3: 0000 0000 00000000
接下来可以通过16进制转换器将  /dev/input/event3: 0003 0035 00000161 的数字转化为10进制  让后再在前面加上sendevent 
例如
sendevent /dev/input/event3 3 48 37   可以删除
sendevent /dev/input/event3 3 50 5		保留一个
sendevent /dev/input/event3 3 53 352  点击事件位置
sendevent /dev/input/event3 3 54 550  点击事件位置  
sendevent /dev/input/event3 0 2 0	事件分割
sendevent /dev/input/event3 0 0 0  事件分割
sendevent /dev/input/event3 3 48 37
sendevent /dev/input/event3 3 50 5
sendevent /dev/input/event3 3 53 352
sendevent /dev/input/event3 3 54 550
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event7 3 40 18
sendevent /dev/input/event7 0 0 0
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event7 3 40 22
sendevent /dev/input/event7 0 0 0
sendevent /dev/input/event7 3 40 24
sendevent /dev/input/event7 0 0 0
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0


这些就是一个完整的点击事件的过程
这个 时候可以对比之前所查看的 adb shell getevent -p 命令显示的event事件  
 事件
  /dev/input/event3
  name:     "atmel-touchscreen"  

/dev/input/event1
  name:     "huawei_keypad"

 /dev/input/event7
  name:     "light sensor"




 /dev/input/event4
  name:     "l3g4200d_gyr"
可以知道event7是一个光线传感器   和点击事件无关所以可以删除   接下来可以简洁我们的点击事件 流程

简洁版
sendevent /dev/input/event3 3 50 5
sendevent /dev/input/event3 3 53 352  
sendevent /dev/input/event3 3 54 550 
sendevent /dev/input/event3 0 2 0	 
sendevent /dev/input/event3 0 0 0 
sendevent /dev/input/event3 0 2 0	
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event3 0 2 0

接下来是一个长按事件

长点击事件
sendevent /dev/input/event3 3 50 5
sendevent /dev/input/event3 3 53 80
sendevent /dev/input/event3 3 54 429
sendevent /dev/input/event3 0 2 0	 
sendevent /dev/input/event3 0 0 0 
sendevent /dev/input/event3 0 2 0

试了很多次发现了以上的规律 虽然不知道为什么

点击流程
sendevent /dev/input/event3 3 50 5
sendevent /dev/input/event3 3 53 352  
sendevent /dev/input/event3 3 54 550 
sendevent /dev/input/event3 0 2 0	 点击还未进入长点击状态
sendevent /dev/input/event3 0 0 0 
sendevent /dev/input/event3 0 2 0	 点击后进入长点击状态
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event3 0 2 0	点击使事件结束 长点击状态消失

然后就可以得到我们需要点击的地方的一个事件

进入到  adb shell 

输入我们整理过的简洁版的代码

就可以看到手机相应位置发生了点击事件





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3894次
    • 积分:79
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条