Testowa kopia zapasowa
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| 21 października 2026 r. | - | - | - | 1.0.0-alpha03 |
Deklarowanie zależności
Aby dodać zależność od testowej kopii zapasowej, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.test.backup:backup:1.0.0-alpha03" implementation "androidx.test.backup:backup-host:1.0.0-alpha03" }
Kotlin
dependencies { implementation("androidx.test.backup:backup:1.0.0-alpha03") implementation("androidx.test.backup:backup-host:1.0.0-alpha03") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Prześlij opinię
Twoja opinia pomoże nam ulepszyć Jetpacka. Daj nam znać, jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki. Przed utworzeniem nowego problemu zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Automatyczny test przywracania kopii zapasowej w wersji 1.0
Wersja 1.0.0-alpha03
21 października 2026 r.
Publikacja androidx.test.backup:backup:1.0.0-alpha03 i androidx.test.backup:backup-host:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Nowe funkcje
- Uproszczona konfiguracja testów w zestawach testów kopii zapasowej wtyczki Androida do obsługi Gradle dzięki automatycznemu kierowaniu na testowaną aplikację, gdy pominięto
@BackupRestoreConfig. (I1452b) - Dodaliśmy obsługę dziedziczenia ustawień
@BackupRestoreConfigi@Isolationz zewnętrznej klasy testowej w klasach testowych@Nested. (Ia45a8) - Dodano obsługę wstrzykiwania
BackupRestoreControllerbezpośrednio do konstruktorów klas testowych i metod konfiguracji@BeforeAll. (I6e822, Ia2ebd) - Dodano obsługę przypinania konkretnego urządzenia do roli
@Devicew testach na wielu urządzeniach za pomocą właściwościandroidx.test.backup.device.serial.{role}. (I484be)
Poprawki błędów
- Naprawiliśmy błędy
performBackupiperformRestore, dzięki czemu testy kończą się niepowodzeniem, zamiast przechodzić bez powiadomienia, gdy kopia zapasowa zostanie pominięta lub jest pusta, gdy usługa obsługująca kopie zapasowe zgłasza błąd lub gdy lokalne archiwum kopii zapasowej należy do innej aplikacji lub innego urządzenia. (I7673d, I478ad, I0b989, I9a0ea, I79567) - Rozwiązaliśmy problem z testami, które zawieszały się na urządzeniach, które nie reagowały, przez wymuszenie limitów czasu podczas tworzenia kopii zapasowej, przywracania, działań na urządzeniu i czyszczenia. (I10661, I9cdee, If5f92)
- Naprawiliśmy błąd, który powodował, że
performBackupusuwał wygenerowane pliki kopii zapasowej po zakończeniu testu. Teraz archiwa kopii zapasowych są przechowywane na dysku po zakończeniu testów. (I8c13f) - Naprawiliśmy funkcje pomocnicze testów bazy danych (
StorageDomain.Database), aby prawidłowo przechowywały i sprawdzały wartościnull, zastępowały istniejące wiersze podczas wypełniania danych testowych, wcześnie wykrywały nieprawidłowe konfiguracje tabel i zgłaszały błąd, gdy brakuje oczekiwanego pliku bazy danych. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18) - Naprawiliśmy funkcje pomocnicze testów
SharedPreferences, aby dokładnie zachowywały typy danych i obsługiwały sprawdzanienulllub usuniętych preferencji. (I8456d9, I1d0fc2) - Naprawiono błąd
runOnDevice, aby obsługiwać duże testowe ładunki bez awarii, wstrzymywać debuger, gdy włączona jest opcjawaitForDebugger, znajdować moduł uruchamiający testy w niestandardowych nazwach pakietów APK testów i blokować wyciek wewnętrznych flag modułu uruchamiającego do działań na urządzeniu. (Ic73bd, Iede17, I1d172, I84c15) - Poprawiliśmy stabilność i szybkość testów dzięki udostępnianiu jednego połączenia ADB podczas testu, instalowaniu plików APK tylko raz na urządzenie i wyraźnemu informowaniu o błędzie, gdy nie uda się zainstalować lub uruchomić pliku APK. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
- Naprawiliśmy błąd, który powodował, że
fetchDeviceLogszapisywał puste pliki dziennika, i zatrzymaliśmy generowanie fałszywych raportów o błędach w przypadku anulowanych sesji testowych. (I736c4, I7b199, Ia847e) - Oczyszczono zależności
backup-host, dzięki czemuadblibjest dostępny bezpośrednio dla obiektów wywołujących, a biblioteki wewnętrznego logowania lub testowania nie kolidują już ze ścieżką klasy projektu. (I6e822, Iba9a4, Ib4ec9)
Wersja 1.0.0-alpha02
7 października 2026 r.
Publikacja androidx.test.backup:backup:1.0.0-alpha02 i androidx.test.backup:backup-host:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Klucze ładunku są teraz dokumentowane jako
BackupActionInputKeys,BackupActionOutputKeysiBackupActionValues, zastępując stałe wBackupDeviceAction. Dodano fabrykiBackupDeviceActionResult.success()ifailure()oraz metody dostępuisSuccessierrorMessage. (Ibd493)
Poprawki błędów
BackupRestoreController.clearAppDatateraz zgłasza błądIOException, gdypm clearnie zgłasza powodzenia, zamiast kontynuować bez powiadomienia. (I61556)- Argumenty powłoki przekazywane do
BackupRestoreControllerw celu wykonania na urządzeniu są teraz prawidłowo uciekane, aby zapobiec wstrzykiwaniu poleceń i zapewnić bezpieczną obsługę ścieżek plików ze spacjami. - Wzmocniliśmy działania związane z pamięcią masową (
PopulateStorageActioniAssertStorageAction) przed cichymi testami weryfikacyjnymi, aby mieć pewność, że testy zakończą się niepowodzeniem, gdy brakuje oczekiwanych danych. - Orkiestratory testów po stronie hosta teraz prawidłowo uwzględniają błędy działań w paśmie zgłaszane przez urządzenie, zamiast je ignorować.
- Rozwiązaliśmy problem z wypełnianiem wierszy bazy danych przez kodowanie procentowe formatu bazy danych
'values', co zapobiega uszkodzeniu danych podczas przesyłania ładunku. - Usunięto luki w zabezpieczeniach w
androidx.test.backup:backup-hostprzez uaktualnienie zależności.
Wersja 1.0.0-alpha01
23 września 2026 r.
Publikacja androidx.test.backup:backup:1.0.0-alpha01 i androidx.test.backup:backup-host:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Funkcje w pierwszej wersji
Pierwsza wersja platformy do testowania automatycznego tworzenia i przywracania kopii zapasowej na Androidzie. Ta biblioteka zapewnia automatyczny, kompleksowy sposób testowania, czy dane użytkownika i dane logowania są bezpiecznie zachowywane podczas uaktualniania urządzenia i przywracania danych z chmury. Zamiast polegać na testowaniu ręcznym, deweloperzy mogą zautomatyzować cały cykl życia: wypełnianie stanu aplikacji, tworzenie kopii zapasowej zgodnie ze skonfigurowanymi regułami (dataExtractionRules i fullBackupContent), 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 i koordynuje tworzenie kopii zapasowej, czyszczenie i przywracanie danych przez ADB) oraz androidx.test.backup:backup (który działa na urządzeniu i wypełnia oraz weryfikuje dane aplikacji).
BackupRestoreController: główny interfejs po stronie hosta używany do kontrolowania przepływów pracy związanych z tworzeniem kopii zapasowych, czyszczeniem, przywracaniem i weryfikacją na urządzeniu testowym. Zapewnia wygodne potoki, takie jakrunBackupRestoreFlow, oraz szczegółowe operacje (performBackup,performRestore,clearAppData,fetchDeviceLogsirunOnDevice). Obsługuje zarówno współprogramy Kotlin, jak i asynchroniczne wykonywanie kodu JavaListenableFuture.BackupRestoreExtension: rozszerzenie JUnit 5 Jupiter, które rozpoznaje i wstrzykuje parametryBackupRestoreControllerdo metod testowych. Zarządza samodzielnymi lub udostępnionymi sesjami ADB, automatycznie instaluje testowane i testowe pliki APK, odrzuca ekrany blokady i blokady klawiatury urządzenia, aby odblokować pamięć chronioną danymi logowania, oraz wymusza izolację piaskownicy testowej.BackupRestoreTestRunner: narzędzie do uruchamiania testówInstrumentationna urządzeniu, które działa w piaskownicy aplikacji. Dynamicznie rozpoznaje i wykonuje żądane implementacjeBackupDeviceActionwysyłane przez orkiestratory 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, które są wykonywane bezpośrednio w piaskownicy aplikacji docelowej podczas wypełniania danych (PHASE_POPULATE) lub weryfikacji po przywróceniu (PHASE_VERIFY).StorageDomain: deskryptory o silnym typowaniu (Preference,Database,TextFileiBinaryFile) używane razem z gotowymi pomocnikami działań (PopulateStorageActioniAssertStorageAction) do automatycznego wypełniania i potwierdzaniaSharedPreferences, baz danych SQLite i nieprzetworzonych plików w kontekstach pamięci chronionej danymi logowania (CE) i chronionej przez urządzenie (DE) bez powtarzalnego kodu.BackupTransportMode: określa topologię transportu kopii zapasowej platformy, która ma być symulowana podczas testów, w tymDEVICE_TO_DEVICE(migracja urządzenia fizycznego przez USB lub Wi-Fi Direct),CLOUD_ENCRYPTED(kopia zapasowa w chmurze z pełnym szyfrowaniem po stronie klienta),CLOUD_UNENCRYPTED(standardowa kopia zapasowa w chmurze) iLOCAL(kopia zapasowa lokalnego systemu plików offline).@Devicei@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 do konfigurowania zasad izolacji piaskownicy między uruchomieniami testów (IsolationPolicy.AUTOMATICiIsolationPolicy.MANUAL).