Tester la sauvegarde
| Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
|---|---|---|---|---|
| 21 octobre 2026 | - | - | - | 1.0.0-alpha03 |
Déclarer des dépendances
Pour ajouter une dépendance sur test-backup, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :
Groovy
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") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Test de restauration de sauvegarde automatisée version 1.0
Version 1.0.0-alpha03
21 octobre 2026
Publication d'androidx.test.backup:backup:1.0.0-alpha03 et d'androidx.test.backup:backup-host:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03
Nouvelles fonctionnalités
- Configuration simplifiée des tests dans les suites de tests de sauvegarde du plug-in Android Gradle en ciblant automatiquement l'application testée lorsque
@BackupRestoreConfigest omis. (I1452b) - Ajout de la prise en charge de l'héritage des paramètres
@BackupRestoreConfiget@Isolationd'une classe de test externe dans les classes de test@Nested. (Ia45a8) - Ajout de la possibilité d'injecter
BackupRestoreControllerdirectement dans les constructeurs de classe de test et les méthodes de configuration@BeforeAll. (I6e822, Ia2ebd) - Ajout de la possibilité d'épingler un appareil spécifique à un rôle
@Devicedans les tests multi-appareils à l'aide de la propriétéandroidx.test.backup.device.serial.{role}. (I484be)
Correction de bugs
- Correction de
performBackupetperformRestorepour que les tests échouent immédiatement au lieu de réussir silencieusement lorsqu'une sauvegarde est ignorée ou vide, lorsque le service externe de sauvegarde renvoie une erreur ou lorsqu'une archive de sauvegarde locale appartient à une autre application ou à un autre appareil. (I7673d, I478ad, I0b989, I9a0ea, I79567) - Correction des tests qui se bloquent indéfiniment sur les appareils qui ne répondent pas en appliquant des délais avant expiration pour les étapes de sauvegarde, de restauration, d'actions sur l'appareil et de nettoyage. (I10661, I9cdee, If5f92)
- Correction de la suppression par
performBackupdes fichiers de sauvegarde générés à la fin de l'exécution du test. Les archives de sauvegarde sont désormais conservées sur le disque après la fin des tests. (I8c13f) - Correction des assistants de test de base de données (
StorageDomain.Database) pour stocker et vérifier correctement les valeursnull, écraser les lignes existantes lors de l'amorçage des données de test, détecter rapidement les configurations de table non valides et échouer lorsqu'un fichier de base de données attendu est manquant. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18) - Correction des outils d'aide aux tests
SharedPreferencespour préserver précisément les types de données et permettre la vérification des préférencesnullou supprimées. (I8456d9, I1d0fc2) - Correction de
runOnDevicepour gérer les charges utiles de test volumineuses sans plantage, mise en pause du débogueur lorsquewaitForDebuggerest activé, recherche de l'exécuteur de test dans les noms de packages APK de test personnalisés et blocage des indicateurs d'exécuteur interne pour éviter qu'ils ne s'infiltrent dans les actions de l'appareil. (Ic73bd, Iede17, I1d172, I84c15) - Amélioration de la stabilité et de la vitesse des tests en partageant une seule connexion ADB pendant l'exécution du test, en n'installant les APK qu'une seule fois par appareil et en échouant clairement lorsqu'un APK ne s'installe pas ou ne se lance pas. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
- Correction de l'écriture de fichiers journaux vides par
fetchDeviceLogset arrêt de la génération de faux rapports d'échec par les exécutions de tests annulées. (I736c4, I7b199, Ia847e) - Nettoyage des dépendances
backup-hostpour queadblibsoit disponible directement pour les appelants et que les bibliothèques de journalisation ou de test internes n'entrent plus en conflit avec le classpath de votre projet. (I6e822, Iba9a4, Ib4ec9)
Version 1.0.0-alpha02
7 octobre 2026
Publication d'androidx.test.backup:backup:1.0.0-alpha02 et d'androidx.test.backup:backup-host:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02
Modifications apportées à l'API
- Les clés de charge utile sont désormais documentées en tant que
BackupActionInputKeys,BackupActionOutputKeysetBackupActionValues, en remplacement des constantes surBackupDeviceAction. Ajout des fabriquesBackupDeviceActionResult.success()etfailure(), ainsi que des accesseursisSuccesseterrorMessage. (Ibd493)
Correction de bugs
BackupRestoreController.clearAppDatagénère désormaisIOExceptionlorsquepm clearne signale pas de réussite, au lieu de continuer sans rien signaler. (I61556)- Les arguments shell transmis à
BackupRestoreControllerpour l'exécution sur l'appareil sont désormais correctement échappés pour empêcher l'injection de commandes et garantir que les chemins d'accès aux fichiers contenant des espaces sont gérés de manière sécurisée. - Renforcement des actions de stockage groupées (
PopulateStorageActionetAssertStorageAction) contre les passes de validation silencieuses pour s'assurer que les tests échouent strictement lorsque les données attendues sont manquantes. - Les orchestrateurs de test côté hôte respectent désormais correctement les échecs d'action intrabande signalés par l'appareil au lieu de les ignorer.
- Correction d'un problème de remplissage des lignes de la base de données en encodant en pourcentage le format de transmission
'values'de la base de données, ce qui évite la corruption des données lors du transport de la charge utile. - Correction des failles de sécurité dans
androidx.test.backup:backup-hosten mettant à niveau les dépendances.
Version 1.0.0-alpha01
23 septembre 2026
Publication d'androidx.test.backup:backup:1.0.0-alpha01 et d'androidx.test.backup:backup-host:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01
Fonctionnalités de la version initiale
Version initiale du framework de test de sauvegarde et de restauration automatiques pour Android. Cette bibliothèque fournit un moyen automatisé et de bout en bout de vérifier que les données utilisateur et les identifiants de compte sont conservés en toute sécurité lors des mises à niveau de l'appareil et des restaurations cloud. Au lieu de s'appuyer sur des tests manuels, les développeurs peuvent automatiser l'intégralité du cycle de vie : amorçage de l'état de l'application, sauvegarde selon les règles configurées (dataExtractionRules et fullBackupContent), effacement de l'application et vérification de l'intégrité des données après la restauration. Le framework fournit deux artefacts : androidx.test.backup:backup-host (qui s'exécute sur l'ordinateur hôte pour orchestrer les passes de sauvegarde, d'effacement et de restauration sur ADB) et androidx.test.backup:backup (qui s'exécute sur l'appareil pour renseigner et vérifier les données de l'application).
BackupRestoreController: interface principale côté hôte utilisée pour contrôler les workflows de sauvegarde, d'effacement, de restauration et de validation d'un appareil de test. Fournit des pipelines pratiques tels querunBackupRestoreFlow, ainsi que des opérations précises (performBackup,performRestore,clearAppData,fetchDeviceLogsetrunOnDevice). Compatible avec les coroutines Kotlin et l'exécution asynchrone JavaListenableFuture.BackupRestoreExtension: extension JUnit 5 Jupiter qui résout et injecte des paramètresBackupRestoreControllerdans les méthodes de test. Gère les sessions ADB autonomes ou partagées, installe automatiquement les APK testés et de test, ferme les écrans de verrouillage et les écrans de verrouillage par code des appareils pour déverrouiller l'espace de stockage protégé par des identifiants, et applique l'isolation du bac à sable de test.BackupRestoreTestRunner: exécuteur de testsInstrumentationsur l'appareil s'exécutant dans le bac à sable de l'application. Résout et exécute de manière dynamique les implémentationsBackupDeviceActiondemandées et envoyées par les orchestrateurs hôtes, et redirige de manière sécurisée les charges utiles de résultats JSON volumineuses vers le disque pour éviter les limites de tampon de transaction Binder.BackupDeviceAction: contrat pour les actions personnalisées côté appareil s'exécutant directement dans le bac à sable de l'application cible lors de l'amorçage des données (PHASE_POPULATE) ou de la validation post-restauration (PHASE_VERIFY).StorageDomain: descripteurs fortement typés (Preference,Database,TextFileetBinaryFile) utilisés avec des assistants d'action prédéfinis (PopulateStorageActionetAssertStorageAction) pour amorcer et déclarer automatiquement des bases de donnéesSharedPreferences, SQLite et des fichiers bruts dans les contextes de stockage Credential Protected (CE) et Device Protected (DE) sans code récurrent.BackupTransportMode: spécifie la topologie de transport de sauvegarde de la plate-forme à simuler lors des tests, y comprisDEVICE_TO_DEVICE(migration d'appareil physique via USB ou Wi-Fi Direct),CLOUD_ENCRYPTED(sauvegarde cloud avec chiffrement de bout en bout côté client),CLOUD_UNENCRYPTED(sauvegarde cloud standard) etLOCAL(sauvegarde du système de fichiers local hors connexion).@Deviceet@Isolation: annotations d'hôte permettant de sélectionner les appareils connectés correspondant à des numéros de série, des niveaux d'API ou des rôles multi-appareils spécifiques, et de configurer des règles d'isolation de bac à sable entre les exécutions de test (IsolationPolicy.AUTOMATICpar rapport àIsolationPolicy.MANUAL).