Sicherung testen
| Letzte Aktualisierung | Stabile Release | Releasekandidat | Beta-Release | Alpha-Release |
|---|---|---|---|---|
| 21. Oktober 2026 | - | - | - | 1.0.0-alpha03 |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von der Test-Sicherung hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Google-Repository bei Maven.
Fügen Sie die Abhängigkeiten für die benötigten Artefakte in der Datei build.gradle für Ihre App oder Ihr Modul hinzu:
Cool
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") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Automatischer Sicherungswiederherstellungstest Version 1.0
Version 1.0.0-alpha03
21. Oktober 2026
androidx.test.backup:backup:1.0.0-alpha03 und androidx.test.backup:backup-host:1.0.0-alpha03 sind veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
Neue Funktionen
- Vereinfachte Testeinrichtung in Android Gradle-Plug-in-Backup-Test-Suites durch automatisches Targeting der getesteten App, wenn
@BackupRestoreConfigweggelassen wird. (I1452b) - Unterstützung für das Übernehmen von
@BackupRestoreConfig- und@Isolation-Einstellungen aus einer äußeren Testklasse in@Nested-Testklassen hinzugefügt. (Ia45a8) - Unterstützung für das direkte Einfügen von
BackupRestoreControllerin Testklassenkonstruktoren und@BeforeAll-Einrichtungsmethoden hinzugefügt. (I6e822, Ia2ebd) - In Tests mit mehreren Geräten kann jetzt ein bestimmtes Gerät mit dem Attribut
androidx.test.backup.device.serial.{role}an eine@Device-Rolle angepinnt werden. (I484be)
Fehlerkorrekturen
performBackupundperformRestorewurden korrigiert, sodass Tests sofort fehlschlagen, anstatt ohne Meldung erfolgreich zu sein, wenn eine Sicherung übersprungen wird oder leer ist, wenn der Sicherungsdienst einen Fehler meldet oder wenn ein lokales Sicherungsarchiv zu einer anderen App oder einem anderen Gerät gehört. (I7673d, I478ad, I0b989, I9a0ea, I79567)- Es wurde ein Problem behoben, bei dem Tests auf nicht reagierenden Geräten unbegrenzt hängen blieben. Dazu wurden Zeitlimits für Sicherungs-, Wiederherstellungs-, Geräteaktionen und Bereinigungsschritte erzwungen. (I10661, I9cdee, If5f92)
- Es wurde ein Problem behoben, bei dem
performBackupgenerierte Sicherungsdateien nach Abschluss des Testlaufs gelöscht hat. Sicherungsarchive werden jetzt nach Beendigung der Tests auf dem Laufwerk beibehalten. (I8c13f) - Datenbanktest-Hilfsprogramme (
StorageDomain.Database) wurden korrigiert, umnull-Werte ordnungsgemäß zu speichern und zu prüfen, vorhandene Zeilen beim Seeding von Testdaten zu überschreiben, ungültige Tabellenkonfigurationen frühzeitig zu erkennen und einen Fehler auszugeben, wenn eine erwartete Datenbankdatei fehlt. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18) SharedPreferences-Testhelfer wurden korrigiert, um Datentypen genau beizubehalten und die Prüfung aufnulloder entfernte Einstellungen zu unterstützen. (I8456d9, I1d0fc2)runOnDevicewurde korrigiert, um große Testnutzlasten ohne Absturz zu verarbeiten, für den Debugger zu pausieren, wennwaitForDebuggeraktiviert ist, den Test-Runner in benutzerdefinierten Test-APK-Paketnamen zu finden und zu verhindern, dass interne Runner-Flags in Geräteaktionen gelangen. (Ic73bd, Iede17, I1d172, I84c15)- Die Stabilität und Geschwindigkeit der Tests wurde verbessert, indem eine einzige ADB-Verbindung für den gesamten Testlauf verwendet wird, APKs nur einmal pro Gerät installiert werden und ein klarer Fehler ausgegeben wird, wenn eine APK nicht installiert oder gestartet werden kann. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
- Es wurde ein Fehler behoben, durch den
fetchDeviceLogsleere Logdateien geschrieben hat. Außerdem wurde verhindert, dass abgebrochene Testläufe falsche Fehlerberichte generieren. (I736c4, I7b199, Ia847e) backup-host-Abhängigkeiten wurden bereinigt, sodassadblibdirekt für Aufrufer verfügbar ist und interne Logging- oder Testbibliotheken nicht mehr mit dem Klassenpfad Ihres Projekts in Konflikt stehen. (I6e822, Iba9a4, Ib4ec9)
Version 1.0.0-alpha02
7. Oktober 2026
androidx.test.backup:backup:1.0.0-alpha02 und androidx.test.backup:backup-host:1.0.0-alpha02 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
API-Änderungen
- Nutzlastschlüssel werden jetzt als
BackupActionInputKeys,BackupActionOutputKeysundBackupActionValuesdokumentiert und ersetzen die Konstanten inBackupDeviceAction. Die FactoriesBackupDeviceActionResult.success()undfailure()sowie die ZugriffsfunktionenisSuccessunderrorMessagewurden hinzugefügt. (Ibd493)
Fehlerkorrekturen
BackupRestoreController.clearAppDatalöst jetztIOExceptionaus, wennpm clearkeinen Erfolg meldet, anstatt im Hintergrund fortzufahren. (I61556)- Shell-Argumente, die zur Ausführung auf dem Gerät an
BackupRestoreControllerübergeben werden, werden jetzt korrekt maskiert, um Command Injection zu verhindern und sicherzustellen, dass Dateipfade mit Leerzeichen sicher verarbeitet werden. - Die gebündelten Speicheraktionen (
PopulateStorageActionundAssertStorageAction) wurden gegen unbemerkte Verifizierungsdurchläufe gehärtet, damit Tests strikt fehlschlagen, wenn erwartete Daten fehlen. - Hostseitige Test-Orchestratoren berücksichtigen jetzt korrekt die vom Gerät gemeldeten Fehler bei In-Band-Aktionen, anstatt sie zu ignorieren.
- Es wurde ein Problem mit dem Füllen von Datenbankzeilen behoben, indem das Datenbank-Wire-Format
'values'prozentcodiert wurde, um Datenbeschädigungen während des Nutzlasttransports zu verhindern. - Sicherheitslücken in
androidx.test.backup:backup-hostwurden durch ein Upgrade der Abhängigkeiten behoben.
Version 1.0.0-alpha01
23. September 2026
androidx.test.backup:backup:1.0.0-alpha01 und androidx.test.backup:backup-host:1.0.0-alpha01 sind veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Funktionen der ersten Version
Erste Version des Frameworks für automatisierte Sicherungs- und Wiederherstellungstests für Android. Diese Bibliothek bietet eine automatisierte End-to-End-Methode, um zu testen, ob Nutzerdaten und Kontoanmeldedaten Geräteupgrades und Cloud-Wiederherstellungen sicher überstehen. Anstatt sich auf manuelle Tests zu verlassen, können Entwickler den gesamten Lebenszyklus automatisieren: App-Status einrichten, gemäß den konfigurierten Regeln (dataExtractionRules und fullBackupContent) sichern, App löschen und die Datenintegrität nach der Wiederherstellung überprüfen. Das Framework bietet zwei Artefakte: androidx.test.backup:backup-host (wird auf dem Hostcomputer ausgeführt, um Sicherungs-, Lösch- und Wiederherstellungsvorgänge über ADB zu orchestrieren) und androidx.test.backup:backup (wird auf dem Gerät ausgeführt, um App-Daten zu füllen und zu prüfen).
BackupRestoreController: Die primäre hostseitige Schnittstelle, die zum Steuern von Sicherungs-, Lösch-, Wiederherstellungs- und Verifizierungsworkflows für ein Testgerät verwendet wird. Bietet praktische Pipelines wierunBackupRestoreFlowsowie detaillierte Vorgänge (performBackup,performRestore,clearAppData,fetchDeviceLogsundrunOnDevice). Unterstützt sowohl Kotlin-Koroutinen als auch die asynchrone Ausführung von Java-ListenableFuture.BackupRestoreExtension: Eine JUnit 5-Jupiter-Erweiterung, dieBackupRestoreController-Parameter auflöst und in Testmethoden einfügt. Verwaltet eigenständige oder freigegebene ADB-Sitzungen, installiert automatisch getestete und Test-APKs, schließt Sperrbildschirme und Tastensperren, um durch Anmeldedaten geschützten Speicher freizugeben, und erzwingt die Isolation der Test-Sandbox.BackupRestoreTestRunner: Ein On-Device-Instrumentation-Test-Runner, der in der Sandbox der Anwendung ausgeführt wird. Löst angeforderteBackupDeviceAction-Implementierungen, die von Host-Orchestratoren gesendet werden, dynamisch auf und führt sie aus. Leitet große JSON-Ergebnisnutzlasten sicher auf die Festplatte um, um Binder-Transaktionspufferlimits zu vermeiden.BackupDeviceAction: Der Vertrag für benutzerdefinierte geräteseitige Aktionen, die während des Daten-Seedings (PHASE_POPULATE) oder der Validierung nach der Wiederherstellung (PHASE_VERIFY) direkt in der Sandbox der Zielanwendung ausgeführt werden.StorageDomain: Stark typisierte Deskriptoren (Preference,Database,TextFileundBinaryFile), die zusammen mit vordefinierten Aktionshilfen (PopulateStorageActionundAssertStorageAction) verwendet werden, umSharedPreferences, SQLite-Datenbanken und Rohdateien sowohl in durch Anmeldedaten geschützten (CE) als auch in durch das Gerät geschützten (DE) Speicherkontexten automatisch ohne Boilerplate zu füllen und zu bestätigen.BackupTransportMode: Gibt die Topologie für die Sicherungsübertragung der Plattform an, die während der Testläufe simuliert werden soll. Dazu gehörenDEVICE_TO_DEVICE(Migration physischer Geräte über USB oder Wi-Fi Direct),CLOUD_ENCRYPTED(Cloud-Sicherung mit clientseitiger Ende-zu-Ende-Verschlüsselung),CLOUD_UNENCRYPTED(Standard-Cloud-Sicherung) undLOCAL(Sicherung des lokalen Dateisystems offline).@Deviceund@Isolation: Host-Annotationen zum Auswählen verbundener Geräte, die bestimmten Seriennummern, API-Levels oder Rollen für verschiedene Geräte entsprechen, und zum Konfigurieren von Sandbox-Isolationsrichtlinien zwischen Testläufen (IsolationPolicy.AUTOMATICim Vergleich zuIsolationPolicy.MANUAL).