Тест автоматического восстановления резервных копий

Автоматизированная система тестирования для проверки того, что пользовательские данные и учетные данные сохраняются в целости и сохранности после обновления устройств и восстановления из облака.
Последнее обновление Стабильный релиз Предварительная версия для выпуска Бета-версия Альфа-версия
23 сентября 2026 г. - - - 1.0.0-alpha01

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Тестовая версия 1.0 автоматического восстановления резервных копий

Версия 1.0.0-alpha01

23 сентября 2026 г.

Выпущены androidx.test.backup:backup:1.0.0-alpha01 и androidx.test.backup:backup-host:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты .

Особенности первоначального выпуска

Первый релиз фреймворка для автоматизированного тестирования резервного копирования и восстановления данных для Android. Эта библиотека предоставляет автоматизированный сквозной способ проверки того, что пользовательские данные и учетные данные сохраняются после обновления устройства и восстановления из облака. Вместо ручного тестирования разработчики могут автоматизировать весь жизненный цикл: заполнение состояния приложения, его резервное копирование в соответствии с настроенными правилами ( dataExtractionRules и fullBackupContent ), очистка приложения и проверка целостности данных после восстановления. Фреймворк предоставляет два артефакта: androidx.test.backup:backup-host (который запускается на хост-компьютере для организации резервного копирования, очистки и восстановления данных через ADB) и androidx.test.backup:backup (который запускается на устройстве для заполнения и проверки данных приложения).

  • BackupRestoreController : Основной интерфейс на стороне хоста, используемый для управления процессами резервного копирования, удаления, восстановления и проверки тестового устройства. Предоставляет удобные конвейеры, такие как runBackupRestoreFlow , а также операции с высокой степенью детализации ( performBackup , performRestore , clearAppData , fetchDeviceLogs и runOnDevice ). Поддерживает как сопрограммы Kotlin, так и асинхронное выполнение Java ListenableFuture .
  • BackupRestoreExtension : Расширение для Jupiter на основе JUnit 5, которое разрешает и внедряет параметры BackupRestoreController в тестовые методы. Управляет автономными или общими сессиями ADB, автоматически устанавливает тестируемые и тестовые APK-файлы, закрывает экраны блокировки устройства и экраны блокировки клавиатуры для разблокировки хранилища, защищенного учетными данными, и обеспечивает изоляцию тестовой песочницы.
  • BackupRestoreTestRunner : средство запуска Instrumentation тестов на устройстве, работающее внутри изолированной среды приложения. Динамически определяет и выполняет запрошенные реализации BackupDeviceAction , отправляемые оркестраторами хоста, и безопасно перенаправляет большие JSON-данные на диск, чтобы избежать превышения лимитов буфера транзакций Binder.
  • BackupDeviceAction : Контракт для пользовательских действий на стороне устройства, выполняемых непосредственно в песочнице целевого приложения во время заполнения данных ( PHASE_POPULATE ) или проверки после восстановления ( PHASE_VERIFY ).
  • StorageDomain : Строго типизированные дескрипторы ( Preference , Database , TextFile и BinaryFile ), используемые вместе с предварительно созданными вспомогательными функциями действий ( PopulateStorageAction и AssertStorageAction ) для автоматического заполнения и проверки SharedPreferences , баз данных SQLite и необработанных файлов в контекстах хранения с защитой учетных данных (CE) и защитой устройства (DE) без лишнего шаблонного кода.
  • BackupTransportMode : Задает топологию передачи резервных копий платформы для имитации во время тестовых проходов, включая DEVICE_TO_DEVICE (миграция на физическое устройство через USB или Wi-Fi Direct), CLOUD_ENCRYPTED (облачное резервное копирование с сквозным шифрованием на стороне клиента), CLOUD_UNENCRYPTED (стандартное облачное резервное копирование) и LOCAL (автономное резервное копирование локальной файловой системы).
  • @Device и @Isolation : Аннотации хоста для выбора подключенных устройств, соответствующих определенным серийным номерам, уровням API или ролям для нескольких устройств, а также для настройки политик изоляции в песочнице между запусками тестов ( IsolationPolicy.AUTOMATIC против IsolationPolicy.MANUAL ).