@devicefarmer/minitouch-prebuilt

中文文档
1.3.3发布于 2026/11/07Apache-2.0零依赖构建来源已验证近 30 天下载 4260

预建的二进制迷你口袋.

中文使用文档
文档目录10 节
  1. 大楼
  2. 运行
  3. 对Android 10和上
  4. 运行迷你触摸
  5. 使用量
  6. 可从套接字读取
  7. 可写入套接字
  8. 实例
  9. 捐款
  10. 许可证

小型触摸

Minitouch提供了一个套接字接口来触发Android设备上的多点触摸事件和手势. 如果开始于 亚行 虽然任何版本都应该奏效。 唯一的例外是SDK 20 (Android Wear),它确实需要根. 我们测试的最低SDK水平为10(即Android 2.3.3.

它在HTML5多触摸事件上特别有效,与Android不同 猴类 工具,允许您访问整个屏幕(包括任何软件按钮).

大楼

所需建筑 印度,并已知至少与NDK修订版10(2014年7月)合作. 注意NDK 15不再支持Android SDK 14级以下的任何东西,这意味着二进制可能或不会在旧设备上工作(如Android 2.3).

我们包括 利贝夫德夫 作为Git子模块, 所以首先要确定你已经拿了它.

git submodule init
git submodule update

这么说来,这只是一个问题 引用 ndk-build。 。 。 .

ndk-build

你现在应该有二进制了 ./libs。 。 。 .

运行

你需要这样 构建 先说.

对Android 10和上

由于新的安全政策,Minitouch默认无法处理Android 10. 工作范围是将触摸命令转发给STFService. 如果您正在使用 minitouch 独立( 没有 STF ) , 请在运行 minitouch 之前, 注意操作此服务和代理 。 关于如何做到这一点的说明 这里。 。 。 .

运行迷你触摸

然后可以使用包含 运行。 sh 在设备上运行右二进制的脚本 。 如果您有多个设备连接, 设置 ANDROID_SERIAL 在运行脚本之前.

要手动运行, 您必须首先找出您的设备支持的 ABI :

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

请注意,由于Android shell总是用CRLF来结束行,所以你必须像上面一样去掉CR,否则其他命令不会正常工作.

请注意,如果你有多个设备连接,设置 $ANDROID_SERIAL 这会让事情变得容易一些,因为你不需要具体说明 -s <serial> 每次选择.

现在,将相应的二进制推入设备:

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

请注意,对于 SDK < 16, 您必须使用 minitouch-nopie 未执行的可执行文件 派伊(PIE) 支助。 检查 运行。 sh 用于脚本示例.

此时,检查一下用法可能是有益的:

adb shell /data/local/tmp/minitouch -h

目前,这种产出应大致如下:

Usage: /data/local/tmp/minitouch [-h] [-d <device>] [-n <name>] [-v] [-i] [-f <file>]
  -d <device>: Use the given touch device. Otherwise autodetect.
  -n <name>:   Change the name of of the abtract unix domain socket. (minitouch)
  -v:          Verbose output.
  -i:          Uses STDIN and doesn't start socket.
  -f <file>:   Runs a file with a list of commands, doesn't start socket.
  -h:          Show help.

因此,我们可以简单地在没有任何选项的情况下运行二进制,它将尝试检测一个合适的设备,并开始在抽象的unix域插座上收听. 或者,你可以开始微调 -i 选项和输入命令,或 -f <file> 从文件中读取命令.

adb shell /data/local/tmp/minitouch

如果您选择使用套接字, 您需要单独连接 。 除非有错误消息,二进制退出,否则我们现在应该在设备上打开一个服务器. 现在,我们只需要创造一个本地的前进,这样我们才能与之连接.

adb forward tcp:1111 localabstract:minitouch

现在可以使用本地端口连接到套接字. 注意目前 一次只支持一个连接 . 这主要是因为否则提交被破坏的事件流太容易了,混淆了驱动程序,并可能冻结设备直到重启(顺便说一句,你最有可能与 adb reboot (因为屏幕没有反应) 无论如何,让我们连接.

nc localhost 1111

下一节解释如何与"迷你"互动.

使用量

假设您现在已打开连接到小接头套接头, 或者您正在运行 stdin/ file 模式下的小接头 。 如果没有,就跟着 指令 见上文.

迷你管协议基于LF-相隔行. 每个行是一个单独的命令,每个行以一个指定命令类型的ASCII字母开始. 然后遵循与命令相分离的参数.

当您打开连接到插座时, 您会收到一个带有元数据的信头, 您需要从插座读取。 除此以外,将没有任何答复.

当连接关闭( 或输入文件结束, 以 stdin/ file 模式) 时, minitouch 将仍然下移的任何联系人抬起, 好像您已经发送过 r。这仅适用于微触控驱动触摸设备本身,而不是当它向 STF Service 转发命令时 minitouchagent。 。 。 .

可从套接字读取

v <version>

示例输出 : v 1

协议版. 此行被保证在输出中位居第一. 版本之间的参数布局可能会有变化,所以您可能想要检查您的代码是否支持此版本 .

^ <max-contacts> <max-x> <max-y> <max-pressure>

示例输出 : ^ 2 320 480 255

如触摸设备所报告,这给你上方的参数范围。 如果您使用更大的值, 您很可能混淆驱动程序( 可能冻结屏幕, 需要重启) 或者该值会被忽略 .

同样重要的是要注意,最大X和Y坐标可能,但通常并不匹配显示大小. 你需要找出一个良好的方法来映射 显示坐标,如果需要的话, 可能通过使用比例的屏幕坐标.

$ <pid>

示例输出 : $ 9876

这是迷你触摸过程的短片。 如果您想要杀死进程, 有用 .

可写入套接字

c

示例输入 : c

提交当前更改的触摸集, 使其在屏幕上播放 。 请注意,在你做出承诺之前,不会发生任何明显的事件.

不需要委员会列出所有活动联系人 。 与上一州相变已足.

多接触触碰也一样 联系人可能单独行动,甚至同样行动。 如果一个联系人移动,则不需要其他联系人.

单项承诺的接触顺序也不重要。 例如,您可以在联系人0之前列出联系人5.

但请注意,您不能有一个以上 d, (中文(简体) ), m 或者说 u 相同项目 <contact> 在一个承诺.

r

示例输入 : r

通过创建适当的触摸器重置当前触摸集的时态 u 事件,然后犯下。 由于事件序列无效可能导致屏幕被冻结,如果您对事件的完整性有任何疑问,您应当呼吁重置. 例如,两个 touchstart 同一联系人的事件非常可疑,很可能意味着你失去了一个 touchend 不知何故的事件.

我们试图自动丢弃明显不合秩序的事件,但有时这还不够.

如果屏幕被冻结,你就必须重启设备. 仔细使用不会发生这种情况.

d <contact> <x> <y> <pressure>

示例输入 : d 0 10 10 50

将触摸到的联系人列表 <contact> 时间 <x>,<y> 与 <pressure> 下一个任务的压力.

您不能有一个以上 d, (中文(简体) ), m 或者说 u 相同项目 <contact> 在一个承诺.

m <contact> <x> <y> <pressure>

示例输入 : m 0 10 10 50

安排联系人的触摸动作 <contact> 时间 <x>,<y> 与 <pressure> 下一个任务的压力.

您不能有一个以上 d, (中文(简体) ), m 或者说 u 相同项目 <contact> 在一个承诺.

u <contact>

示例输入 : u 0

计划触摸联系人 <contact>如果您需要联系人先移动,请使用组合 m 财务报告和审定财务报表 u 由承诺分离.

您不能有一个以上 d, (中文(简体) ), m 或者说 u 相同项目 <contact> 在一个承诺.

w <ms>

示例输入 : w 50

马上等 <ms> 毫秒长. 将不执行队列或做其他任何事情.

实例

10,10,50 压力使用单一接触.

d 0 10 10 50
c
u 0
c

长打(10, 10),50个压力使用单接接.

d 0 10 10 50
c
<wait in your own code>
u 0
c

搭载(10,10)和(20,20)同时使用两个接头的50个压力.

d 0 10 10 50
d 1 20 20 50
c
u 0
u 1
c

接住(10,10),按住(10),再按住(20,20),再按住(20,20),再放出第一次接触,最后放出第二次接触.

d 0 10 10 50
c
<wait in your own code>
d 1 20 20 50
c
<wait in your own code>
u 0
c
<wait in your own code>
u 1
c

使用单接方式从(0,0)到(100,0)刷取. 你需要等待 之间承诺 在你自己的代码以慢下来.

d 0 0 0 50
c
m 0 20 0 50
c
m 0 40 0 50
c
m 0 60 0 50
c
m 0 80 0 50
c
m 0 100 0 50
c
u 0
c

平克有从(0,100)到(50,50)和(100,0)到(50,50)两个联系人. 你需要等待 之间承诺 在你自己的代码以慢下来.

d 0 0 100 50
d 1 100 0 50
c
m 0 10 90 50
m 1 90 10 50
c
m 0 20 80 50
m 1 80 20 50
c
m 0 20 80 50
m 1 80 20 50
c
m 0 30 70 50
m 1 70 30 50
c
m 0 40 60 50
m 1 60 40 50
c
m 0 50 50 50
m 1 50 50 50
c
u 0
u 1
c

同样的,但更混乱(或自然)的订单.

d 1 100 0 50
c
d 0 0 100 50
c
m 1 90 10 50
m 0 10 90 50
c
m 0 20 80 50
c
m 1 80 20 50
c
m 0 20 80 50
m 1 80 20 50
c
m 0 30 70 50
c
m 1 70 30 50
c
m 1 60 40 50
c
m 0 40 60 50
c
m 0 50 50 50
m 1 50 50 50
c
u 0
c
u 1
c

捐款

见 捐款额。 。 。 .

许可证

见 自由主义。 。 。 .

版权所有 网络代理公司,所有权利保留.

版本与发布记录

@devicefarmer/minitouch-prebuilt 共发布 4 个版本,首次发布于 2020/05/16;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.3.3latest2026/11/074 天前
1.3.22026/08/172 个月前
1.3.12026/08/132 个月前
1.3.02020/05/166 年前

关于 @devicefarmer/minitouch-prebuilt 的常见问题

@devicefarmer/minitouch-prebuilt 是什么?

预建的二进制迷你口袋.

如何安装 @devicefarmer/minitouch-prebuilt?

在项目目录运行 npm install @devicefarmer/minitouch-prebuilt,或使用 pnpm add / yarn add / bun add。

@devicefarmer/minitouch-prebuilt 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/devicefarmer__minitouch-prebuilt 是否存在。

@devicefarmer/minitouch-prebuilt 可以商用吗?

@devicefarmer/minitouch-prebuilt 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@devicefarmer/minitouch-prebuilt 的下载量有多少?

根据 npm 官方下载统计,@devicefarmer/minitouch-prebuilt 在 2026/10/12 – 2026/11/10 这 30 天内被下载 4,260 次,日均约 142 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@devicefarmer/minitouch-prebuilt 还在维护吗?

最新版本 1.3.3 发布于 2026/11/07(4 天前);至今共发布 4 个版本,其中过去 12 个月发布了 3 个;首次发布于 2020/05/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。