Android getevent用法详解
TP驱动调试分享——基于Qualcomm SDM710平台Android9.0,TP 采用I2C方式和CPU进行通信_高通tp驱动_永恒小青青的博客-CSDN博客
手机触摸屏扫描信号实测波形_触摸屏报点率_AirCity123的博客-CSDN博客
如何查看TP报点率?触摸TP查看详细信息
adb shell
getevent -r
getevent 指令用于获取 input 输入事件,比如获取按键上报信息、获取触摸屏上报信息等。
指令源码路径:/system/core/toolbox/getevent.c
getevent -h:查看 getevent 帮助信息
root@rk3288:/ # getevent -h getevent -h Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]-t: show time stamps-n: don't print newlines-s: print switch states for given bits-S: print all switch states-v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64)-d: show HID descriptor, if available-p: show possible events (errs, dev, name, pos. events)-i: show all device info and possible events-l: label event types and names in plain text-q: quiet (clear verbosity mask)-c: print given number of events then exit-r: print rate events are received
getevent:显示当前有那些输入设备,数量与 /dev/input 目录下相同
root@rk3288:/ # getevent getevent add device 1: /dev/input/event3name: "ILITEK Multi-Touch-V3020" add device 2: /dev/input/event2name: "PC Camera" add device 3: /dev/input/event1name: "gsensor" add device 4: /dev/input/event0name: "rk29-keypad"root@rk3288:/ # ls /dev/input ls /dev/input event0 event1 event2 event3
查看默认上报数据
root@rk3288:/ # getevent /dev/input/event3 getevent /dev/input/event3 0003 0039 00000004 0003 0035 00002324 0003 0036 00001a9f 0001 014a 00000001 0003 0000 00002324 0003 0001 00001a9f 0000 0000 00000000 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000
-t:显示时间戳
// 读取 event3 数据(触摸屏) root@rk3288:/ # getevent -t /dev/input/event3 getevent -t /dev/input/event3 [ 1141.248434] 0003 0039 0000000e [ 1141.248434] 0003 0035 00002cd4 [ 1141.248434] 0003 0036 00001a09 [ 1141.248434] 0001 014a 00000001 [ 1141.248434] 0003 0000 00002cd4 [ 1141.248434] 0003 0001 00001a09 [ 1141.248434] 0000 0000 00000000 [ 1141.322181] 0003 0039 ffffffff [ 1141.322181] 0001 014a 00000000 [ 1141.322181] 0000 0000 00000000
-n:不换行打印
root@rk3288:/ # getevent -n /dev/input/event3 getevent -n /dev/input/event3 0003 0039 000000020003 0035 00002f000003 0036 00001a4e0001 014a 000000010003 0000 00002f000003 0001 00001a4e0000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000030003 0035 00002e880003 0036 000019b80001 014a 000000010003 0000 00002e880003 0001 000019b80000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000040003 0035 00002d700003 0036 00001a000001 014a 000000010003 0000 00002d700003 0001 00001a000000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000050003 0035 00002d080003 0036 000019a50001 014a 000000010003 0000 00002d080003 0001 000019a50000 0000 000000000003 0039 ffffffff0001 014a 000000000000
-s:显示指定位的开关状态
root@rk3288:/ # getevent -s5 /dev/input/event3 getevent -s5 /dev/input/event3 0000
-S:显示所有位的开关状态
root@rk3288:/ # getevent -S /dev/input/event3 getevent -S /dev/input/event3 0000
-v:根据 mask 值显示相关信息,执行后会一直显示上报数据
errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64
默认显示 dev| name| info| vers = 30;
root@rk3288:/ # getevent -v /dev/input/event3 getevent -v /dev/input/event3 add device 1: /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110name: "ILITEK Multi-Touch-V3020"location: "usb-ff540000.usb-1.3/input0"id: ""version: 1.0.1root@rk3288:/ # getevent -v30 /dev/input/event3 getevent -v30 /dev/input/event3 add device 1: /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110name: "ILITEK Multi-Touch-V3020"location: "usb-ff540000.usb-1.3/input0"id: ""version: 1.0.1root@rk3288:/ # getevent -v2 /dev/input/event3 getevent -v2 /dev/input/event3 add device 1: /dev/input/event3root@rk3288:/ # getevent -v8 /dev/input/event3 getevent -v8 /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110location: "usb-ff540000.usb-1.3/input0"id: ""root@rk3288:/ # getevent -v16 /dev/input/event3 getevent -v16 /dev/input/event3version: 1.0.1root@rk3288:/ # getevent -v32 /dev/input/event3 getevent -v32 /dev/input/event3events:KEY (0001): 014aABS (0003): 0000 : value 12008, min 0, max 16384, fuzz 0, flat 0, resolution 310001 : value 5790, min 0, max 9600, fuzz 0, flat 0, resolution 32002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 00035 : value 0, min 0, max 16384, fuzz 0, flat 0, resolution 310036 : value 0, min 0, max 9600, fuzz 0, flat 0, resolution 320039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
-d:如果设备可用,显示设备隐藏的描述信息
-p:显示设备支持的事件类型和编码方式
root@rk3288:/ # getevent -p /dev/input/event3 getevent -p /dev/input/event3 add device 1: /dev/input/event3name: "ILITEK Multi-Touch-V3020"events:KEY (0001): 014aABS (0003): 0000 : value 13084, min 0, max 16384, fuzz 0, flat 0, resolution 310001 : value 5284, min 0, max 9600, fuzz 0, flat 0, resolution 32002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 00035 : value 0, min 0, max 16384, fuzz 0, flat 0, resolution 310036 : value 0, min 0, max 9600, fuzz 0, flat 0, resolution 320039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0input props:INPUT_PROP_DIRECT
-i:显示设备的所有信息和支持的事件,比 -p 显示更多信息
root@rk3288:/ # getevent -i /dev/input/event3
-l:以文本形式输出事件类型和名称,比 -t 更清楚直观
// 读取 event3 数据(触摸屏) root@rk3288:/ # getevent -l /dev/input/event3 getevent -l /dev/input/event3 // 事件类型 事件码 事件值 EV_ABS ABS_MT_TRACKING_ID 0000000f EV_ABS ABS_MT_POSITION_X 00002bbc EV_ABS ABS_MT_POSITION_Y 00001b6d EV_KEY BTN_TOUCH DOWN EV_ABS ABS_X 00002bbc EV_ABS ABS_Y 00001b6d EV_SYN SYN_REPORT 00000000 EV_ABS ABS_MT_TRACKING_ID ffffffff EV_KEY BTN_TOUCH UP EV_SYN SYN_REPORT 00000000
-q:暂时不会使用
-c:打印固定数量的事件并退出
root@rk3288:/ # getevent -c 10 /dev/input/event3 getevent -c 10 /dev/input/event3 0003 0039 00000012 0003 0035 000038a4 0003 0036 000008f5 0001 014a 00000001 0003 0000 000038a4 0003 0001 000008f5 0000 0000 00000000 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000
-r:显示事件上报速率
// 检测触摸屏报点速率 root@rk3288:/ # getevent -r /dev/input/event3 getevent -r /dev/input/event3 0003 0039 00000015 0003 0035 000030d8 0003 0036 00001954 0001 014a 00000001 0003 0000 000030d8 0003 0001 00001954 0000 0000 00000000 rate 0 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000 rate 9
参数可以组合使用,一次性查看需要的触摸屏信息
root@rk3288:/ # getevent -tlr /dev/input/event3 getevent -tlr /dev/input/event3 [ 2514.550104] EV_ABS ABS_MT_TRACKING_ID 0000001c [ 2514.550104] EV_ABS ABS_MT_POSITION_X 00002dac [ 2514.550104] EV_ABS ABS_MT_POSITION_Y 000018ca [ 2514.550104] EV_KEY BTN_TOUCH DOWN [ 2514.550104] EV_ABS ABS_X 00002dac [ 2514.550104] EV_ABS ABS_Y 000018ca [ 2514.550104] EV_SYN SYN_REPORT 00000000 rate 0 [ 2514.638845] EV_ABS ABS_MT_TRACKING_ID ffffffff [ 2514.638845] EV_KEY BTN_TOUCH UP [ 2514.638845] EV_SYN SYN_REPORT 00000000 rate 11
相关文章:
Android getevent用法详解
TP驱动调试分享——基于Qualcomm SDM710平台Android9.0,TP 采用I2C方式和CPU进行通信_高通tp驱动_永恒小青青的博客-CSDN博客 手机触摸屏扫描信号实测波形_触摸屏报点率_AirCity123的博客-CSDN博客 如何查看TP报点率?触摸TP查看详细信息 adb shell ge…...
面试题-TS(二):如何定义 TypeScript 中的变量和函数类型?
面试题-TS(二):如何定义 TypeScript 中的变量和函数类型? 一、 变量类型的定义 在TypeScript中,我们可以使用冒号(:)来指定变量的类型。以下是一些常见的变量类型: 布尔类型(boolean):表示tr…...
【4】-多个User执行测试
目录 一个locustfile中有多个User 使用--class-picker指定执行 小结 一个locustfile中有多个User from locust import task, HttpUserclass User01(HttpUser):weight 3 # 权重host https://www.baidu.comtaskdef user_01_task(self):self.client.get(url/, nameuser_01_…...
基于Eisvogel模板的Markdown导出PDF方法
Requirements 模板地址:Wandmalfarbe/pandoc-latex-template Pandoc:Pandoc官网 Latex环境:例如TexLive Pandoc参数 --template"模板存放位置" --listings --pdf-enginexelatex --highlight-style kate -V CJKmainfontSimSun -V C…...
linux服务器安装redis
一、安装下载 下载安装参考文章 下载安装包地址:https://download.redis.io/releases/ 亲测有效,但是启动的步骤有一些问题 安装完成!!! 二、启动 有三种启动方式 默认启动指定配置启动开机自启 说明:…...
QT中信号和槽本质
信号 信号的本质就是事件 在QT中信号的发出者是某个实例化的类对象,对象内部可以进行相关事件的检测。 槽 槽函数是一类特殊的功能的函数,也可以作为类的普通成员函数来使用 在Qt中槽函数的所有者也是某个类的实例对象。 信号和槽的关系 在Qt中我…...
layui各种事件无效(例如表格重载或 分页插件按钮失效)的解决方法
下图是我一个系统的操作日志,在分页插件右下角嵌入了一个导出所有数据的按钮 ,代码没有任何问题,点击导出按钮却失效 排查之后,发现表格标签table定义了ID又定义了lay-filter,因我使用的layui从2.7.6升级到2.8.11&…...
flutter开发实战-父子Widget组件调用方法
flutter开发实战-父子Widget组件调用方法 在最近开发中遇到了需要父组件调用子组件方法,子组件调用父组件的方法。这里记录一下方案。 一、使用GlobalKey 父组件使用globalKey.currentState调用子组件具体方法,子组件通过方法回调callback方法调用父组…...
策略模式的实现与应用:掌握灵活算法切换的技巧
文章目录 常用的设计模式有以下几种:一.创建型模式(Creational Patterns):二.结构型模式(Structural Patterns):三.行为型模式(Behavioral Patterns):四.并发…...
当ChatGPT应用在汽车行业,具体有哪些场景?
ChatGPT有潜力彻底改变汽车行业并将其提升到新的高度。在ChatGPT的加持下,该行业的多个领域都将取得重大变化。 利用ChatGPT作更高级的虚拟助理 你可能用过现有的虚拟助理,它们一系列的回复有时候让人不得不感叹一句“人工智障”!然而&a…...
行为型-中介者模式(Mediator Pattern)
概述 中介者模式(Mediator Pattern)是一种行为型设计模式,它通过封装一系列对象之间的交互方式,使这些对象能够互相通信而不需要直接相互引用。中介者模式通过集中控制对象的交互,使得对象之间的耦合度降低࿰…...
Kibana+Prometheus+node_exporter 监控告警部署
下载好三个软件包 一、prometheus安装部署 1、解压 linxxubuntu:~/module$ tar -xvf prometheus-2.45.0-rc.0.linux-amd64.tar.gz 2、修改配置文件的IP地址 # my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is ever…...
【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式)
【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式) 一、工厂模式 工厂模式是一种众所周知的设计模式,广泛应用于软件工程领域,用于抽象创建特定对象的过程。 优点:可以解决创建多个类似对象的…...
未来的算法备案法规:创新和安全如何兼顾?
随着科技的快速发展,算法正逐步渗透到我们生活的各个方面,从推荐引擎到自动驾驶,从医疗诊断到金融交易,这一现象既充满希望,也充满了挑战。其中一个关键的挑战就是如何设计和实施有效的算法备案法规,以促进…...
pycharm 使用远程服务器 jupyter (本地jupyter同理)
1. 远程服务器miniconda 环境中创建jupyter环境 # 1. 激活环境 conda activate envname#2. 在环境中安装jupyter pip install jupyter # 或者 conda install jupyter#3. 生成jupyter_notebook_config.py文件 jupyter notebook --generate-config#4. 设置密码 jupyter noteboo…...
leetcode 376. 摆动序列
2023.7.28 本题思路是定义一个 direct变量记录上一次摆动是上坡还是下坡 。 然后在一个for循环中循环判断当前摆动和上一次摆动是否一致,如果不一致则视为一次摆动。 如果前后元素值相等得话,直接continue进入下一次循环。 下面看代码: clas…...
【图像处理】使用自动编码器进行图像降噪(改进版)
阿里雷扎凯沙瓦尔兹 一、说明 自动编码器是一种学习压缩和重建输入数据的神经网络。它由一个将数据压缩为低维表示的编码器和一个从压缩表示中重建原始数据的解码器组成。该模型使用无监督学习进行训练,旨在最小化输入和重建输出之间的差异。自动编码器可用于降维、…...
MySQL大数据量分页查询方法及其优化
---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适应场景: 适用于数据量较少的情况(元组百/千级) ---原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). L…...
dataTable转成对象、json、list
datatable转换成list集合 public static T TableToEntity<T>(DataTable dt, int rowindex 0, bool isStoreDB true){Type type typeof(T);T entity Activator.CreateInstance<T>();if (dt null){return entity;}DataRow row dt.Rows[rowindex];PropertyInfo…...
ubuntu环境安装centos7虚拟机网络主机不可达,ping不通
【NAT模式下解决】1.首先vi /etc/sysconfig/network-scripts/ifcfg-ens33检查ONBOOTyes,保存 2.输入systemctl restart network命令重启网关...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
