自动备份恢复测试

  
自动化测试框架,用于验证用户数据和账号凭据在设备升级和云恢复后是否安全无虞。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2026 年 9 月 23 日 - - - 1.0.0-alpha01

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

自动备份恢复测试版本 1.0

版本 1.0.0-alpha01

2026 年 9 月 23 日

发布了 androidx.test.backup:backup:1.0.0-alpha01androidx.test.backup:backup-host:1.0.0-alpha01。版本 1.0.0-alpha01 中包含这些提交内容

初始版本的功能

Android 的自动化备份和恢复测试框架的初始版本。此库提供了一种自动化的端到端方式,用于测试用户数据和账号凭据在设备升级和云恢复后是否仍安全可用。开发者可以自动执行整个生命周期,而无需依赖手动测试:根据您配置的规则(dataExtractionRulesfullBackupContent)播种应用状态并备份,擦除应用,以及验证恢复后的数据完整性。该框架提供两种制品:androidx.test.backup:backup-host(在主机上运行,用于通过 ADB 编排备份、擦除和恢复传递)和 androidx.test.backup:backup(在设备上运行,用于填充和验证应用数据)。

  • BackupRestoreController:用于控制测试设备的备份、擦除、恢复和验证工作流的主要主机端接口。提供便捷的流水线(例如 runBackupRestoreFlow)以及细粒度的操作(performBackupperformRestoreclearAppDatafetchDeviceLogsrunOnDevice)。同时支持 Kotlin 协程和 Java ListenableFuture 异步执行。
  • BackupRestoreExtension:一种 JUnit 5 Jupiter 扩展,用于解析 BackupRestoreController 参数并将其注入到测试方法中。管理独立或共享的 ADB 会话,自动安装测试过的 APK 和测试 APK,关闭设备锁屏界面和锁屏保护程序以解锁受凭据保护的存储空间,并强制执行测试沙盒隔离。
  • BackupRestoreTestRunner:在应用沙盒内执行的设备端 Instrumentation 测试运行程序。动态解析并执行由宿主编排器分派的请求 BackupDeviceAction 实现,并将大型 JSON 结果载荷安全地重定向到磁盘,以防止 Binder 事务缓冲区限制。
  • BackupDeviceAction:用于在数据植入 (PHASE_POPULATE) 或恢复后验证 (PHASE_VERIFY) 期间直接在目标应用沙盒中执行的自定义设备端操作的合约。
  • StorageDomain:与预建操作辅助程序(PopulateStorageActionAssertStorageAction)一起使用的强类型描述符(PreferenceDatabaseTextFileBinaryFile),用于在凭据保护 (CE) 和设备保护 (DE) 存储上下文之间自动播种和断言 SharedPreferences、SQLite 数据库和原始文件,而无需样板代码。
  • BackupTransportMode:指定在测试运行期间要模拟的平台备份传输拓扑,包括 DEVICE_TO_DEVICE(通过 USB 或 WLAN 直连 进行实体设备迁移)、CLOUD_ENCRYPTED(具有客户端端到端加密功能的云备份)、CLOUD_UNENCRYPTED(标准云备份)和 LOCAL(离线本地文件系统备份)。
  • @Device@Isolation:用于选择与特定序列号、API 级别或多设备角色匹配的已连接设备的宿主注释,以及用于配置测试运行之间的沙盒隔离政策(IsolationPolicy.AUTOMATICIsolationPolicy.MANUAL)。