@devicefarmer/stf-device-db (英语)
@devicefarmer/stf-device-db (英语) 是一个开放数据智能手机、平板电脑和可穿戴的数据库,具有确定性的动态SVG生成 设备提醒 STF。 。 。 .
数据管道源( S)
数据库dist/devices.json) 由 scripts/build-db.mjs 与节点.js的内置 fetch 且没有本地属地:
- 谷歌播放支持的设备 (单位:千美元)
supported_devices.csv:零售品牌,营销名称,设备代号及型号. Google在无声明许可证的情况下公布名单,只有这些事实识别资料被取自其中. - 线性OS 维基 (单位:千美元)
LineageOS/lineage_wiki:硬件规格release, (中文(简体) ),soc, (中文(简体) ),cpu_cores, (中文(简体) ),cpu_freq, (中文(简体) ),ram, (中文(简体) ),storage),从寄存器tarball读取. 许可证根据 CC-BY-SA-3.0 (英语)。 。 。 . - 维基数据- 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从连接的设备中填充.
数据每月由 更新设备数据库 工作流程,当源变化时会打开拉出请求.
所需资源
- 节点.js 22.12
构建测试( T)
重建 dist/devices.json 并核查数据库:
npm install
npm run build
npm test
释放
- 运行 准备释放 新版本的工作流程。 撞了起来
package.json时,更新CHANGELOG.md推着一个release/v<version>树枝. - 打开树枝的拉动请求,贴上标签
ignore-for-release等支票过后再合并. - 运行 释放 同版本的工作流程. 它标记了发行版,创建了"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-DDdate,无效cpu编号 :memory,以及imageSVG标志.
捐款
见 捐款额。 。 。 .
许可证
- 数据(
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列表整体许可.
见 自由主义 详细情况.