三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

如何使用Minitouch轻松模拟Android多点触控事件?5分钟快速上手教程

如何使用Minitouch轻松模拟Android多点触控事件?5分钟快速上手教程

如何使用Minitouch轻松模拟Android多点触控事件?5分钟快速上手教程

【免费下载链接】minitouchMinimal multitouch event producer for Android.项目地址: https://gitcode.com/gh_mirrors/mi/minitouch

Minitouch是一款轻量级的Android多点触控事件生成工具,它通过Socket接口实现对Android设备的触控模拟,无需Root权限即可在大多数Android设备上运行。无论是自动化测试还是开发调试,Minitouch都能提供精准的多点触控支持,尤其适合HTML5多点触控事件的测试场景。

📋 准备工作:环境搭建与依赖安装

要开始使用Minitouch,你需要准备以下工具:

  • Android设备(建议Android 2.3.3及以上版本)
  • ADB调试工具
  • Android NDK(用于编译源码,推荐NDK Revision 10)

首先克隆项目仓库到本地:

git clone https://gitcode.com/gh_mirrors/mi/minitouch cd minitouch

🔨 快速编译:一键构建可执行文件

Minitouch提供了简化的编译流程,通过以下步骤即可完成构建:

  1. 初始化子模块(包含libevdev依赖):
git submodule init git submodule update
  1. 执行NDK编译
ndk-build

编译完成后,可执行文件会生成在libs目录下,根据设备架构自动生成对应版本(如libs/arm64-v8a/minitouch)。

🚀 设备部署:3步完成安装与启动

第1步:检测设备架构

连接Android设备并开启USB调试,执行以下命令获取设备ABI:

ABI=$(adb shell getprop ro.product.cpu.abi | tr -d '\r')

第2步:推送可执行文件

根据检测到的ABI推送对应二进制文件:

adb push libs/$ABI/minitouch /data/local/tmp/

⚠️ 注意:Android 4.1(SDK 16)以下设备需使用minitouch-nopie版本,可通过run.sh脚本自动适配

第3步:启动服务并建立连接

  1. 在设备上启动minitouch服务:
adb shell /data/local/tmp/minitouch
  1. 设置端口转发:
adb forward tcp:1111 localabstract:minitouch
  1. 通过本地端口连接服务:
nc localhost 1111

🎮 核心命令:5分钟掌握触控协议

连接成功后,首先会收到设备元数据,包含最大触点数、坐标范围等信息:

v 1 # 协议版本 ^ 2 320 480 255 # 最大触点数、X/Y坐标范围、压力值范围 $ 9876 # 进程ID

基础触控命令

命令格式说明示例
d <触点ID> <x> <y> <压力>按下触点d 0 100 200 50
m <触点ID> <x> <y> <压力>移动触点m 0 150 250 50
u <触点ID>抬起触点u 0
c提交事件c
r重置所有触点r
w <毫秒>等待指定时间w 100

💡 实用示例:常见触控场景实现

1. 单点点击

d 0 100 200 50 # 在(100,200)位置按下触点0 c # 提交事件 u 0 # 抬起触点0 c # 提交事件

2. 多点同时点击

d 0 100 200 50 # 触点0按下 d 1 300 400 50 # 触点1按下 c # 同时提交两个触点 u 0 # 抬起触点0 u 1 # 抬起触点1 c # 提交抬起事件

3. 滑动操作

d 0 50 50 50 # 起始点按下 c m 0 100 50 50 # 移动到(100,50) c m 0 150 50 50 # 移动到(150,50) c u 0 # 结束滑动 c

4. 双指缩放( pinch )

d 0 50 250 50 # 触点0在左下角 d 1 250 50 50 # 触点1在右上角 c m 0 100 200 50 # 双指向内移动 m 1 200 100 50 c m 0 150 150 50 # 继续移动 m 1 150 150 50 c u 0 u 1 c

⚠️ 注意事项与故障排除

  1. Android 10+兼容性:需配合STFService使用,具体参考jni/minitouch/Android.mk中的配置说明

  2. 屏幕坐标映射:触控坐标可能与实际屏幕分辨率不同,建议使用百分比计算坐标

  3. 连接问题:若nc localhost 1111连接失败,检查ADB转发是否正常:

adb forward --list | grep minitouch
  1. 设备冻结处理:错误的事件序列可能导致屏幕无响应,可通过adb reboot重启设备

📚 进阶资源

  • 完整命令参考:README.md
  • 贡献指南:CONTRIBUTING.md
  • 源码实现:jni/minitouch/minitouch.c

通过以上步骤,你已经掌握了Minitouch的核心使用方法。无论是自动化测试、游戏脚本开发还是多点触控应用调试,Minitouch都能提供高效可靠的触控模拟能力。开始尝试用代码控制Android设备的触控吧!

【免费下载链接】minitouchMinimal multitouch event producer for Android.项目地址: https://gitcode.com/gh_mirrors/mi/minitouch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表