HarmonyOS鸿蒙Next中应用备份和恢复有没有简便的测试方法

HarmonyOS鸿蒙Next中应用备份和恢复有没有简便的测试方法 应用备份和恢复有没有简便的测试方法,现在知道的是使用迁移助手
有没有什么命令行或其他工具来单独测试某个App的备份和恢复能力呢?

4 回复

开发者您好:

【背景知识】

【解决方案】

目前验证数据迁移备份只能通过迁移调试工具开发者自验证和应用上架后端到端验证

步骤可以参考下面: 终端设备升级版本时,先进行原始数据分析和环境准备,通过使用BackupExtensionAbility实现数据备份恢复及自验证,适配完成以后上架测试验证,参考以下步骤:

  1. 适配准备完成以后,接入备份恢复框架,进行应用数据导入和转换,由于APK应用沙箱目录与备份恢复目录映射关系不一致可能会导致备份目录数据为空,映射关系可参考,通过自定义类继承BackupExtensionAbility,重写其onRestore方法可实现备份数据恢复,可以参考代码:
import BackupExtensionAbility, { BundleVersion } from '@ohos.application.BackupExtensionAbility';
import { contextConstant } from '@kit.AbilityKit';
import { fileIo } from '@kit.CoreFileKit';

const TAG = `BackupExtensionAbility`;

export default class BackupExtension extends BackupExtensionAbility {
  onBackup() {
    console.log(TAG, `onBackup ok`);
  }

  // onRestore接口是同步接口,其内部所有的异步操作请进行同步等待。
  async onRestore(bundleVersion: BundleVersion): Promise<void> {
    console.log(TAG, `onRestore ok ${JSON.stringify(bundleVersion)}`);
    if (bundleVersion.name.startsWith("0.0.0.0")) {
      // 在此处实现终端设备从HarmonyOS 4.0升级到HarmonyOS NEXT后,应用数据的转换和迁移
      // 涉及异步操作请进行同步等待
      this.context.area = contextConstant.AreaMode.EL2;
      let ceSourcePath = this.context.backupDir + "restore/{APK包名}/ce/"
      let destEl2Path = this.context.filesDir;
      try {
        fileIo.copyDirSync(ceSourcePath, destEl2Path, 1)
        console.log(TAG, `copyEl2Dirsuccess`);
      } catch (error) {
        console.log(TAG, `copyEl2Dirfail`);
      }
      console.log(TAG, `HarmonyOS to HarmonyOS NEXT scenario`);
    } else {
      // 在此处实现从HarmonyOS NEXT设备迁移到HarmonyOS NEXT设备后,应用数据的处理。无特殊要求,可以空实现
      // 涉及异步操作请进行同步等待
      console.log(TAG, `Other scenario`);
    }
  }
}
  1. 数据迁移成功后,应用上架发布进行调试和验证分为测试应用上架发布、HarmonyOS 3.0/4.0测试设备和环境准备、设备升级后触发测试结果步骤:
  2. 一、测试应用上架发布:
  3. 发布测试版本的HarmonyOS应用到应用市场服务器。开发者可以通过邀请测试或者公开测试的方式,限定应用的分发范围。
  4. 关联android应用,建立android版本和HarmonyOS应用的关联关系。参考链接:发布HarmonyOS应用
  5. 二、HarmonyOS 3.0/4.0测试设备和环境准备:
  6. 准备HarmonyOS 3.0/4.0设备,满足如下条件: 1.1. HarmonyOS 3.0/4.0已经具备调测能力,Mate60系列版本需在XXX.XX.XX.XX之后的版本; 1.2. 设备可以升级到HarmonyOS NEXT版本; 1.3. 打开开发者选项支持开发者将终端设备。开启方式:设置->关于手机,连续点击7次“软件版本”,根据操作指引完成开启。
  7. 准备android版本调测应用,操作方法: 2.1. 在APK应用工程的androidManifest.xml文件中新增如下meta-data配置,开启调测开关<meta-data android:name="HmosAppMigrateTest" android:value="true"/>; 2.2. 打包应用,并使用原应用的秘钥签名,保证应用身份可信。
  8. 安装调测android应用,并准备应用数据。
  9. 通过OTA方式,升级设备到HarmonyOS NEXT版本,并跟随设备向导操作,进入桌面。
  10. 下载并安装测试版的HarmonyOS应用。 2.1. 邀请测试发布的:通过邀请测试链接下载安装; 2.2. 公开测试发布的:从应用市场-我的-应用尝鲜入口,找到应用并下载安装。
  11. 测试版本HarmonyOS应用安装完成之后,系统会自动执行对应应用的数据迁移。开发者可在应用数据迁移结束后,验证数据迁移的结果。
  12. 如果需要再次重复验证,将设备回退HarmonyOS 3.0/4.0版本,重复执行。

【常见FAQ】 Q:为何使用BackupExtensionAbility实现数据备份恢复后app无法打开,弹出【数据恢复中,请稍后再试】? A:弹出【数据恢复中,请稍后再试】,是因为当前在数据恢复中;数据恢复中使用应用,可能会出现数据兼容问题。不建议在数据恢复期间使用应用。

Q:开发者自验证所需迁移调试工具如何获取? A:工具获取可参考适配流程,数据迁移验证详情请参考开发者自验证

  • HarmonyOS NEXT Developer Beta1及之后版本,厂商合作伙伴可通过IssueReporter平台提交工单,向华为方技术支持人员申请“迁移调试”工具,公共开发者请通过“华为开发者联盟官网”->“支持”,在线提单方式获取。
  • HarmonyOS NEXT Developer Beta1之前版本,开发者可以通过系统内置“迁移调试”工具,模拟进行数据迁移验证。

更多关于HarmonyOS鸿蒙Next中应用备份和恢复有没有简便的测试方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你好,HarmonyOS NEXT目前保留了 Android-era 的「bm」工具,并新增「backup」子命令,可直接对指定 bundleName 做一次性备份或恢复,如果需要可以参考网址中的内容https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/file-management/app-file-backup.md(目前仅对系统应用开放)

在HarmonyOS Next中,应用备份和恢复可通过DevEco Studio的模拟器功能进行测试。使用模拟器内置的备份恢复选项,可模拟数据备份及还原流程。同时,华为提供了本地数据管理接口,允许开发者通过调用相关API直接验证备份文件的生成与恢复操作,无需依赖物理设备或复杂环境配置。

目前HarmonyOS Next中应用备份和恢复功能主要通过系统级工具实现,暂未提供单独测试某个App的命令行工具。建议使用迁移助手进行完整测试,或通过DevEco Studio的模拟器功能模拟备份恢复场景进行验证。

回到顶部