Automatyczny test przywracania kopii zapasowej

  
Zautomatyzowane ramy testowe do weryfikacji, czy dane użytkownika i dane logowania do konta są bezpieczne podczas uaktualniania urządzenia i przywracania danych z chmury.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
23 września 2026 r. - - - 1.0.0-alpha01

Prześlij opinię

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Automated Backup Restore Test Version 1.0

Wersja 1.0.0-alpha01

23 września 2026 r.

Publikacja androidx.test.backup:backup:1.0.0-alpha01androidx.test.backup:backup-host:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zmiany.

Funkcje pierwszej wersji

Pierwsza wersja platformy testowej automatycznego tworzenia kopii zapasowych i przywracania danych na Androidzie. Ta biblioteka zapewnia zautomatyzowany, kompleksowy sposób testowania, czy dane użytkownika i dane logowania do konta są bezpieczne podczas uaktualniania urządzenia i przywracania z chmury. Zamiast polegać na testach ręcznych, deweloperzy mogą zautomatyzować cały cykl życia: inicjowanie stanu aplikacji, tworzenie kopii zapasowych zgodnie ze skonfigurowanymi regułami (dataExtractionRulesfullBackupContent), czyszczenie aplikacji i weryfikowanie integralności danych po przywróceniu. Platforma udostępnia 2 artefakty: androidx.test.backup:backup-host (który działa na komputerze hosta, aby koordynować tworzenie kopii zapasowych, czyszczenie i przywracanie za pomocą ADB) oraz androidx.test.backup:backup (który działa na urządzeniu, aby wypełniać i weryfikować dane aplikacji).

  • BackupRestoreController: główne interfejs po stronie hosta używany do sterowania przepływami pracy związanymi z tworzeniem kopii zapasowych, czyszczeniem, przywracaniem i weryfikacją na urządzeniu testowym. Zawiera wygodne potoki, takie jak runBackupRestoreFlow, a także precyzyjne operacje (performBackup, performRestore, clearAppData, fetchDeviceLogsrunOnDevice). Obsługuje zarówno korutyny Kotlin, jak i asynchroniczne wykonywanie w języku Java ListenableFuture.
  • BackupRestoreExtension: rozszerzenie JUnit 5 Jupiter, które rozwiązuje i wstrzykuje parametry BackupRestoreController do metod testowych. Zarządza samodzielnymi lub współdzielonymi sesjami ADB, automatycznie instaluje testowane i testowe pliki APK, zamyka ekrany blokady urządzenia i ekrany klucza, aby odblokować pamięć chronioną hasłem, oraz wymusza izolację piaskownicy testowej.
  • BackupRestoreTestRunner: Uruchamiający testy na urządzeniu Instrumentation, który działa w piaskownicy aplikacji. Dynamicznie rozwiązuje i wykonuje żądane implementacje BackupDeviceAction wysyłane przez orkiestratorów hosta oraz bezpiecznie przekierowuje duże ładunki wyników JSON na dysk, aby zapobiec przekroczeniu limitów bufora transakcji Binder.
  • BackupDeviceAction: umowa dotycząca niestandardowych działań po stronie urządzenia wykonywanych bezpośrednio w piaskownicy aplikacji docelowej podczas wypełniania danych (PHASE_POPULATE) lub weryfikacji po przywróceniu (PHASE_VERIFY).
  • StorageDomain: silnie typizowane deskryptory (Preference, Database, TextFileBinaryFile) używane wraz z gotowymi pomocnikami działań (PopulateStorageActionAssertStorageAction) do automatycznego wypełniania i sprawdzania SharedPreferences, baz danych SQLite i plików surowych w kontekstach pamięci chronionej przez dane logowania (CE) i chronionej przez urządzenie (DE) bez kodu standardowego.
  • BackupTransportMode: określa topologię transportu kopii zapasowej platformy, która ma być symulowana podczas testów, w tym DEVICE_TO_DEVICE (migracja urządzenia fizycznego przez USB lub Wi-Fi Direct), CLOUD_ENCRYPTED (kopia zapasowa w chmurze z szyfrowaniem typu end-to-end po stronie klienta), CLOUD_UNENCRYPTED (standardowa kopia zapasowa w chmurze) i LOCAL (kopia zapasowa offline w lokalnym systemie plików).
  • @Device@Isolation: adnotacje hosta do wybierania połączonych urządzeń pasujących do określonych numerów seryjnych, poziomów interfejsu API lub ról na wielu urządzeniach oraz konfigurowania zasad izolacji piaskownicy między przebiegami testów (IsolationPolicy.AUTOMATICIsolationPolicy.MANUAL).