HarmonyOS应用开发实战:萌宠日记 - 备份恢复能力集成
前言数据备份与恢复是移动应用不可或缺的基础能力它保障用户数据在换机迁移、应用重装、系统恢复等场景下的安全性和连续性。在萌宠日记中我们通过ExtensionAbility的backup 类型集成了 HarmonyOS 的原生备份恢复能力让用户的宠物日记、健康记录、照片数据得到可靠保护。本文将从萌宠日记的备份恢复实现出发深入解析 ExtensionAbility 的配置、备份扩展的实现原理以及备份配置文件的设计细节。一、备份恢复体系概述1.1 备份能力架构HarmonyOS 的备份恢复体系包含三个核心角色角色组件职责系统备份服务系统级服务调度备份任务、管理备份数据备份扩展ExtensionAbilitybackup 类型提供应用的备份/恢复逻辑备份配置backup_config.json声明需要备份的文件和目录备份恢复的完整流程用户触发备份 → 系统备份服务 → 调度各应用备份扩展 ↓ 应用备份扩展 → 读取 backup_config.json → 收集指定文件 ↓ 文件打包加密 → 存储到系统备份目录1.2 萌宠日记的备份配置// module.json5 — 备份扩展声明 { extensionAbilities: [ { name: EntryBackupAbility, srcEntry: ./ets/entrybackupability/EntryBackupAbility.ets, type: backup, exported: false, metadata: [ { name: ohos.extension.backup, resource: $profile:backup_config } ] } ] }提示exported: false表示该扩展能力仅对系统服务可见外部应用无法直接调用这符合备份扩展的安全要求。二、备份扩展的实现2.1 EntryBackupAbility 源码// EntryBackupAbility.ets — 备份扩展实现 import { BackupExtensionAbility } from kit.CoreFileKit; export default class EntryBackupAbility extends BackupExtensionAbility { // 备份前的准备工作 onBackup(): void { console.log(EntryBackupAbility onBackup); } // 恢复后的处理工作 onRestore(): void { console.log(EntryBackupAbility onRestore); } }2.2 BackupExtensionAbility 生命周期BackupExtensionAbility继承自ExtensionAbility提供了两个关键的回调方法方法触发时机典型用途onBackup()系统开始备份该应用时数据一致性检查、关闭正在写入的文件onRestore()系统完成数据恢复后重建缓存、刷新 UI、重新建立网络连接2.3 备份扩展的工作流程有序列表 — 备份/恢复的完整生命周期系统触发备份用户手动备份或系统自动备份onBackup 调用应用准备备份数据确保文件一致性系统读取配置系统根据backup_config.json收集文件文件打包加密系统将文件打包并加密存储恢复触发用户在新设备或重装后恢复数据系统还原文件系统将备份文件还原到应用沙箱onRestore 调用应用处理恢复后的数据刷新 UI三、备份配置文件详解3.1 backup_config.json 结构{ allowToBackupPersistent: true, includeFiles: [ data/storage/el2/database/, data/storage/el2/base/preferences/, data/storage/el2/base/files/ ], excludeFiles: [ data/storage/el2/base/cache/ ] }3.2 配置字段说明字段类型说明萌宠日记配置allowToBackupPersistentboolean是否允许持久化备份trueincludeFilesstring[]需要备份的文件/目录路径列表数据库、首选项、文件excludeFilesstring[]排除的路径列表排除 includeFiles 中的子路径缓存目录3.3 路径配置规范备份路径使用沙箱路径遵循以下规则路径模式说明存储内容data/storage/el2/database/关系型数据库目录日记数据、宠物档案data/storage/el2/base/preferences/首选项数据目录用户设置、主题偏好data/storage/el2/base/files/应用文件目录用户创建的文件data/storage/el2/base/cache/缓存目录排除临时文件、图片缓存四、数据存储路径说明4.1 EL 等级说明HarmonyOS 沙箱路径中的el表示加密级别Encryption Level加密级别路径说明备份场景el1设备级加密设备解锁前可访问不常用el2用户级加密用户解锁后可访问萌宠日记使用el3增强加密需要用户身份验证金融级数据el4最高加密最高安全等级敏感数据4.2 萌宠日记的数据存储路径萌宠日记的数据存储在el2目录下包含以下数据数据类型存储路径备份策略关系型数据库el2/database/✅ 备份用户首选项el2/base/preferences/✅ 备份用户文件el2/base/files/✅ 备份图片缓存el2/base/cache/❌ 排除五、备份策略设计5.1 备份触发时机触发方式说明用户是否感知手动备份用户在设置中点击“备份“有感知自动备份系统在充电WiFi 环境下自动备份无感知换机迁移新设备恢复时触发有感知应用重装重装应用时恢复数据有感知5.2 备份数据的大小限制限制项限制值说明单应用备份大小无硬性限制受存储空间约束备份文件数量建议不超过 1000 个过多文件影响备份效率单文件大小建议不超过 100MB大型文件如视频需单独处理六、备份扩展的完整生命周期6.1 扩展生命周期import { BackupExtensionAbility } from kit.CoreFileKit; import { hilog } from kit.PerformanceAnalysisKit; const DOMAIN 0x0000; export default class EntryBackupAbility extends BackupExtensionAbility { // 创建时的初始化 onCreate(): void { hilog.info(DOMAIN, testTag, BackupAbility onCreate); } // 备份前准备 onBackup(): void { hilog.info(DOMAIN, testTag, BackupAbility onBackup); // 关闭所有数据库连接确保数据一致性 // 刷新 Preferences 缓存到磁盘 } // 恢复后处理 onRestore(): void { hilog.info(DOMAIN, testTag, BackupAbility onRestore); // 重建数据库连接 // 重新加载用户首选项 // 通知 UI 刷新数据 } // 销毁时的清理 onDestroy(): void { hilog.info(DOMAIN, testTag, BackupAbility onDestroy); } }6.2 生命周期与 UIAbility 的协同操作UIAbility 生命周期BackupExtensionAbility 生命周期备份开始onBackgroundonBackup备份进行中后台运行文件收集备份完成onForeground—恢复完成onForegroundonRestore七、备份数据的安全性7.1 加密机制HarmonyOS 的备份数据采用端到端加密安全层级保护措施说明传输层TLS 加密备份数据传输加密存储层AES-256 加密备份数据存储加密密钥管理硬件安全模块密钥存储在 TEE 环境中7.2 数据隔离每个应用的备份数据独立存储互不可见备份数据与运行时数据隔离存储加密密钥与应用签名绑定防止数据被其他应用解密八、备份恢复的测试方法8.1 模拟备份恢复# 使用 hdc 命令模拟备份恢复 hdc shell bm backup --bundle-name com.mengchongriji.app --backup-dir /data/backup # 触发恢复 hdc shell bm restore --bundle-name com.mengchongriji.app --backup-dir /data/backup8.2 验证备份数据# 查看备份目录 hdc shell ls -la /data/backup/com.mengchongriji.app/ # 检查备份文件完整性 hdc shell bm dump --backup --bundle-name com.mengchongriji.app九、常见问题与调试9.1 备份失败排查错误现象可能原因解决方案备份文件为空includeFiles 路径配置错误检查路径是否与实际沙箱路径一致备份恢复后数据丢失excludeFiles 排除了关键数据检查 excludeFiles 配置备份超时数据量过大考虑排除 cache 目录恢复后应用崩溃数据版本不兼容在 onRestore 中做数据迁移9.2 调试技巧// 添加详细的日志便于定位备份恢复问题 onBackup(): void { hilog.info(DOMAIN, testTag, Backup started at: %{public}s, Date.now().toString()) // 检查文件状态 // ... } onRestore(): void { hilog.info(DOMAIN, testTag, Restore completed at: %{public}s, Date.now().toString()) // 验证数据完整性 // ... }十、备份恢复最佳实践10.1 设计原则最小化备份数据只备份用户数据不备份缓存和临时文件数据一致性备份前确保数据写入完成版本兼容恢复时考虑数据格式的版本兼容性用户控制提供手动备份入口让用户掌握备份时机10.2 萌宠日记的备份策略数据类型备份策略理由日记数据全部备份用户核心数据不可丢失宠物档案全部备份用户核心数据健康记录全部备份用户核心数据提醒事项全部备份用户核心数据用户偏好全部备份恢复体验一致图片缓存不备份可重新加载节省空间临时文件不备份无保留价值总结本文从萌宠日记的备份恢复实现出发完整解析了 HarmonyOSExtensionAbilitybackup 类型的配置与开发备份恢复架构系统备份服务 备份扩展 备份配置的三层模型备份扩展实现BackupExtensionAbility 的 onBackup 和 onRestore 方法备份配置文件backup_config.json 的字段详解与路径规范数据存储路径EL 加密级别、沙箱路径说明安全性保障端到端加密、数据隔离测试与调试hdc 命令模拟备份恢复、问题排查下一篇我们将深入应用图标与启动窗口优化解析启动图标和启动窗口的配置技巧。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源应用文件备份恢复https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-file-backup-overview备份扩展开发指导https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/backup-extensionExtensionAbility 概述https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/extensionability-overview应用沙箱路径https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/application-sandbox数据加密级别https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/data-encryption应用数据备份恢复https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-data-migration-overview备份恢复 FAQhttps://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-file-backup-restore关系型数据库备份https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-data-persistence

相关新闻

远程系统日志服务

远程系统日志服务

一、rsyslog的作用负责按照策略采集系统中生成的日志并把日志按照规则存放到相应文件中二、存放日志类别日志文件日志种类/var/log/messages服务信息,服务启动报错/var/log/secure认证信息日志/var/log/maillog邮件日志/var/log/cron定时任务日志/var/log/boot.log系…

2026/7/26 18:09:08 阅读更多 →
手板模型供应商到底如何选不踩坑?

手板模型供应商到底如何选不踩坑?

手板模型公司怎么选?其实现在外面的手板厂大大小小数不胜数,有的甚至刚成立几个月,因此交付质量也参差不齐,最终影响是整个研发项目。这种乱象太多了,你们有感受吗?结论清单:选手板供应商&#…

2026/7/26 14:15:34 阅读更多 →
每天60秒读懂世界:2026年7月21日15条新闻

每天60秒读懂世界:2026年7月21日15条新闻

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/7/26 18:09:11 阅读更多 →

最新新闻

Mysql-表设计

Mysql-表设计

表设计的方法: 1)从需求中获得类,类对应到数据库中的实体,实体在数据库中就表现为一张一张的表,类中的属性就对应着表中的字段(类和实体,属性和字段是不同的环境不同的称呼)2&#x…

2026/7/30 14:43:12 阅读更多 →
大规模代码如何用 Claude Code 进行迁移

大规模代码如何用 Claude Code 进行迁移

前些年,生产级代码库的跨语言迁移不仅要花上数年时间编写代码,还要长期维护两套并行的语言实现。然而最近一个月,借助 Claude Code 和多个 Claude 模型,Anthropic 多名研发人员完成了 10 个代码包的语言迁移,规模从数万…

2026/7/30 14:43:12 阅读更多 →
【独家首发】2024中国AI仓储渗透率地图:TOP10城市部署热力图+中小企适配成本红线(数据源自372家实地调研)

【独家首发】2024中国AI仓储渗透率地图:TOP10城市部署热力图+中小企适配成本红线(数据源自372家实地调研)

更多请点击: https://intelliparadigm.com 第一章:AI仓储管理方案的演进逻辑与行业共识 AI仓储管理并非单纯的技术叠加,而是供应链效率、数据治理能力与业务敏捷性三重诉求长期博弈后形成的系统性收敛。早期WMS系统以规则驱动为主&#xff0…

2026/7/30 14:43:12 阅读更多 →
山东涡街流量计制造厂家哪些比较好?

山东涡街流量计制造厂家哪些比较好?

山东涡街流量计制造厂家哪些比较好? 在工业过程测控领域,涡街流量计凭借适用性广、维护成本低、适配蒸汽与气体介质的优势,被广泛应用于热力供热、化工生产、市政管网、工矿能耗监测等场景。山东是国内工业流量仪表的重要生产集聚地&#xff…

2026/7/30 14:43:12 阅读更多 →
二分图算法精讲:从染色法判定到匈牙利算法实战

二分图算法精讲:从染色法判定到匈牙利算法实战

1. 项目概述:为什么二分图值得你花时间彻底搞懂? 如果你刷过一些算法题,或者接触过图论,大概率听说过“二分图”这个词。它听起来有点学术,但实际应用场景却出奇地广泛,从社交网络的好友推荐、到任务调度、…

2026/7/30 14:43:12 阅读更多 →
UnrealPakViewer:虚幻引擎Pak文件深度分析与可视化解决方案

UnrealPakViewer:虚幻引擎Pak文件深度分析与可视化解决方案

UnrealPakViewer:虚幻引擎Pak文件深度分析与可视化解决方案 【免费下载链接】UnrealPakViewer 查看 UE4 Pak 文件的图形化工具,支持 UE4 pak/ucas 文件 项目地址: https://gitcode.com/gh_mirrors/un/UnrealPakViewer 摘要 在虚幻引擎项目开发中…

2026/7/30 14:42:12 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻