`
dowhathowtodo
  • 浏览: 829208 次
文章分类
社区版块
存档分类
最新评论

Android getevent/senevent

 
阅读更多

getevent&sendevent 是android系统下的一个工具,可以模拟多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。

=== getevent ===

getevent 监控当前的事件,鼠标事件,按键事件,拖动滑动等

dd device 1: /dev/input/event0
name: "qwerty2"
/dev/input/event0: 0001 001e 00000001
/dev/input/event0: 0001 001e 00000000

其中/dev/input/event0是device的名字 0001是type, 001e是键码, 最后一个根据type不同而不同
比如上面的倒数第二条就是按下a键的keydown,最后一个是按下a的keyup
具体的type,code,value的定义可以在源码/frameworks/base/core/java/android/view/KeyEvent.java中找到

=== sendevent ===

命令格式2:adb shell sendevent [device] [type] [code] [value]

发送时间,格式和上面的一样,需要注意的是在get中code显示的是十六进制,而send中需要用十进制,例如

# sendevent /dev/input/event0 1 5 1
这个命令就是发送数字4的keydown消息,所以在屏幕上就会一直打印出很多个4(因为没有发送keyup)

如: adb shell sendevent /dev/input/event0 1 229 1 代表按下按下menu键

adb shell sendevent /dev/input/event0 1 229 0 代表按下松开menu键

说明:上述的命令需组合使用

另外所知道的命令如下:

Key Name CODE

MENU 229

HOME 102

BACK (back button) 158

CALL (call button) 231

END (end call button) 107

2.发送鼠标事件(Touch):

命令格式:adb shell sendevent [device] [type] [code] [value]

情况1:在某坐标点上touch

如在屏幕的x坐标为40,y坐标为210的点上touch一下,命令如下

adb shell sendevent /dev/input/event0 3 0 40
adb shell sendevent /dev/input/event0 3 1 210
  
adb shell sendevent /dev/input/event0 1 330 1 //touch
adb shell sendevent /dev/input/event0 0 0 0 //it must have
  
adb shell sendevent /dev/input/event0 1 330 0 //untouch
adb shell sendevent /dev/input/event0 0 0 0 //it must have

注:以上六组命令必须配合使用,缺一不可

情况2:模拟滑动轨迹(可下载并采用aPaint软件进行试验)

如下例是在aPaint软件上画出一条开始于(100,200),止于(108,200)的水平直线

adb shell sendevent /dev/input/event0 3 0 100 //start from point (100,200)
adb shell sendevent /dev/input/event0 3 1 200
  
adb shell sendevent /dev/input/event0 1 330 1 //touch
adb shell sendevent /dev/input/event0 0 0 0
  
adb shell sendevent /dev/input/event0 3 0 101 //step to point (101,200)
adb shell sendevent /dev/input/event0 0 0 0
…………………… //must list each step, here just skip
adb shell sendevent /dev/input/event0 3 0 108 //end point(108,200)
adb shell sendevent /dev/input/event0 0 0 0
  
adb shell sendevent /dev/input/event0 1 330 0 //untouch
adb shell sendevent /dev/input/event0 0 0 0

参考:

http://topic.csdn.net/u/20100326/17/1f0fc5a1-3bd2-4294-aa35-1bcb73357aa3.html

http://www.51testing.com/html/65/n-215865-2.html

分享到:
评论

相关推荐

    Android getevent用法实例详解

    Android getevent用法实例详解 最近在测试设备按键的常用命令,感觉这些命令都有的,但就是不知道怎么查找。 翻阅了几篇博文,才发现有一个getevent,就是指这样的命令. 首先需要说明的是getevent命令后面可以带上...

    Android sendevent/getevent 用法

    在Android系统中,`sendevent`和`getevent`是两个用于交互和调试硬件输入设备的命令行工具。它们主要用于模拟输入事件,如触摸屏、按键等,这对于开发者测试应用程序或者理解设备输入处理流程非常有帮助。下面我们将...

    getevent:移植Android工具getevent到Linux

    getevent移植Android工具getevent到Linux,相应的文件位于system/core/toolbox中。修改步骤如下:getevent.c引用的头文件'input.h-labels.h'是用脚本'generate-input.h-labels.py'自动生成的,参数是'bionic/libc/...

    易语言 adb shell getevent 和 sendevent 详细讲解使用实现点击效果

    简介: ... ...3、/dev/input/event3 这个...4、通过getEvent()事件 点击雷电模拟器后输出查看 5、这个sendevent 事件还可以实现滑动、和多指触屏如果有这样需求在研究。 6、sendevent 相对 input tap 响应的速度要快一些。

    getevent 触屏事件的获取

    总结起来,`getevent`是调试Android设备输入事件的强大工具,特别是在处理触屏坐标问题时。通过对原始事件数据的分析,开发者可以更好地理解触控事件的工作机制,解决触摸不准确、延迟等问题。同时,结合事件注入...

    获取触摸屏触点测试程序

    获取触摸屏触点测试程序,程序执行如下: ./GetEvent /dev/input/event1 点击触摸屏即可获取触点坐标值,方便调试使用。

    getevent 源码

    `getevent` 是一个在Linux系统中用于获取和分析输入设备事件的命令行工具。它可以从内核的input子系统中读取事件,这些事件通常包括键盘、鼠标、触摸屏等输入设备的操作。通过理解`getevent`的源码,我们可以深入...

    getevent源代码及BIN(ARM)

    《深入解析getevent工具及其在Linux ARM环境下的应用》 在Linux操作系统中,getevent是一个非常重要的工具,它主要用于获取并显示系统中的输入事件。这个工具对于开发者来说,是理解和调试设备驱动,尤其是输入设备...

    getevent命令源码

    Linux Android下的getevent命令源码,使用对应的编译器编译即可。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    自动把getevent转化为sendevent的工具

    自动把getevent转化为sendevent的工具,并且组装成可循环执行的shell,简易按键录制工具

    Android-android操作录制操作回放

    在Android平台上,操作录制与操作回放是一种强大的功能,它允许开发者或用户记录一系列的屏幕交互,然后可以重复播放这些操作,这对于自动化测试、教学演示或者应用预览都非常有用。在本文中,我们将深入探讨这一...

    getevent_ubuntu

    注意:从android工具箱移植,使用ubuntu x86和armhf系统进行测试。 建造: gcc getevent.c -o getevent 测试:sudo ./getevent 添加设备1:/ dev / input / event1 名称:“ Lite-On Technology Corp. HP基本USB键盘...

    S905X3安卓9.0 安卓11 手柄驱动 调试命令 ampere:/ $ getevent -ltr add device 1

    标题中的"S905X3安卓9.0 安卓11 手柄驱动"指的是基于Amlogic S905X3芯片的设备在运行Android 9.0或Android 11操作系统时的手柄驱动程序。S905X3是一款常见的应用于智能电视盒和流媒体设备的系统级芯片。手柄驱动是...

    Android onKeyDown监听返回键无效的解决办法

    在Android开发中,处理用户界面交互是一个核心部分。用户与应用的交互主要是通过屏幕触摸和设备上的按钮来实现的。其中,返回键是Android设备上最常用的物理按钮之一。大多数情况下,Activity默认会处理返回键的事件...

    遥控器键值

    ### 遥控器键值解析与NEC6122编码协议详解 #### 一、遥控器键值概述 在单片机开发过程中,遥控器作为一种常见的输入设备被广泛应用于各种项目中。通过遥控器可以实现对目标设备的无线控制,这在智能家居、家电控制...

    android系统按键驱动

    此外,还可以使用`/sys/class/input/event*`目录下的设备节点,通过`cat`命令实时查看按键事件,或者使用`getevent`工具进行更详细的调试。 总结,Android系统按键驱动是Linux内核驱动程序的重要组成部分,它使得...

    Android代码实现模拟点击操作

    - 然后,使用`getevent`命令找到触摸屏的设备路径,如`getevent -l`。 - 接着,构造`sendevent`命令来模拟点击。例如,模拟在(100, 200)位置点击,可以这样写: ``` sendevent /dev/input/eventX 3 0 0 # EV_SYN...

    Android面面观——Android事件处理下(按键、触摸屏

    最后,这些事件由`frameworks/base/services/java/com/android/server/WindowManagerService.java`中的输入事件分发线程进行分发,将事件分发到正确的窗口。 #### 三、触摸屏事件处理流程 触摸屏事件处理流程与...

    Android键盘映射

    - **Java层**:在`frameworks/base/services/java/com/android/server/KeyInputQueue.java`文件中,有一个专门的线程不断地读取JNI层传递过来的事件,并将其存入事件队列中供后续处理。 4. **应用层**:最后,应用...

Global site tag (gtag.js) - Google Analytics