# @devicefarmer/minicap-prebuilt 中文文档

规范地址：https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/

版本：2\.7\.4
npm 元数据更新时间：2026-11-07T15:52:50.977Z
中文译文更新时间：2026-11-12T03:22:24.780Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40devicefarmer/minicap-prebuilt
原文对照：https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/?lang=original
项目主页：https://github.com/DeviceFarmer/minicap#readme
源码仓库：https://github.com/DeviceFarmer/minicap

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：6.8 MB，68 个文件
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2020-05-16T12:46:22.918Z
- 最新版本发布：2026-11-07T15:52:50.672Z
- 近 30 天下载量：4391（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 1 个）

## 中文简介

预建的二进制迷你帽.

## 安装

```sh
npm install @devicefarmer/minicap-prebuilt
```

也可以使用：`pnpm add @devicefarmer/minicap-prebuilt`、`yarn add @devicefarmer/minicap-prebuilt`、`bun add @devicefarmer/minicap-prebuilt`

## README

# 迷你盖

Minicap为流出Android设备的实时屏幕捕获数据提供了套接字接口. 其用意是作为一个更大的方案的组成部分,因此仅靠它本身并不十分有用。 例如,它被用于 [工作队](https://github.com/openstf/stf) 用于远程控制.

启动后, Minicap 工作不会有根 [亚行](http://developer.android.com/tools/help/adb.html) 在SDK 28(Android 9.0)和下方。 我们建造的最低SDK水平为9(即Android 2.3). 迷你卡普也从事Android Wear. 开发者预览一般在Google发布该发布版本的源代码后得到支持. _只有最新的"开发者预览"被支持,并且直到有稳定的发布._ 不支持模拟器 。 注意Android 3.x不支持,因为这些版本从未被开源.

为了捕获屏幕,我们目前使用两种方法。 对于更古老的Android版本,我们使用ScreenshotClient,一个在AOSP的私人API. 对于更新的版本,我们使用虚拟显示,这也需要访问私人API. 然后使用 SIMD 启用的框架编码 [蓝色涡轮](http://libjpeg-turbo.virtualgl.org/) 并发送了套接字接口。 今后计划进行的改进,以允许更高的FPS,是使用Media Record和朋友来利用硬件编码.

原则上,每个装置都应该起作用. 然而,由于迷你卡普依赖于私人API,因此有些可能不会. 请让我们知道 一个关于这个设备的GitHub问题.

该项目由两部分组成。 有主要的二进制可以单独使用NDK来建造. 另一部分是共享库,为AOSP源树内每个SDK级别和每个建筑所建. 我们在此repo中运送了预编译的库,但对这些共享库使用的代码的任何修改都需要针对相应的AOSP分支进行再编译. 这可能是一个重大的痛苦,但我们有几个公用事业可以帮助解决苦难。 如果你有兴趣的话, [在此读取构建指令](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/jni/minicap-shared/README.md)。 。 。 .

共享库被冻结在SDK 30(Android 11)和以下. 在较新的Android版本中,请使用小头顶 apk [页:1](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/apk) 相反,它通过 `app_process` 并且不需要共享库. [工作队](https://github.com/DeviceFarmer/stf) 选择自动高于 SDK 30 .

## 特征

-   视设备而定,可用于非常平滑的FPS. 运行一个旧版Android的更老更弱的设备可以达到10-20 FPS. 运行Android最新版本的更新型设备通常可以相当容易地达到30-40 FPS,但有一些例外. 对于最大FPS,我们建议运行 迷你盖在一半真正的垂直和水平分辨率.
-   体面且可用但非零延迟. 根据编码性能和USB传输速度,它可能是物理屏幕后方一到几个帧.
-   在Android 4.2+上,帧只有在屏幕上出现变化时才会被发送. 在更古老的版本框上作为恒流发送,无论是否有变化.
-   简单套接字接口 .

## 所需资源

-   [印度](https://developer.android.com/tools/sdk/ndk/index.html),修订版10e (2015年5月)
-   [生产](http://www.gnu.org/software/make/)

## 大楼

我们包括 [作为 Git 子模块的 libjpeg- turbo](https://github.com/openstf/android-libjpeg-turbo)所以首先确定你已经拿了.

```
git submodule init
git submodule update
```

你现在可以继续了.

所需建筑 [印度](https://developer.android.com/tools/sdk/ndk/index.html),并已知至少与NDK修订版10e(2015年5月)合作. 旧版本因缺乏 `.asm` x86 64 的文件支持 . **重要注意:NDK 15不再早于SDK 第14级支持Android平台. 这意味着如果编译于NDK 15或后期,二进制可能或不会在更早的平台上工作(如Android 2.3,Android 2.3.3).**

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

```
ndk-build
```

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

如果你修改了共享库,你还需要 [盖起它](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/jni/minicap-shared/README.md)。 。 。 .

## 运行

你需要这样 [构建](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/#readme-building) 先说.

### 简单的方式

然后可以使用包含 [运行。 sh](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/run.sh) 在设备上运行右二进制的脚本 。 这将确保正确的二进制和共享库被复制到您的设备中. 如果您有多个设备连接, 设置 `ANDROID_SERIAL` 在运行脚本之前.

```bash
# Run a preliminary check to see whether your device will work
./run.sh autosize -t
# Check help
./run.sh autosize -h
# Start minicap
./run.sh autosize
```

_这个 `autosize` 命令用于自动选择正确的屏幕大小。 这是由脚本而不是二进制本身完成的. 为了了解为什么有必要这样做,请阅读以下的手册说明._

最后,我们只需要建立一个本地的前进,以便我们能够连接到插座.

```bash
adb forward tcp:1313 localabstract:minicap
```

现在你可以连接到1313港的接头了.

那就看一看吧 说吧 Then just see [使用量](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/#readme-usage) 见下文.

### 艰难的路

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

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

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

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

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

```bash
adb push libs/$ABI/minicap /data/local/tmp/
```

请注意,对于 SDK < 16, 您必须使用 `minicap-nopie` 未执行的可执行文件 [派伊(PIE)](http://en.wikipedia.org/wiki/Position-independent_code#Position-independent_executables) 支助。 检查 [运行。 sh](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/run.sh) 用于脚本示例.

二进制不够 我们还需要选择正确的共享库并推进到设备上. 这一点可以如下:.

```bash
SDK=$(adb shell getprop ro.build.version.sdk | tr -d '\r')
adb push jni/minicap-shared/aosp/libs/android-$SDK/$ABI/minicap.so /data/local/tmp/
```

SDK 30以上没有共享的库. 在那些设备上,推出"迷你盖",然后开始 `app_process` 相反,因为 [运行。 sh](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/run.sh) 已经.

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

```bash
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -h
```

注意,你需要设置 `LD_LIBRARY_PATH` 每次你打电话给迷你帽,否则它找不到共享的图书馆.

另外,每次使用迷你盖时,还需要指定显示和投影的大小. 这是因为我们不得不使用私人API来访问许多三星设备上的信息断层(因为迷你帽本身运行正常)。 这个 [运行。 sh](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/run.sh) 帮助脚本提供 `autosize` 上文提到的帮助者.

因此,让我们假设你的设备有一个1080x1920屏幕. 首先,让我们进行快速检查,看看您的设备是否能够运行当前版本的迷你盖:

```bash
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0 -t
```

_\-P 参数的格式是 : {RealWidth}x{RealHeight} 虚拟Width}x{虚拟Height}/{Orientation}。 "虚拟"大小是所期望的投影的大小. 取向论证讲述了设备当前取向是什么(以度为单位),这需要这样,我们才能向帧消费者报告套接字界面的正确取向. 获得当前取向(或旋转)的方法之一是 [旋转监视器. apk](https://github.com/openstf/RotationWatcher.apk)。 。 。 ._

如果命令输出"OK",那么一切都应该很好. 如果它分解出错( 可能挂了一段时间后), 您的设备不支持 [我们想知道](https://github.com/openstf/minicap/issues)。 。 。 .

最后,让我们开始迷你帽。 它会开始在抽象的unix域套接字上听取.

```bash
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0
```

现在我们只需要创建一个本地的前进, 这样我们就可以连接到插座.

```bash
adb forward tcp:1313 localabstract:minicap
```

现在可以使用本地端口连接到套接字. 注意目前 **一次只支持一个连接 .** 不管怎么说,拥有一个以上的连接是没有道理的,因为USB总线会很快饱和. 所以,让我们连接.

```bash
nc localhost 1313
```

这将给您二进制输出, 将在下一节中解释 .

## 使用量

假设你现在和迷你盖套接字开通了 如果没有,就跟随 [指令](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/#readme-running) 见上文.

迷你帽协议是一种简单的基于推取的二进制协议. 当您第一次连接到套接字时,您会得到一个全局头,然后是第一个框架。 全球信头不会再出现。 继续发送更多帧 直到你停止迷你帽.

### 全局信头二进制格式

曾相见.

| 字节 | 长度 | 类型 | 解释 |
| --- | --- | --- | --- |
| 0 个 | 1个 | 未签名字符 | 版本(目前为1) |
| 1个 | 1个 | 未签名字符 | 页眉大小( 从字节 0) |
| 2至5岁 | 页:1 | 金特32 (低端词) | 过程的管道 |
| 第6-9条 | 页:1 | 金特32 (低端词) | 实际显示宽度, 像素 |
| 第10-13条 | 页:1 | 金特32 (低端词) | 以像素计的真实显示高度 |
| 14-17 (中文(简体) ) | 页:1 | 金特32 (低端词) | 虚拟显示宽度, 像素 |
| 第18-21页 | 页:1 | 金特32 (低端词) | 虚拟显示高度, 像素 |
| 22个 | 1个 | 未签名字符 | 显示方向 |
| 第23条 | 1个 | 未签名字符 | 克克比特旗(见下文) |

#### 克克比特旗

目前,可以报告以下怪事:

| 数值 | 名称 | 解释 |
| --- | --- | --- |
| 1个 | QUIRK DUMB | 即使前一个框架没有变化,框架也会被发送. 告密者,不需要你采取任何行动 您可以通过在自己的代码中读取较慢的框架数据来限制捕获率. |
| 2个 | QUIRK ALLYS 实相 | 不论器件取向如何,车架始终是正向的. 在制作图像时需要考虑到这一点. |
| 页:1 | 卡塔尔语NAME | 框架撕裂可能可见。 信息化,不需要任何行动。 我们目前的两种方法都没有表现出这种行为. |

### 框架二进制格式

看起来像一个潜在的无限次数.

| 字节 | 长度 | 类型 | 解释 |
| --- | --- | --- | --- |
| 0-3 (韩语) | 页:1 | 金特32 (低端词) | 框架大小, 以字节表示 (=n) |
| 4(n+4) | 无 | 未签名字符 \[\] | JPG 格式的框架 |

## 调试

NDK号已经不再出动了 `gdb`所以旧的 `gdb.sh` 帮助已删除 。 以 `ndk-build NDK_DEBUG=1` 并附加到运行中的 迷你盖进程, 与 NDK 的 `lldb` 换句话说.

## 捐款

_作为一个小的免责词,"迷你盖"是作者第一次使用C++,因此,除了错误修正和新特性外,甚至任何非功能性修改,使代码更加平庸(最好是不引入新的依赖性)也非常受欢迎._

见 [捐款额](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/CONTRIBUTING.md)。 。 。 .

## 许可证

见 [自由主义](https://npmcn.com/package/%40devicefarmer/minicap-prebuilt/LICENSE)。 。 。 .

版权:© OpenSTF 项目. 所有权利保留.

## 常见问题

### @devicefarmer/minicap-prebuilt 是什么？

预建的二进制迷你帽\.

### 如何安装 @devicefarmer/minicap-prebuilt？

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

### @devicefarmer/minicap-prebuilt 支持 TypeScript 吗？

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

### @devicefarmer/minicap-prebuilt 可以商用吗？

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

### @devicefarmer/minicap-prebuilt 的下载量有多少？

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

### @devicefarmer/minicap-prebuilt 还在维护吗？

最新版本 2\.7\.4 发布于 2026/11/07（4 天前）；至今共发布 9 个版本，其中过去 12 个月发布了 1 个；首次发布于 2020/05/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

