Phase 1: 硬件探针与能力分级 TODO¶
状态: ⬜ 待开始 预计周期: 2~3 周 依赖阶段: Phase 0 目标交付物: 硬件检测模块、能力档位枚举、配置文件系统
一、阶段目标¶
核心目标¶
实现开机自动硬件检测,输出能力档位枚举,作为后续所有模块的行为裁剪依据。
具体交付物¶
- [ ]
HardwareProbe模块及其单元测试 - [ ]
CapabilityPolicy策略引擎 - [ ]
HWTier枚举定义及查询接口 - [ ] 设备配置文件
/etc/CFDesktop/device.conf - [ ] Mock 数据集用于单元测试
二、Week 1: 基础检测器实现¶
Day 1-2: CPU 检测器¶
- [ ] 创建
CPUDetector类框架 - [ ] 定义
CPUInfo结构体 - [ ] 实现
detectCPU()方法 - [ ] 实现
/proc/cpuinfo解析 - [ ] 解析 CPU 型号
- [ ] 解析核心数
- [ ] 解析频率
- [ ] 解析特性 (neon, vfpv4)
- [ ] 实现设备树 compatible 读取
- [ ] 读取
/sys/firmware/devicetree/base/compatible - [ ] 实现
uname架构检测 - [ ] 编写 CPU 检测单元测试
- [ ] IMX6ULL Mock 数据
- [ ] RK3568 Mock 数据
- [ ] RK3588 Mock 数据
Day 3: GPU 检测器¶
- [ ] 创建
GPUDetector类框架 - [ ] 定义
GPUInfo结构体 - [ ] 实现 DRM 设备检测
- [ ] 检测
/dev/dri/card* - [ ] 实现 OpenGL 上下文创建
- [ ] 获取 GPU 信息
- [ ] 获取扩展列表
- [ ] 实现 GPU 能力查询
- [ ] 最大纹理尺寸
- [ ] OpenGL 版本
- [ ] 编写 GPU 检测单元测试
Day 4: 内存与网络检测器¶
- [ ] 实现
/proc/meminfo解析 - [ ] 定义
MemoryInfo结构体 - [ ] 解析总内存
- [ ] 解析可用内存
- [ ] 解析 Swap
- [ ] 实现网络接口枚举
- [ ] 定义
NetworkInterface结构体 - [ ] 枚举
/sys/class/net/* - [ ] 获取 IP 地址
- [ ] 编写相应单元测试
Day 5: 档位计算逻辑¶
- [ ] 实现评分算法
- [ ] CPU 评分规则
- [ ] GPU 评分规则
- [ ] 内存评分规则
- [ ] 定义档位阈值
- [ ] Low: 0-60 分
- [ ] Mid: 61-120 分
- [ ] High: 121+ 分
- [ ] 实现
calculateTier()方法 - [ ] 验证各板卡档位判定
- [ ] IMX6ULL → Low
- [ ] RK3568 → Mid
- [ ] RK3588 → High
三、Week 2: 策略引擎与配置¶
Day 1-2: CapabilityPolicy 实现¶
- [ ] 定义各策略结构体
- [ ]
AnimationPolicy - [ ]
RenderingPolicy - [ ]
VideoDecoderPolicy - [ ]
MemoryPolicy - [ ] 实现档位特定策略配置
- [ ] Low 档策略
- [ ] Mid 档策略
- [ ] High 档策略
- [ ] 实现
getAnimationPolicy() - [ ] 实现
getRenderingPolicy() - [ ] 实现
getVideoDecoderPolicy() - [ ] 实现
getMemoryPolicy()
Day 3: DeviceConfig 实现¶
- [ ] 实现配置文件解析
- [ ] INI 格式解析
- [ ] 默认值处理
- [ ] 实现配置文件写入
- [ ] 实现自定义脚本执行
- [ ] 脚本路径配置
- [ ] JSON 输出解析
- [ ] 编写配置测试
Day 4: 集成测试¶
- [ ] 创建端到端测试用例
- [ ] 完整检测流程
- [ ] 策略应用验证
- [ ] 测试 IMX6ULL 真机
- [ ] CPU 信息验证
- [ ] 档位验证
- [ ] 测试 RK3568 真机
- [ ] 测试 RK3588 真机
- [ ] 验证自动档位判定
Day 5: 文档与优化¶
- [ ] 编写 API 文档
- [ ] HardwareProbe 接口
- [ ] CapabilityPolicy 接口
- [ ] 优化检测性能
- [ ] 目标: < 500ms
- [ ] 添加性能日志
- [ ] Code Review
四、Week 3: 完善与验证¶
Day 1-2: 跨平台支持¶
- [ ] 实现 Windows 平台检测
- [ ] WMI 查询
- [ ] GPU 检测
- [ ] 实现模拟器平台适配
- [ ] Mock 数据支持
- [ ] 环境变量检测
- [ ] 编写平台特定测试
Day 3-4: 真机验证¶
- [ ] 在 IMX6ULL 上完整测试
- [ ] 性能测试
- [ ] 内存占用测试
- [ ] 在 RK3568 上完整测试
- [ ] OpenGL 检测验证
- [ ] 硬件解码验证
- [ ] 在 RK3588 上完整测试
- [ ] 全功能验证
- [ ] 收集性能数据
Day 5: 发布准备¶
- [ ] 最终测试
- [ ] 更新文档
- [ ] 准备演示
- [ ] 合并主分支
五、验收标准¶
功能验收¶
- [ ] 在 IMX6ULL 上正确识别为 Low 档
- [ ] 在 RK3568 上正确识别为 Mid 档
- [ ] 在 RK3588 上正确识别为 High 档
- [ ] 所有单元测试通过(覆盖率 > 90%)
- [ ] 配置文件覆盖功能正常
- [ ] 自定义脚本执行正常
性能验收¶
- [ ] 硬件检测耗时 < 500ms
- [ ] 内存占用 < 5MB
- [ ] 不影响系统启动时间
代码质量¶
- [ ] 符合代码规范
- [ ] 通过 clang-tidy 检查
- [ ] API 文档完整
- [ ] 代码审查通过
六、文件清单¶
头文件¶
- [ ]
include/CFDesktop/Base/HardwareProbe/HWTier.h - [ ]
include/CFDesktop/Base/HardwareProbe/HardwareInfo.h - [ ]
include/CFDesktop/Base/HardwareProbe/HardwareProbe.h - [ ]
include/CFDesktop/Base/HardwareProbe/CapabilityPolicy.h - [ ]
include/CFDesktop/Base/HardwareProbe/DeviceConfig.h
源文件¶
- [ ]
src/base/hardware/HardwareProbe.cpp - [ ]
src/base/hardware/CapabilityPolicy.cpp - [ ]
src/base/hardware/DeviceConfig.cpp - [ ]
src/base/hardware/detectors/CPUDetector.cpp - [ ]
src/base/hardware/detectors/GPUDetector.cpp - [ ]
src/base/hardware/detectors/MemoryDetector.cpp - [ ]
src/base/hardware/detectors/NetworkDetector.cpp - [ ]
src/base/hardware/platform/LinuxDetector.cpp - [ ]
src/base/hardware/platform/WindowsDetector.cpp
测试文件¶
- [ ]
tests/unit/base/hardware/test_hardware_probe.cpp - [ ]
tests/unit/base/hardware/test_capability_policy.cpp - [ ]
tests/mock/proc/cpuinfo_imx6ull - [ ]
tests/mock/proc/cpuinfo_rk3568 - [ ]
tests/mock/proc/cpuinfo_rk3588 - [ ]
tests/mock/proc/meminfo_512mb - [ ]
tests/mock/proc/meminfo_1gb - [ ]
tests/mock/proc/meminfo_4gb
七、相关文档¶
最后更新: 2026-03-05