@devicefarmer/stf-device-db

中文文档
2.0.1发布于 2026/11/07(CC-BY-SA-4.0 AND Apache-2.0)TypeScriptCommonJS零依赖构建来源已验证近 30 天下载 3784

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

中文使用文档
文档目录13 节
  1. 数据管道源( S)
  2. 覆盖范围
  3. 所需资源
  4. 构建测试( T)
  5. 释放
  6. 使用量
  7. find(properties)
  8. sample() 打开 brandsMatch(a, b)
  9. generateDeviceSvg(params) 打开 getDeviceSvgDataUri(params)
  10. 从 v1.x 移到 v2.0
  11. 捐款
  12. 许可证
  13. Google 游戏设备标识符

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

@devicefarmer/stf-device-db (英语) 是一个开放数据智能手机、平板电脑和可穿戴的数据库,具有确定性的动态SVG生成 设备提醒 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从连接的设备中填充.

数据每月由 更新设备数据库 工作流程,当源变化时会打开拉出请求.

所需资源

构建测试( T)

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

npm install
npm run build
npm test

释放

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

使用量

通过国家预防机制安装:

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

find(properties)

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

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

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

data 返回 :

{
  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 简介 :

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标志.

捐款

见 捐款额。 。 。 .

许可证

  • 数据(dist/devices.json(中文(简体) ): 许可证根据 CC-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。 。 。 .

Google 游戏设备标识符

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

见 自由主义 详细情况.

版本与发布记录

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

版本发布日期距今
2.0.1latest2026/11/074 天前
2.0.02026/10/2716 天前
1.4.02023/08/183 年前
1.3.02022/11/253 年前
1.2.02020/05/166 年前

关于 @devicefarmer/stf-device-db 的常见问题

@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 和提交记录判断。