关闭

android ADB 模拟手机点击事件

标签: android手机adb模拟手机点击事件
3639人阅读 评论(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
查看评论

Android通过代码模拟物理、屏幕点击事件

本文讲的是通过使用代码,可以控制手机的
  • mad1989
  • mad1989
  • 2014-07-25 11:57
  • 100101

Android用代码模拟系统物理按键长按操作(类似按键精灵)

今天同事的朋友提出一个需求,问能不能帮忙写个程序模拟他手机上长按返回键的操作。因为他手机屏幕部分区域失灵,想启用单手模式来使用手机,但是物理触控按键也失灵了。无法通过长按返回触发单手模式。由于之前没做过类似的功能,再加上手上任务不太多,于是稍微学习了一下。经过多方查找资料,发现触发系统按键方式有很多...
  • u012912435
  • u012912435
  • 2016-05-23 17:27
  • 9183

android触屏长按解决方案。

查找了很多关于android触屏的长按方法。都没有得到满意的结果。只好自己想办法。根据已经知道的条件,自己写逻辑。希望看官和老手点评!上码前先看设计图。屏幕分成4个按钮块。分别是A B C D。长和宽用屏幕的1/3估计能适应所有屏幕。并记录坐标点。及逻辑判断。 字有点难看见谅!上码 ...
  • zbzhang
  • zbzhang
  • 2017-02-04 18:24
  • 308

Android adb 模拟滑动 按键 点击事件

模拟事件全部是通过input命令来实现的,首先看一下input命令的使用:  usage: input ...        input text        input keyevent &...
  • huiguixian
  • huiguixian
  • 2013-09-23 11:55
  • 57517

Android在任何地方模拟点击屏幕

要求:在Android上按像素位置进行模拟屏幕点击,无论前台程序是什么(类似于按键精灵)。解决方案:使用安卓中的linux命令行来进行模拟(可以完成目标但是不优雅)。前提知识: ADB中可以使用”adb shell tap x y”来模拟点击 Android代码中可以使用ProcessBuilder...
  • hai29785
  • hai29785
  • 2016-10-09 18:16
  • 8120

Android adb shell 获得点击屏幕的位置坐标

通过 adb shell getevent 命令获得点击屏幕的位置坐标的方法: 第一步:计算比例 首先通过命令 adb shell getevent -p | grep -e "0035" -e "0036" 获得event 体...
  • liu_zhen_wei
  • liu_zhen_wei
  • 2013-10-10 11:10
  • 22540

使用Shell调用ADB指令方式来点击屏幕

1. 背景老大最近有个需求要捕获一些东西(具体不能细说),然后在需求的最关键的一个点就归结到要点击一下别的APP的一个指定位置. 在网上搜索安卓按键模拟。用了很多方式都不太好,最后锁定了使用ADB调试的方案,向手机发送按键事件。刚好之前做过在Root权限下,用Java调用安卓底层的Linux S...
  • yili270
  • yili270
  • 2016-06-22 16:54
  • 1931

[Android]通过adb shell input上报命令模拟屏幕点击事件

常用的 input上报命令: input text 1234 实际向界面注入1234文字,有输入框,能明显看到效果 input keyevent 4 键盘事件,4 为返回 input tap 100 300 单击触屏事件 ,模拟点击x=100 y = 300 位置 input swipe 1...
  • yuanzihui
  • yuanzihui
  • 2016-10-20 13:19
  • 5340

Android adb shell 获得点击屏幕的位置坐标

通过 adb shell getevent 命令获得点击屏幕的位置坐标的方法: 第一步:计算比例 首先通过命令 adb shell getevent -p | grep -e "0035" -e "0036"...
  • wave_1102
  • wave_1102
  • 2014-11-30 23:08
  • 4121

ADB 录制屏幕命令

ADB 录制屏幕命令 对于Android4.4的上的手机,系统自带了一个命令screenrecord,我们可以很方便的使用。 录制命令adb shell screenrecord /sdcard/test.mp4 视频保存目录可以自己指定,如上面的/sdcard/test.mp4,命令执行后会一直录...
  • qq_21793463
  • qq_21793463
  • 2015-12-29 13:26
  • 5793
    个人资料
    • 访问:8023次
    • 积分:146
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条