当前位置: 首页 > news >正文

Android 使用python统计getevent按键

1、连接ADB
2、开启脚本

作用:
统计时间内相应的event数量

python代码:

import subprocess
import redef parse_getevent_output():# 启动getevent进程getevent_process = subprocess.Popen(['adb', 'shell', 'getevent', '-t', '-l'], stdout=subprocess.PIPE,stderr=subprocess.PIPE, text=True)event_count = 0  # 事件计数器start_time = 0  # 记录开始时间last_timestamp = 0  # 用于存储上一个事件的时间戳targetnum = 110try:while True:line = getevent_process.stdout.readline()if not line:break  # 如果没有输出了,跳出循环# 使用正则表达式匹配事件的时间戳、类型、代码和值match = re.match( r'\[(\d+\.\d+)\] (\S+): (\w+) +(\w+) +([0-9A-Fa-f]+)', re.sub(r'\[\s+', '[', line).strip())if match:timestamp = match.group(1)device_path = match.group(2)event_type = match.group(3)event_code = match.group(4)event_value = match.group(5)# print(f"Timestamp: {timestamp}")# print(f"Device Path: {device_path}")# print(f"Event Type: {event_type}")# print(f"Event Code: {event_code}")# print(f"Event Value: {event_value}")if start_time == 0 :start_time = float(timestamp)# 检查是否已经过了一秒钟if float(timestamp) - start_time >= 1.0:# 打印一秒钟内的事件数量print(f"your printl data")event_count = 0  # 重置事件计数器start_time = float(timestamp)  # 重置开始时间if event_code == "SYN_REPORT" :event_count += 1  # 增加事件计数# else:#     print(f"{line.strip()}")except KeyboardInterrupt:print("\nScript terminated by user.")  # 用户中断脚本finally:getevent_process.terminate()  # 确保进程被终止print("Getevent process terminated.")if __name__ == "__main__":parse_getevent_output()

相关文章:

Android 使用python统计getevent按键

1、连接ADB 2、开启脚本 作用: 统计时间内相应的event数量 python代码: import subprocess import redef parse_getevent_output():# 启动getevent进程getevent_process subprocess.Popen([adb, shell, getevent, -t, -l], stdoutsubprocess.PIPE,st…...

NVIDIA jetson查看资源占用情况,打印/保存资源使用情况日志

1.jtop jtop这个一般都有安装,只能实时查看 安装方式为 sudo -H pip install jetson-stats运行就是直接 jtop 即可 2.tegrastats 这个是jetson自带的工具,可以保存日志到文件,用于测试资源占用有无异常比较好用,如果资源有异常…...

ssm102“魅力”繁峙宣传网站的设计与实现+vue(论文+源码)_kaic

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;“魅力”繁峙宣传网站系统当然也不能排除在外,随着网络技术的不断成熟,带动了“魅力”繁峙宣传网站系统的发展&#x…...

逐行加载 HTML 内容并实时显示效果:使用 wxPython 的实现

这篇博客中,我们将详细分析如何使用 wxPython 构建一个简单的桌面应用程序,用于逐行加载并显示 HTML 文件的内容,并在加载完成后通过浏览器组件呈现最终页面。通过该应用,我们可以体验到逐行加载 HTML 内容的视觉效果,…...

UE4 Cook 从UAT传递参数给UE4Editor

需求 一句Cook的命令如下: ${EnginePath}/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -project${ClientPath}/${ProjectName}.uproject -noP4 -platformIOS -cooksinglepackage -client -clientconfig${CookConfig} -iterate -skipbuild -nocompile -NoMutex…...

【学习日记】notebook添加JAVA支持

作者是个大学生 这个专栏主要收集课时常用的软件 以及女朋友上课用的软件的教程 新开了gitcode 用于上传安装包 环境说明 windows11 java23.0.1 ijava1.1.2 Anaconda-2024.02 需提前配置好java环境 本篇仅对添加支持进行说明 ijava的GitCode链接NotebookAddsSupportForJava:no…...

以太坊系地址衍生算法分层确定性生成逻辑

文章目录 一、前言1.1 衍生算法生成的私钥1.2 随机生成的私钥二、私钥生成及私钥提取2.1 golang如何使用衍生算法生成私钥,然后为用户生成地址2.1.1 实现步骤2.1.2 golang代码示例2.1.3 代码说明2.2 地址交易时,如何提取地址私钥2.2.1 私钥恢复说明2.2.2 golang代码通过助记词…...

【Unity】ScriptableObject的应用:利用配方合成新物体

前一篇已经使用ScriptableObject(SO)类配置可放置物体,本篇探索更多的SO类应用场景。 需求分析 将若干指定物体放在工作台上,可以生成新的物体。 成果展示 Scene部分 准备工作台,放在工作台上的物体全部放在指定PlacedObjects空物体下。 …...

31DNS设置

每天五分钟学Linux | 第三十一课:DNS设置 大家好!欢迎再次来到我们的“每天五分钟学Linux”系列教程。在前面的课程中,我们学习了如何配置Linux系统的IP地址。今天,我们将探讨如何设置DNS(域名系统)&#…...

使用Docker快速部署FastAPI Web应用

Docker是基于 Linux 内核的cgroup、namespace以及 AUFS 类的Union FS 等技术,对进程进行封装隔离,一种操作系统层面的虚拟化技术。Docker中每个容器都基于镜像Image运行,镜像是容器的只读模板,容器是模板的一个实例。镜像是分层结…...

全面掌握Spring Boot异常处理:策略与实践

标题:全面掌握Spring Boot异常处理:策略与实践 引言 在Spring Boot应用开发中,异常处理是一个关键环节,它不仅关系到应用的稳定性,也直接影响用户体验。本文将详细介绍如何在Spring Boot中实现异常处理,包…...

【LeetCode】【算法】11. 盛最多水的容器

LeetCode 11. 盛水最多的容器 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 思…...

ES6代理和反射新特性,详细讲解

代理与反射 es6新增了代理和反射特性&#xff0c;这两个特性为开发者提供了拦截并向基本操作嵌入额外行为的能力。 代理基础 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta charset"UTF-8"&g…...

vue计算属性 初步使用案例

<template><div><h1>购物车</h1><div v-for"item in filteredItems" :key"item.id"><p>{{ item.name }} - {{ item.price }} 元</p><input type"number" v-model.number"item.quantity"…...

大模型时代,呼叫中心部门如何建设一套呼出机器人系统?

大模型时代&#xff0c;呼叫中心部门如何建设一套呼出机器人系统&#xff1f; 作者&#xff1a;开源呼叫中心系统 FreeIPCC&#xff0c;Github地址&#xff1a;https://github.com/lihaiya/freeipcc 在大模型时代&#xff0c;呼叫中心部门建设一套呼出机器人系统需要综合考虑技…...

使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面

今天上线的时候发现系统不同显示好像不一样&#xff0c;苹果手机打开的时候是正常的&#xff0c;但是一旦用安卓手机打开就会出现label不置顶的情况。尝试了很多种办法&#xff0c;也在官方查看了map相关的文档&#xff0c;发现并没有给label设置zIndex的属性&#xff0c;只看到…...

力扣 LeetCode 142. 环形链表II(Day2:链表)

解题思路&#xff1a; 使用set判断是否重复添加&#xff0c;如果set加入不进去证明之前到达过该节点&#xff0c;有环 public class Solution {public ListNode detectCycle(ListNode head) {Set<ListNode> set new HashSet<>();ListNode cur head;while (cur …...

用MVVM设计模式提升WPF开发体验:分层架构与绑定实例解析

MVVM&#xff08;Model-View-ViewModel&#xff09;是一种架构模式&#xff0c;广泛应用于现代前端开发&#xff0c;尤其是在微软的WPF&#xff08;Windows Presentation Foundation&#xff09;应用程序中。它旨在通过将视图&#xff08;UI&#xff09;与业务逻辑&#xff08;…...

C++中的动态断言和静态断言

C中包含动态断言&#xff08;assert&#xff09;和静态断言&#xff08;static_assert&#xff09;&#xff0c;下面分别分析各自的用法。 1.动态断言&#xff08;assert&#xff09; assert 是一个宏&#xff0c;在预处理阶段不生效&#xff0c;在运行阶段才起作用&#xff0…...

运算放大器的学习(一)输入阻抗

输入阻抗 最近需要对运算放大器进行学习&#xff0c;我们后面逐一对其参数进行了解。 首先了解下输入阻抗。 放大电路技术指标测试示意图&#xff1a; 输入电阻&#xff1a; 从放大电路的输入端看进去的等效电阻称为放大电路的输入电阻&#xff0c;如上图&#xff0c;此处考虑…...

slambook-en学习路线图:从初学者到专家的10个关键步骤

slambook-en学习路线图&#xff1a;从初学者到专家的10个关键步骤 【免费下载链接】slambook-en The English version of 14 lectures on visual SLAM. 项目地址: https://gitcode.com/gh_mirrors/sl/slambook-en 想要掌握视觉SLAM技术但不知从何开始&#xff1f;&#…...

macOS Homebrew 安装 MySQL

一、安装 MySQL1. 安装完整版 MySQL&#xff08;服务端全套客户端&#xff09;# 安装最新版 MySQL brew install mysql说明&#xff1a;brew install mysql 包含服务端 mysqld 命令行客户端 mysql自带工具&#xff1a;mysql、mysqldump、mysqladmin、mysqlshow 等常用运维工具…...

Ladybug天气数据分析工具:建筑环境设计的智能助手

Ladybug天气数据分析工具&#xff1a;建筑环境设计的智能助手 【免费下载链接】ladybug &#x1f41e; Core ladybug library for weather data analysis and visualization 项目地址: https://gitcode.com/gh_mirrors/lad/ladybug Ladybug是一个功能强大的Python天气数…...

JS 异步 从零讲(大白话 + 真实场景 + 可运行案例)

按顺序&#xff1a;回调函数 → Promise → async/await&#xff0c;工作最常用&#xff0c;直接上手。1. 回调函数&#xff08;最原始&#xff0c;缺点&#xff1a;回调地狱&#xff09;2. Promise&#xff08;解决回调地狱&#xff0c;链式调用&#xff09;new Promise((reso…...

企业级MoE架构代码智能模型:DeepSeek-Coder-V2技术架构深度解析

企业级MoE架构代码智能模型&#xff1a;DeepSeek-Coder-V2技术架构深度解析 【免费下载链接】DeepSeek-Coder-V2 DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Coder-…...

Python盲水印终极指南:3个简单步骤保护你的数字版权

Python盲水印终极指南&#xff1a;3个简单步骤保护你的数字版权 【免费下载链接】BlindWatermark 使用盲水印保护创作者的知识产权using invisible watermark to protect creators intellectual property 项目地址: https://gitcode.com/gh_mirrors/bl/BlindWatermark 在…...

免费压缩包密码恢复工具:ArchivePasswordTestTool终极指南

免费压缩包密码恢复工具&#xff1a;ArchivePasswordTestTool终极指南 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经因为忘记压…...

B2B制造业如何利用GEO优化获得精准询盘:实战指南

B2B制造业如何利用GEO优化获得精准询盘&#xff1a;实战指南 摘要 &#xff1a;随着AI搜索渗透率超过85%&#xff0c;B2B制造业的获客逻辑正在被重塑。本文详细介绍GEO&#xff08;Generative Engine Optimization&#xff09;优化技术如何帮助工业品、机械配件企业获得精准询盘…...

保姆级教程:用Python手把手复现FastICA算法,搞定信号盲分离

从零实现FastICA&#xff1a;Python实战信号盲源分离 想象一下&#xff0c;你正站在一个嘈杂的鸡尾酒会现场&#xff0c;四周环绕着此起彼伏的交谈声、玻璃杯碰撞声和背景音乐。神奇的是&#xff0c;人类大脑能够自动聚焦于特定对话——这种能力在信号处理领域被称为"盲源…...

终极OpenHTMLtoPDF教程:5分钟构建专业PDF生成器

终极OpenHTMLtoPDF教程&#xff1a;5分钟构建专业PDF生成器 【免费下载链接】openhtmltopdf An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF/UA)!…...