Функция восстановления учетных данных в Менеджере учетных данных обеспечивает удобный переход на новое устройство. При тестировании функции можно использовать любой из следующих подходов:
- Разные устройства. Используйте исходное устройство для резервного копирования и отдельное целевое устройство для восстановления или два разных эмулятора Android Studio.
- Одно устройство. Используйте одно физическое устройство или эмулятор Android Studio. После того как приложение создаст резервную копию данных, удалите и переустановите его, а затем выполните восстановление.
В этом руководстве описано, как использовать Android Studio для тестирования учетных данных для восстановления в отладочном приложении на эмуляторе, имитируя ситуации с отдельными устройствами или одним устройством.
Требования
Чтобы использовать функцию резервного копирования и восстановления в Android Studio для тестирования восстановления учетных данных, убедитесь, что выполнены следующие условия:
- Android Studio Otter | 2025.2.1 или более поздней версии.
- Виртуальное устройство или физическое устройство с Android 9 (уровень API 28) или более поздней версией, системным образом Google Play и сервисами Google Play версии
242200000или более поздней (проверьте с помощьюadb shell dumpsys package com.google.android.gms | grep versionCode). - Аккаунт Google, в который выполнен вход на тестовом устройстве или эмуляторе. На устройстве или эмуляторе должен быть настроен PIN-код, графический ключ или пароль для разблокировки экрана (Настройки > Безопасность). Это необходимо, чтобы активировать сквозное шифрование в облаке и избежать ошибки
E2eeUnavailableException. - Приложение, созданное с помощью
debuggable trueили работающее в режимеdebug. Для эмуляторов отладка включена по умолчанию.
Как использовать функцию резервного копирования и восстановления в Android Studio
Чтобы протестировать функцию восстановления учетных данных в Android Studio, сначала создайте резервную копию данных на одном устройстве, а затем восстановите данные приложения на другом. После восстановления приложения статус аутентификации восстанавливается автоматически.
Как создать резервную копию данных аутентификации в Android Studio
Чтобы протестировать резервное копирование в Android Studio, выполните следующие действия:
- Запустите приложение в эмуляторе.
- Войдите в приложение, используя любой механизм аутентификации (например, имя пользователя и пароль, ключи доступа или функцию "Войти с аккаунтом Google"), чтобы приложение вызвало
createCredential()сCreateRestoreCredentialRequest. - В верхней части окна активного устройства нажмите Backup App Data (Резервное копирование данных приложения).
Рис. 1. Резервное копирование данных приложения в Android Studio В разделе Тип резервного копирования выберите С устройства на устройство или Облако.
Нажмите ОК.
Проверьте восстановленную аутентификацию
После завершения резервного копирования используйте то же или другое устройство, чтобы протестировать восстановление.
Чтобы протестировать процесс восстановления в Android Studio, выполните следующие действия:
Чтобы провести тестирование на том же устройстве, удалите и переустановите приложение (
adb uninstall <package_name>, а затемadb install <path_to_apk>). Это очистит все локальные данные приложения и предыдущий ключ восстановления на устройстве. Чтобы использовать его на новом устройстве, установите на него приложение.Чтобы протестировать фоновое восстановление первого уровня (
BackupAgent.onRestoreFinished()), не запускаяActivity, в Android Studio выберите Run (Запуск) > Edit Configurations (Изменить конфигурации) и перед установкой задайте для параметра Launch Options (Параметры запуска) > Launch (Запуск) значение Nothing (Ничего). Если вы запустите приложение до того, как выполните команду Восстановить данные приложения, вы будете перенаправлены на экран аутентификации, поскольку ключ восстановления ещё не был восстановлен на устройстве.В окне "Активные устройства" нажмите Восстановить данные приложения и выберите недавно созданную резервную копию.
Рисунок 2. Восстановление данных приложения в Android Studio Проверьте Logcat, чтобы убедиться, что
BackupAgent.onRestoreFinished()получилRestoreCredentialв фоновом режиме, или откройте приложение и убедитесь, что вход пользователя выполняется автоматически.
Тестирование с помощью adb или автоматизированных наборов тестов JUnit 5
Помимо интерфейса Android Studio, вы можете протестировать процессы резервного копирования и восстановления из командной строки или в непрерывной интеграции (CI):
- Тестирование в командной строке с помощью
bmgr. На физическом устройстве или в эмуляторе без графического интерфейса включите диспетчер резервного копирования (adb shell bmgr enable true), запустите резервное копирование (adb shell bmgr backupnow <package_name>), переустановите приложение, посмотрите список доступных наборов резервных копий (adb shell bmgr list sets) и запустите восстановление (adb shell bmgr restore <token> <package_name>). Подробную информацию вы найдете в статье Тестирование резервного копирования и восстановления. - Автоматизированные тесты хоста JUnit 5 (
androidx.test.backup). Напишите автоматизированные тесты JUnit 5 с помощьюBackupRestoreController, чтобы проверитьBackupTransportMode.CLOUD_ENCRYPTEDиBackupTransportMode.DEVICE_TO_DEVICEна одном или двух подключенных устройствах. Инструкции по настройке и примеры тестов можно найти в статье Автоматическое тестирование резервного копирования и восстановления.