# @devicefarmer/stf-device-db 中文文档

规范地址：https://npmcn.com/package/%40devicefarmer/stf-device-db/

版本：2\.0\.1
npm 元数据更新时间：2026-11-07T15:42:04.842Z
中文译文更新时间：2026-11-12T03:25:06.695Z
软件包许可：\(CC-BY-SA-4\.0 AND Apache-2\.0\)

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

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

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

- 包体积（解压后）：3.9 MB，7 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 22\.12
- 运行依赖：0 个
- 首次发布：2020-05-16T11:51:16.177Z
- 最新版本发布：2026-11-07T15:42:04.430Z
- 近 30 天下载量：3784（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 2 个）

## 中文简介

STF的智能手机/设备数据库.

## 安装

```sh
npm install @devicefarmer/stf-device-db
```

也可以使用：`pnpm add @devicefarmer/stf-device-db`、`yarn add @devicefarmer/stf-device-db`、`bun add @devicefarmer/stf-device-db`

## README

# @devicefarmer/stf-device-db (英语)

**@devicefarmer/stf-device-db (英语)** 是一个开放数据智能手机、平板电脑和可穿戴的数据库,具有确定性的动态SVG生成 [设备提醒 STF](https://github.com/DeviceFarmer/stf)。 。 。 .

## 数据管道源( S)

数据库`dist/devices.json`) 由 `scripts/build-db.mjs` 与节点.js的内置 `fetch` 且没有本地属地:

1.  **谷歌播放支持的设备** (单位:千美元)`supported_devices.csv`:零售品牌,营销名称,设备代号及型号. Google在无声明许可证的情况下公布名单,只有这些事实识别资料被取自其中.
2.  **线性OS 维基** (单位:千美元)`LineageOS/lineage_wiki`:硬件规格`release`, (中文(简体) ), `soc`, (中文(简体) ), `cpu_cores`, (中文(简体) ), `cpu_freq`, (中文(简体) ), `ram`, (中文(简体) ), `storage`),从寄存器tarball读取. 许可证根据 **CC-BY-SA-3.0 (英语)**。 。 。 .
3.  **维基数据- SPARQL** (单位:千美元)`query.wikidata.org`: 出版日期(`P577`智能手机和平板电脑模型(`wd:Q19723451`, (中文(简体) ), `wd:Q17517`, (中文(简体) ), `wd:Q155972`) (中文(简体) ). 专用于公共领域 **CC0 请检查URL=值 (帮助)**。 。 。 .

### 覆盖范围

Google Play列表中的每个模型都有品牌和营销名称,总共约有45,000个模型. 硬件规格只来自LineageOS,所以只有大约1400个型号(3%),大部分是手机LineageOS支持,有 `cpu` 财务报告和审定财务报表 `memory`,大约1,450人有一个 `date`对于其他所有领域来说 `null`; STF从连接的设备中填充.

数据每月由 [更新设备数据库](https://npmcn.com/package/%40devicefarmer/stf-device-db/.github/workflows/update-db.yml) 工作流程,当源变化时会打开拉出请求.

## 所需资源

-   [节点.js](https://nodejs.org/) 22.12

## 构建测试( T)

重建 `dist/devices.json` 并核查数据库:

```bash
npm install
npm run build
npm test
```

## 释放

1.  运行 **准备释放** 新版本的工作流程。 撞了起来 `package.json`时,更新 `CHANGELOG.md` 推着一个 `release/v<version>` 树枝.
2.  打开树枝的拉动请求,贴上标签 `ignore-for-release` 等支票过后再合并.
3.  运行 **释放** 同版本的工作流程. 它标记了发行版,创建了"GitHub"发行版,并通过可信赖的出版发布到npm,没有npm的令牌.

## 使用量

通过国家预防机制安装:

```bash
npm install --save @devicefarmer/stf-device-db
```

### `find(properties)`

查询设备元数据 `model` (初级、不敏感), `name` (代码倒置/ 拆分),可选 `brand` 编号 : `manufacturer` 编号 : `platform` 警卫:

```javascript
const db = require('@devicefarmer/stf-device-db')

const data = db.find({
  model: 'Nexus 5',
  name: 'hammerhead',
  manufacturer: 'LGE'
})
```

`data` 返回 :

```javascript
{
  name: { id: 'Nexus 5', long: 'LGE Nexus 5' },
  brand: 'LGE',
  marketName: 'Nexus 5',
  date: '2013-10-31',
  cpu: {
    name: 'Qualcomm MSM8974 Snapdragon 800',
    cores: 4,
    freq: 2.26
  },
  memory: {
    ram: 2048, // MB
    rom: 16    // GB
  },
  image: 'Nexus_5.svg'
}
```

如果没有 `model` 也没有 `name` 匹配条目 `dist/devices.json` (或 `platform` 是非Android的,或 `brand`编号 :`manufacturer` 属于一个相互冲突的OEM, `find()` 返回时 `null`。 。 。 .

### `sample()` 打开 `brandsMatch(a, b)`

-   `db.sample()` 返回随机设备记录(`{ model, name, brand, marketName, date, cpu, memory, image }`从 `dist/devices.json` 用于测试/模拟设备生成.
-   `db.brandsMatch(a, b)` 请检查access-date=中的日期值 (帮助) 两个品牌/制造商字符串是否属于同一个OEM品牌家族(例如. `Xiaomi`编号 :`Redmi`编号 :`POCO`, (中文(简体) ), `HMD Global`编号 :`Nokia`, (中文(简体) ), `Motorola`编号 :`Lenovo`, (中文(简体) ), `Nothing`编号 :`CMF by Nothing`) (中文(简体) ).

### `generateDeviceSvg(params)` 打开 `getDeviceSvgDataUri(params)`

生成确定性、 形式因素- 意识设备 SVG(`x24`, (中文(简体) ), `x120`, (中文(简体) ), `x800`横 `wearable`, (中文(简体) ), `foldable-tablet`, (中文(简体) ), `legacy-16-9`, (中文(简体) ), `modern-punch-hole`,以及 `ultra-tall-21-9` 简介 :

```javascript
const svg = db.generateDeviceSvg({
  model: 'Pixel 9',
  name: 'tokay',
  width: 1080,
  height: 2424,
  xdpi: 422,
  ydpi: 422,
  sdk: 34,
  size: 'x120'
})

const dataUri = db.getDeviceSvgDataUri({ model: 'Pixel 9', size: 'x24' })
```

### 从 v1.x 移到 v2.0

-   静态 JPEG 文件 `dist/icon/*` 财务报告和审定财务报表 `dist/photo/*` (和 `dist/devices-latest.json`改为: `dist/devices.json` + 运行时间 `generateDeviceSvg()` 编号 : `getDeviceSvgDataUri()`。 。 。 .
-   `memory.ram` 保留在 **甲基溴**时 `memory.rom` 现在在 **GB 语句**,匹配STF的硬件探测器.
-   遗产 `carrier`, (中文(简体) ), `maker`, (中文(简体) ), `os`, (中文(简体) ), `display`,以及 `flags` 字段从 `1.x` 改为: `brand`, (中文(简体) ), `marketName`, (中文(简体) ), `YYYY-MM-DD` `date`,无效 `cpu`编号 :`memory`,以及 `image` SVG标志.

## 捐款

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

## 许可证

-   **数据(`dist/devices.json`(中文(简体) )**: 许可证根据 [CC-BY-SA-4.0 (英语)](https://creativecommons.org/licenses/by-sa/4.0/),改编自LineageOS Wiki (CC-BY-SA-3.0)和Wikidata (CC0).
-   **代码( E)`index.js`, (中文(简体) ), `index.d.ts`, (中文(简体) ), `brands.js`, (中文(简体) ), `scripts/*`, (中文(简体) ), `test/*`(中文(简体) )**: 许可证根据 [阿帕奇 - 2.0](https://www.apache.org/licenses/LICENSE-2.0)。 。 。 .

### Google 游戏设备标识符

每个设备的品牌,营销名称,代号以及模型都来自 [谷歌播放支持的设备](https://support.google.com/googleplay/answer/1727131) 列表,Google在没有声明许可的情况下发布。 它们被刻意地使用:没有公开获得许可的源代码图 Android 模型数字可以用来在这个尺度上营销名称,光LineageOS就可以覆盖大约2%的模型. 仅取出这些事实识别资料。 CC-BY-SA-4.0赠款涵盖DubleFarmer对其的选择和安排,而不是标识本身,也不给Google Play列表整体许可.

见 [自由主义](https://npmcn.com/package/%40devicefarmer/stf-device-db/LICENSE) 详细情况.

## 常见问题

### @devicefarmer/stf-device-db 是什么？

STF的智能手机/设备数据库\.

### 如何安装 @devicefarmer/stf-device-db？

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

### @devicefarmer/stf-device-db 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @devicefarmer/stf-device-db 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @devicefarmer/stf-device-db 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>= 22\.12。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @devicefarmer/stf-device-db 可以商用吗？

@devicefarmer/stf-device-db 使用 \(CC-BY-SA-4\.0 AND Apache-2\.0\) 许可。声明的许可为 \(CC-BY-SA-4\.0 AND Apache-2\.0\)，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @devicefarmer/stf-device-db 的下载量有多少？

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

### @devicefarmer/stf-device-db 还在维护吗？

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

