ITPub博客

首页 > IT基础架构 > 网络安全 > 技术解读:纯血鸿蒙设备信息读取实战:9大类硬件参数、屏幕检测与端侧基准测试

技术解读:纯血鸿蒙设备信息读取实战:9大类硬件参数、屏幕检测与端侧基准测试

网络安全 作者:Flow_Official 时间:2026-10-10 18:24:56 0 删除 编辑

先说为什么做这个东西

最近手头几个鸿蒙原生应用要做机型适配,测试同学反复来问:这台机器 API 版本是多少、屏幕刷新率多少、内存还剩多少、某个传感器到底支不支持。纯血鸿蒙上不能再拿安卓那套 Build 类去读,系统信息接口换了一整轮,于是干脆写了个专门读设备信息的小工具「设备信息鉴」,把适配时最常用的硬件参数、屏幕检测和一个轻量基准测试整合到一起。整个工具不声明网络权限,读取全部在端侧完成,目前免费。本文按功能模块记录实现要点。

静态信息:deviceInfo 一字排开

设备型号、系统版本这类出厂就定下来的信息,统一从 @ohos.deviceInfo 取:

import
deviceInfo
from
'@ohos.deviceInfo'
;

deviceInfo.
marketName
deviceInfo.
distributionOSName
deviceInfo.
osFullName
deviceInfo.
sdkApiVersion
deviceInfo.
securityPatchTag
deviceInfo.
buildType

概览页顶部两张卡片就是市场名加完整系统版本号。deviceInfo 是纯同步接口,字段非常全(品牌、制造商、硬件版本、ABI 列表、构建时间、首发 API 版本等),做「关于设备」页基本不用再找别的来源。需要注意 udid、serial 这类设备标识字段受系统权限管控,普通应用拿不到,设计页面时要做好字段缺失的降级显示。

动态信息:电池、存储、内存、屏幕

import
batteryInfo
from
'@ohos.batteryInfo'
;
import
statvfs
from
'@ohos.file.statvfs'
;
import
{ hidebug }
from
'@ohos.hidebug'
;
import
display
from
'@ohos.display'
;

batteryInfo.
level
batteryInfo.
temperature
batteryInfo.
voltage
batteryInfo.
health
statvfs.
getTotalSize
(ctx.
filesDir
)
statvfs.
getFreeSize
(ctx.
filesDir
)
hidebug.
getPss
()
display.
getDefaultDisplaySync
()
概览页环形图里 4.74 GB / 7.45 GB、64% 的占用率,分母取系统总内存,分子用 hidebug 的 Pss 折算;存储 51.19 GB / 119.21 GB 来自 statvfs,字节换算成 GB 时要和系统设置的口径保持一致。系统页的 API 版本、安全补丁日期、构建时间则全部来自 deviceInfo 的静态字段。

屏幕检测:灰阶、坏点与触摸

光读参数不够,屏幕素质还得靠肉眼。检测页做了四项:灰阶(11 级 0 到 255 条带,能分辨的级数越多越好)、黑白棋盘格与饱和度渐变、8 种纯色全屏切换查坏点、触摸轨迹测试。实现上是一个全屏窗口承载自绘组件:色块用显式 RGB 值等宽排列;纯色页点击切换红/绿/蓝/白/黑/黄/青/品红;触摸页在 onTouch 回调里按按下点坐标画轨迹,多点触控时遍历事件里的全部 touch 点即可。提示文案会提醒先把亮度拉到最高,暗部相邻色块的分界线才看得清。

传感器枚举与 CPU 基准

传感器列表用 @ohos.sensor:

import
sensor
from
'@ohos.sensor'
;
const
list
:
Array= sensor.
getSensorList
();
性能参考页没有做花哨跑分,而是 10 项固定的 CPU 运算任务:数值/字符串排序、位运算、浮点、傅里叶变换、内存赋值、加密、压缩、神经网络算子、矩阵 LU 分解等。每项在固定时间窗内统计迭代次数,归一后取平均得到综合参考分(900+ 较高、800-899 良好,页面上也明确标注仅供参考、不作为评测标准)。计算密集循环全部丢进 TaskPool,传参只带可序列化配置,避免阻塞主线程;测试期间提示不要操作手机、尽量充电跑,因为温度和后台进程都会影响结果。概览页八核实时频率(Kirin8000,小核 811 MHz、大核 2189 MHz)来自系统开放的硬件信息通道,不同 ROM 版本开放程度不同,取不到的格子就显示横杠降级。

信息导出与零网络权限模型

「我的」页提供 8 类信息导出(基本/系统/芯片/网络/存储/电池/屏幕/传感器可选),通过 @ohos.file.picker 的 DocumentSaveOptions 让用户自选保存位置,再用 fileIo 写入文本文件,全程不需要申请存储权限——这也是纯血鸿蒙「用户授权一次、文件归用户管」模型的便利之处。 安全模型上这个工具最彻底的一点是:module.json5 的 requestPermissions 为空,并且不声明 ohos.permission.INTERNET。没有网络权限,系统在网络层就把请求断掉了,不存在偷偷上传的可能;所有信息只停留在应用沙箱里,卸载即清。对设备信息这类天生敏感的数据,零权限比任何隐私政策都直观。

小结

deviceInfo 管静态、batteryInfo/hidebug/statvfs/display 管动态、sensor 管外设、picker 管导出,纯血鸿蒙把设备信息这套体系拆得很清楚,组合起来就是一个完整的本地硬件检测工具。设备信息鉴目前免费,做机型适配或买二手机验机时都用得上。也欢迎评论区交流,你们适配鸿蒙多机型时还读过哪些冷门参数。


转载声明:本文为转载整理,原文版权归原作者及原站点所有。

原文来源:Juejin HarmonyOS

原创地址:https://juejin.cn/post/7694565593367887912

原文作者:和风细雨笑哈哈;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-08-02

  • 博文量
    36
  • 访问量
    34206