# DeviceHelper
**Repository Path**: Megasu/DeviceHelper
## Basic Information
- **Project Name**: DeviceHelper
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2025-11-06
- **Last Updated**: 2025-11-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Device Helper - 鸿蒙设备检测助手



**一个功能完整的HarmonyOS设备硬件检测应用,助力鸿蒙生态建设**
---
## 📱 项目简介
**Device Helper** 是一款专为HarmonyOS生态打造的设备硬件检测应用,旨在帮助用户快速检测手机各项硬件功能是否正常。
无论是新机到手、二手交易还是设备维修,都能通过本应用进行全面、专业的硬件检测。
本项目作为**开源学习项目**,完整展示了HarmonyOS应用开发的核心技术栈和最佳实践,是学习HarmonyOS开发的优秀参考案例。
### 项目截图
### 🎯 项目定位
- **学习价值**:完整的HarmonyOS应用开发实践案例
- **实用价值**:真实可用的设备检测工具
- **生态贡献**:为HarmonyOS开发者社区提供参考
---
## ✨ 功能特性
### 🔍 设备信息展示
- 自动识别设备品牌、型号、系统版本
- 智能计算存储容量(根据实际可用空间推算标称容量)
- 显示屏幕分辨率、刷新率等关键参数
- 精美的渐变UI设计,支持状态栏动态切换
### 🛠️ 20项硬件检测功能
| 检测项 | 功能说明 | 技术实现 |
|--------|---------|---------|
| **音频检测** | 扬声器、听筒、麦克风 | AudioKit音频渲染器、PCM音频播放 |
| **相机检测** | 前置/后置摄像头 | CameraKit相机预览、拍照功能 |
| **传感器检测** | 距离、光线、重力、指南针 | SensorKit传感器数据监听 |
| **通信检测** | WiFi、蓝牙、NFC、SIM卡 | NetworkKit、BluetoothKit、NFCKit |
| **生物识别** | 指纹、面容识别 | BiometricKit生物识别API |
| **其他功能** | 闪光灯、振动、触摸、充电、白屏 | 系统API调用 |
### 📊 检测流程管理
- **状态管理**:未开始、进行中、已中断、已完成
- **进度跟踪**:实时显示检测进度(环形进度条)
- **结果持久化**:使用PersistenceV2实现数据持久化存储
- **断点续检**:支持中断后继续检测,无需重新开始
- **单项重检**:支持对任意检测项进行重新检测
### 🎨 用户体验
- 流畅的页面导航和转场动画
- 智能的状态栏颜色切换(根据滚动位置)
- 友好的错误提示和操作反馈
- 支持深色模式(代码已实现)
---
## 🛠️ 技术栈
### 核心技术框架
#### 1. **ArkTS + ArkUI V2**
- ✅ **@ComponentV2**:新一代组件装饰器,性能更优
- ✅ **@ObservedV2**:响应式数据模型
- ✅ **@Computed**:计算属性,自动缓存优化
- ✅ **@Local / @Param**:V2版本状态管理装饰器
```typescript
// 示例:V2状态管理最佳实践
@ObservedV2
class InspectionResultModel {
@Trace speaker: InspectionItemResult = new InspectionItemResult();
}
@ComponentV2
struct InspectionPage {
@Local inspectionResult: InspectionResultModel =
PersistenceV2.connect(InspectionResultModel, () => new InspectionResultModel())!;
}
```
#### 2. **数据持久化 - PersistenceV2**
- ✅ 自动持久化数据,无需手动保存
- ✅ 支持复杂对象类型(通过@Type装饰器)
- ✅ 数据自动同步,页面间共享状态
```typescript
// 持久化存储示例
@Local inspectionResult: InspectionResultModel =
PersistenceV2.connect(InspectionResultModel, () => new InspectionResultModel())!;
```
#### 3. **导航系统 - NavPathStack**
- ✅ 原生导航栈管理
- ✅ 支持页面参数传递
- ✅ 自定义导航栏样式和返回按钮
- ✅ 页面生命周期拦截(willShow/didShow)
#### 4. **硬件能力调用**
| Kit名称 | 功能 | 使用场景 |
|---------|------|---------|
| **AudioKit** | 音频播放 | 扬声器、听筒检测 |
| **CameraKit** | 相机预览 | 前后摄像头检测 |
| **SensorKit** | 传感器数据 | 距离、光线、重力、指南针 |
| **NetworkKit** | 网络管理 | WiFi检测 |
| **BluetoothKit** | 蓝牙管理 | 蓝牙功能检测 |
| **NFCKit** | NFC功能 | NFC识别检测 |
| **BiometricKit** | 生物识别 | 指纹、面容识别 |
| **BasicServicesKit** | 基础服务 | 设备信息、剪贴板、振动等 |
#### 5. **权限管理**
- ✅ 动态权限申请
- ✅ 权限状态检查
- ✅ 设置页面跳转引导
- ✅ 完整的权限申请流程封装
```typescript
// 权限管理工具类
accessManager.checkPermission(
context,
[Permissions.CAMERA],
() => { /* 成功回调 */ },
() => { /* 失败回调 */ }
);
```
#### 6. **UI组件与设计**
- ✅ **SymbolGlyph**:系统图标组件(SF Symbols风格)
- ✅ **LinearGradient**:渐变背景
- ✅ **Progress**:环形进度条
- ✅ **CustomDialog**:自定义弹窗(轻提示样式)
- ✅ **RelativeContainer**:相对布局容器
- ✅ 响应式布局和约束布局
#### 7. **资源管理**
- ✅ 统一使用`$r()`语法引用资源
- ✅ 支持多主题资源(base/dark)
- ✅ 资源类型:颜色、字符串、图片、浮点数
- ✅ RawFile资源管理(音频文件)
---
## 🎓 核心亮点与学习价值
### 💡 技术亮点
#### 1. **完整的V2状态管理实践**
本项目全面采用ArkUI V2的新特性,展示了:
- `@ComponentV2`组件的正确用法
- `@ObservedV2`数据模型的响应式更新
- `@Computed`计算属性的性能优化
- `PersistenceV2`数据持久化的最佳实践
**学习收获**:掌握HarmonyOS最新状态管理方案,理解响应式编程在移动开发中的应用。
#### 2. **硬件能力完整调用示例**
覆盖了HarmonyOS主要的硬件能力Kit:
- 音频播放(AudioRenderer)
- 相机预览(CameraKit)
- 传感器监听(SensorKit)
- 网络管理(NetworkKit)
- 蓝牙/NFC通信
- 生物识别认证
**学习收获**:学会如何调用HarmonyOS系统能力,为开发功能丰富的应用打下基础。
#### 3. **数据持久化最佳实践**
使用`PersistenceV2`实现:
- 复杂对象类型的持久化
- 跨页面数据共享
- 应用重启后数据恢复
- 自动同步机制
**学习收获**:掌握HarmonyOS数据持久化方案,理解如何设计可持久化的数据模型。
#### 4. **权限管理完整流程**
实现了完整的权限申请流程:
- 权限状态检查
- 动态权限申请
- 设置页面引导
- 错误处理机制
**学习收获**:学会处理HarmonyOS权限系统,确保应用合规运行。
#### 5. **UI/UX设计实践**
展示了现代移动应用UI设计:
- 渐变背景和卡片式布局
- 状态栏动态切换
- 流畅的页面转场动画
- 友好的用户反馈机制
**学习收获**:掌握HarmonyOS UI设计规范,提升应用用户体验。
#### 6. **项目架构设计**
采用清晰的项目结构:
- 页面组件分离(pages/views)
- 数据模型独立(models)
- 工具类封装(utils)
- 常量统一管理(constants)
**学习收获**:学会组织HarmonyOS项目代码,提高代码可维护性。
---
## 🚀 快速开始
### 环境要求
- **DevEco Studio**: 6.0 或更高版本
- **HarmonyOS SDK**: API 20 (HarmonyOS 6.0)
## 📁 项目结构
```
DeviceHelper/
├── AppScope/ # 应用全局配置
│ ├── app.json5 # 应用配置文件
│ └── resources/ # 全局资源
├── entry/ # 主模块
│ ├── src/main/
│ │ ├── ets/
│ │ │ ├── entryability/ # 应用入口
│ │ │ ├── pages/ # 页面组件
│ │ │ │ └── Index.ets # 首页
│ │ │ ├── views/ # 检测页面(20个)
│ │ │ ├── models/ # 数据模型
│ │ │ │ └── InspectionResultModel.ets
│ │ │ ├── utils/ # 工具类
│ │ │ │ ├── DialogUtils.ets
│ │ │ │ └── AccessManager.ets
│ │ │ └── constants/ # 常量定义
│ │ └── resources/ # 模块资源
│ │ ├── base/ # 默认主题
│ │ └── rawfile/ # 原始文件(音频等)
│ └── build-profile.json5 # 模块构建配置
├── hvigorfile.ts # 构建脚本
├── oh-package.json5 # 依赖配置
└── README.md # 项目说明
```
### 关键文件说明
- **InspectionResultModel.ets**: 检测结果数据模型,使用PersistenceV2持久化
- **Index.ets**: 首页,展示设备信息和检测入口
- **InspectionPage.ets**: 检测主页面,管理20个检测项
- **DialogUtils.ets**: 弹窗工具类,封装自定义弹窗
- **AccessManager.ets**: 权限管理工具类
---
## 🎯 学习路径建议
### 初学者
1. 从`Index.ets`开始,了解页面基本结构
2. 学习`InspectionResultModel.ets`,理解数据模型设计
3. 查看单个检测页面(如`SpeakerInspectionPage.ets`),学习硬件能力调用
### 进阶开发者
1. 深入研究`PersistenceV2`的使用方式
2. 学习`NavPathStack`导航管理
3. 研究权限管理的最佳实践
4. 分析UI/UX设计模式
### 高级开发者
1. 优化性能(计算属性、懒加载等)
2. 扩展检测功能(添加新的检测项)
3. 改进架构设计(MVVM模式、依赖注入等)
4. 贡献代码和文档
---
## 🤝 贡献指南
我们欢迎所有形式的贡献!
### 如何贡献
1. **Fork** 本仓库
2. **创建** 特性分支 (`git checkout -b feature/AmazingFeature`)
3. **提交** 更改 (`git commit -m 'Add some AmazingFeature'`)
4. **推送** 到分支 (`git push origin feature/AmazingFeature`)
5. **开启** Pull Request
### 贡献方向
- 🐛 **Bug修复**:发现并修复问题
- ✨ **新功能**:添加新的检测项或功能
- 📝 **文档改进**:完善README、代码注释
- 🎨 **UI优化**:改进界面设计和用户体验
- ⚡ **性能优化**:提升应用性能
- 🌐 **国际化**:添加多语言支持
### 代码规范
- 遵循ArkTS编码规范
- 添加必要的代码注释
- 保持代码风格一致
- 提交前运行编译检查
---
## 📄 许可证
本项目采用 [MIT License](LICENSE) 许可证。
---
## 🙏 致谢
感谢所有为HarmonyOS生态做出贡献的开发者!
特别感谢:
- HarmonyOS开发团队
- 所有贡献者和Issue反馈者
- 开源社区的支持
---
## 📮 联系方式
- **作者**: 苏杰豪
- **邮箱**: megasu@qq.com
- **项目地址**: [GitCode](https://gitcode.com/megasu/DeviceHelper)
- **项目地址**: [Gitee](https://gitee.com/megasu/DeviceHelper)
---
## ⭐ Star History
如果这个项目对你有帮助,请给个Star⭐支持一下!
---
**为HarmonyOS生态贡献力量,让我们一起构建更好的未来!** 🚀
Made with ❤️ for HarmonyOS