Testa il backup
| Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| 21 ottobre 2026 | - | - | - | 1.0.0-alpha03 |
Dichiara le dipendenze
Per aggiungere una dipendenza dal backup di test, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per
la tua app o il tuo modulo:
Alla moda
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") }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.
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.
Per saperne di più, consulta la documentazione di Issue Tracker.
Test di ripristino del backup automatico versione 1.0
Versione 1.0.0-alpha03
21 ottobre 2026
androidx.test.backup:backup:1.0.0-alpha03 e androidx.test.backup:backup-host:1.0.0-alpha03 sono state rilasciate. La versione 1.0.0-alpha03 contiene questi commit.
Nuove funzionalità
- Configurazione semplificata dei test nelle suite di test di backup del plug-in Android per Gradle, con targeting automatico dell'app testata quando
@BackupRestoreConfigviene omesso. (I1452b) - È stato aggiunto il supporto per l'ereditarietà delle impostazioni
@BackupRestoreConfige@Isolationda una classe di test esterna nelle classi di test@Nested. (Ia45a8) - È stato aggiunto il supporto per l'inserimento di
BackupRestoreControllerdirettamente nei costruttori delle classi di test e nei metodi di configurazione@BeforeAll. (I6e822, Ia2ebd) - È stato aggiunto il supporto per l'assegnazione di un dispositivo specifico a un ruolo
@Devicenei test multi-dispositivo utilizzando la proprietàandroidx.test.backup.device.serial.{role}. (I484be)
Correzioni di bug
- Risolti i problemi relativi a
performBackupeperformRestorein modo che i test non vadano a buon fine immediatamente anziché essere superati senza problemi quando un backup viene saltato o è vuoto, quando il servizio di supporto genera un errore o quando un archivio di backup locale appartiene a un'altra app o un altro dispositivo. (I7673d, I478ad, I0b989, I9a0ea, I79567) - Risolto il problema dei test che si bloccavano a tempo indeterminato su dispositivi che non rispondevano applicando timeout alle fasi di backup, ripristino, azioni del dispositivo e pulizia. (I10661, I9cdee, If5f92)
- È stato risolto il problema relativo all'eliminazione da parte di
performBackupdei file di backup generati al termine dell'esecuzione del test, pertanto gli archivi di backup vengono ora conservati sul disco dopo l'uscita dai test. (I8c13f) - Sono stati corretti gli helper di test del database (
StorageDomain.Database) per archiviare e controllare correttamente i valorinull, sovrascrivere le righe esistenti durante il seeding dei dati di test, rilevare tempestivamente le configurazioni delle tabelle non valide e generare un errore quando manca un file di database previsto. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18) - Sono stati corretti gli helper di test
SharedPreferencesper preservare accuratamente i tipi di dati e supportare il controllo delle preferenzenullo rimosse. (I8456d9, I1d0fc2) - È stato corretto
runOnDeviceper gestire payload di test di grandi dimensioni senza arresti anomali, mettere in pausa il debugger quandowaitForDebuggerè attivo, trovare l'esecutore di test nei nomi dei pacchetti APK di test personalizzati e impedire che i flag dell'esecutore interno vengano divulgati nelle azioni del dispositivo. (Ic73bd, Iede17, I1d172, I84c15) - Abbiamo migliorato la stabilità e la velocità dei test condividendo una singola connessione ADB durante l'esecuzione del test, installando gli APK una sola volta per dispositivo e segnalando chiaramente quando un APK non viene installato o avviato. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
- Risolto il problema relativo alla scrittura di file di log vuoti da parte di
fetchDeviceLogse interrotta la generazione di report di errore falsi da parte delle esecuzioni di test annullate. (I736c4, I7b199, Ia847e) - Sono state ripulite le dipendenze di
backup-hostin modo cheadblibsia disponibile direttamente per i chiamanti e le librerie di test o di logging interno non entrino più in conflitto con il classpath del progetto. (I6e822, Iba9a4, Ib4ec9)
Versione 1.0.0-alpha02
7 ottobre 2026
androidx.test.backup:backup:1.0.0-alpha02 e androidx.test.backup:backup-host:1.0.0-alpha02 sono state rilasciate. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle API
- Le chiavi del payload sono ora documentate come
BackupActionInputKeys,BackupActionOutputKeyseBackupActionValues, sostituendo le costanti suBackupDeviceAction. Sono state aggiunte le factoryBackupDeviceActionResult.success()efailure(), insieme agli accessorisSuccesseerrorMessage. (Ibd493)
Correzioni di bug
BackupRestoreController.clearAppDataora generaIOExceptionquandopm clearnon segnala l'esito positivo, anziché continuare in modo silenzioso. (I61556)- Gli argomenti della shell passati a
BackupRestoreControllerper l'esecuzione del dispositivo ora vengono sottoposti correttamente a escape per impedire il command injection e garantire che i percorsi dei file con spazi vengano gestiti in modo sicuro. - Sono state rafforzate le azioni di archiviazione in bundle (
PopulateStorageActioneAssertStorageAction) contro i passaggi di verifica silenziosi per garantire che i test non vadano a buon fine quando mancano i dati previsti. - Gli orchestratori di test lato host ora rispettano correttamente gli errori delle azioni in-band segnalati dal dispositivo anziché ignorarli.
- Risolto un problema relativo al popolamento delle righe del database mediante la codifica percentuale del formato di rete
'values'del database, impedendo il danneggiamento dei dati durante il trasporto del payload. - Sono state risolte le vulnerabilità di sicurezza in
androidx.test.backup:backup-hosteseguendo l'upgrade delle dipendenze.
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 release iniziale
Rilascio iniziale del framework di test di backup e ripristino automatici per Android. Questa libreria fornisce un modo automatizzato ed end-to-end per verificare che i dati utente e le credenziali dell'account sopravvivano in sicurezza agli upgrade del dispositivo e ai ripristini dal cloud. Anziché affidarsi ai test manuali, gli sviluppatori possono automatizzare l'intero ciclo di vita: seeding dello stato dell'app, backup in base alle regole configurate (dataExtractionRules e fullBackupContent), cancellazione dell'app e verifica dell'integrità dei dati dopo il ripristino. Il framework fornisce due artefatti: androidx.test.backup:backup-host (che viene eseguito sul computer host per orchestrare le fasi di backup, cancellazione e ripristino su ADB) e androidx.test.backup:backup (che viene eseguito sul dispositivo per compilare e verificare i dati dell'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 comerunBackupRestoreFlow, nonché operazioni granulari (performBackup,performRestore,clearAppData,fetchDeviceLogserunOnDevice). Supporta sia le coroutine Kotlin sia l'esecuzione asincrona di JavaListenableFuture.BackupRestoreExtension: un'estensione JUnit 5 Jupiter che risolve e inserisce i parametriBackupRestoreControllernei metodi di test. Gestisce le sessioni ADB autonome o condivise, installa automaticamente gli APK testati e di test, ignora le schermate di blocco e i blocchi tastiera dei dispositivi per sbloccare lo spazio di archiviazione protetto da credenziali e applica l'isolamento della sandbox di test.BackupRestoreTestRunner: un test runnerInstrumentationon-device in esecuzione all'interno della sandbox dell'applicazione. Risolve ed esegue dinamicamente le implementazioniBackupDeviceActionrichieste inviate dagli orchestratori host e reindirizza in modo sicuro i payload dei risultati JSON di grandi dimensioni al disco per evitare i limiti del buffer delle transazioni di 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 con tipizzazione forte (Preference,Database,TextFileeBinaryFile) utilizzati insieme ad helper di azioni predefiniti (PopulateStorageActioneAssertStorageAction) per eseguire automaticamente il seeding e l'asserzione diSharedPreferences, database SQLite e file non elaborati in contesti di archiviazione Credential Protected (CE) e Device Protected (DE) senza boilerplate.BackupTransportMode: specifica la topologia di trasporto del backup della piattaforma da simulare durante le fasi di test, tra cuiDEVICE_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) eLOCAL(backup del file system locale offline).@Devicee@Isolation: annotazioni host per la selezione dei dispositivi connessi corrispondenti a numeri di serie, livelli API o ruoli multi-dispositivo specifici e per la configurazione delle policy di isolamento della sandbox tra le esecuzioni dei test (IsolationPolicy.AUTOMATICeIsolationPolicy.MANUAL).