Test di ripristino del backup automatico

  
Framework di test automatizzati per verificare che i dati utente e le credenziali dell'account sopravvivano in modo sicuro agli upgrade del dispositivo e ai ripristini dal cloud.
Ultimo aggiornamento Release stabile Candidato per la release Release beta Release alpha
23 settembre 2026 - - - 1.0.0-alpha01

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Crea un nuovo problema

Per saperne di più, consulta la documentazione di Issue Tracker.

Automated Backup Restore Test Version 1.0

Versione 1.0.0-alpha01

23 settembre 2026

androidx.test.backup:backup:1.0.0-alpha01 e androidx.test.backup:backup-host:1.0.0-alpha01 sono state rilasciate. La versione 1.0.0-alpha01 contiene questi commit.

Funzionalità della versione iniziale

Rilascio iniziale del framework di test di backup e ripristino automatici per Android. Questa libreria fornisce un modo automatizzato e end-to-end per verificare che i dati utente e le credenziali dell'account sopravvivano in modo sicuro agli upgrade del dispositivo e ai ripristini dal cloud. Anziché fare affidamento sui test manuali, gli sviluppatori possono automatizzare l'intero ciclo di vita: inizializzare lo stato dell'app, eseguirne il backup in base alle regole configurate (dataExtractionRules e fullBackupContent), cancellare l'app e verificare l'integrità dei dati dopo il ripristino. Il framework fornisce due artefatti: androidx.test.backup:backup-host (che viene eseguito sul computer host per orchestrare i passaggi di backup, cancellazione e ripristino tramite ADB) e androidx.test.backup:backup (che viene eseguito sul dispositivo per popolare e verificare i dati delle app).

  • BackupRestoreController: l'interfaccia principale lato host utilizzata per controllare i workflow di backup, cancellazione, ripristino e verifica per un dispositivo di test. Fornisce pipeline di convenienza come runBackupRestoreFlow, nonché operazioni granulari (performBackup, performRestore, clearAppData, fetchDeviceLogs e runOnDevice). Supporta sia le coroutine Kotlin sia l'esecuzione asincrona Java ListenableFuture.
  • BackupRestoreExtension: un'estensione JUnit 5 Jupiter che risolve e inserisce i parametri BackupRestoreController nei metodi di test. Gestisce sessioni ADB autonome o condivise, installa automaticamente gli APK testati e di test, chiude le schermate di blocco e le protezioni della tastiera del dispositivo per sbloccare lo spazio di archiviazione protetto da credenziali e applica l'isolamento della sandbox di test.
  • BackupRestoreTestRunner: un test runner Instrumentation sul dispositivo che viene eseguito all'interno della sandbox dell'applicazione. Risolve ed esegue dinamicamente le implementazioni BackupDeviceAction richieste inviate dagli orchestratori host e reindirizza in modo sicuro i payload di risultati JSON di grandi dimensioni su disco per evitare i limiti del buffer delle transazioni Binder.
  • BackupDeviceAction: il contratto per le azioni personalizzate lato dispositivo eseguite direttamente nella sandbox dell'applicazione di destinazione durante il seeding dei dati (PHASE_POPULATE) o la convalida post-ripristino (PHASE_VERIFY).
  • StorageDomain: descrittori fortemente tipizzati (Preference, Database, TextFile e BinaryFile) utilizzati insieme agli helper di azioni predefiniti (PopulateStorageAction e AssertStorageAction) per inizializzare e asserire automaticamente SharedPreferences, database SQLite e file non elaborati in contesti di archiviazione protetti da credenziali (CE) e protetti dal dispositivo (DE) senza boilerplate.
  • BackupTransportMode: specifica la topologia di trasporto del backup della piattaforma da simulare durante i test, tra cui DEVICE_TO_DEVICE (migrazione del dispositivo fisico tramite USB o Wi-Fi Direct), CLOUD_ENCRYPTED (backup sul cloud con crittografia end-to-end lato client), CLOUD_UNENCRYPTED (backup sul cloud standard) e LOCAL (backup offline del file system locale).
  • @Device e @Isolation: annotazioni host per la selezione di dispositivi connessi corrispondenti a numeri di serie, livelli API o ruoli multi-dispositivo specifici e configurazione di criteri di isolamento della sandbox tra le esecuzioni di test (IsolationPolicy.AUTOMATIC e IsolationPolicy.MANUAL).