Testar backup
| Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
|---|---|---|---|---|
| 21 de outubro de 2026 | - | - | - | 1.0.0-alpha03 |
Declarar dependências
Para adicionar uma dependência ao backup de teste, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.
Adicione as dependências dos artefatos necessários ao arquivo build.gradle do
seu app ou módulo:
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") }
Para mais informações sobre dependências, consulte Adicionar dependências de build.
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Versão 1.0 do teste de restauração de backup automatizado
Versão 1.0.0-alpha03
21 de outubro de 2026
Lançamento de androidx.test.backup:backup:1.0.0-alpha03 e androidx.test.backup:backup-host:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estes commits.
Novos recursos
- Configuração de teste simplificada em pacotes de teste de backup do Plug-in do Android para Gradle, que segmenta automaticamente o app testado quando
@BackupRestoreConfigé omitido. (I1452b). - Adição de suporte para herdar as configurações de
@BackupRestoreConfige@Isolationde uma classe de teste externa em classes de teste@Nested. (Ia45a8). - Adicionamos suporte para injetar
BackupRestoreControllerdiretamente em construtores de classe de teste e métodos de configuração@BeforeAll. (I6e822, Ia2ebd). - Adicionamos suporte para fixar um dispositivo específico a uma função
@Deviceem testes multidispositivo usando a propriedadeandroidx.test.backup.device.serial.{role}. (I484be).
Correções de bugs
- Correção de
performBackupeperformRestorepara que os testes falhem imediatamente em vez de serem aprovados silenciosamente quando um backup é ignorado ou está vazio, quando o serviço de backup apresenta um erro ou quando um arquivo de backup local pertence a um app ou dispositivo diferente. (I7673d, I478ad, I0b989, I9a0ea, I79567) - Correção de testes que travavam indefinidamente em dispositivos que não respondiam, aplicando tempos limite em etapas de backup, restauração, ações do dispositivo e limpeza. (I10661, I9cdee, If5f92).
- Correção de um problema em que o
performBackupexcluía os arquivos de backup gerados quando a execução do teste terminava. Agora, os arquivos de backup são mantidos no disco após a saída dos testes. (I8c13f). - Os auxiliares de teste do banco de dados (
StorageDomain.Database) foram corrigidos para armazenar e verificar corretamente os valores denull, substituir as linhas atuais ao propagar dados de teste, detectar configurações de tabela inválidas com antecedência e falhar quando um arquivo de banco de dados esperado estiver ausente. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18) - Correção dos auxiliares de teste
SharedPreferencespara preservar os tipos de dados com precisão e oferecer suporte à verificação de preferênciasnullou removidas. (I8456d9, I1d0fc2) - Correção de
runOnDevicepara processar payloads de teste grandes sem falhas, pausar o depurador quandowaitForDebuggerestiver ativado, encontrar o executor de teste em nomes de pacotes de APK de teste personalizados e impedir que flags internas do executor vazem para ações do dispositivo. (Ic73bd, Iede17, I1d172, I84c15). - Melhoria na estabilidade e na velocidade dos testes ao compartilhar uma única conexão ADB durante a execução do teste, instalar APKs apenas uma vez por dispositivo e falhar claramente quando um APK não é instalado ou iniciado. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
- Correção de
fetchDeviceLogsque gravava arquivos de registro vazios e interrupção de execuções de teste canceladas que geravam relatórios de falha falsos. (I736c4, I7b199, Ia847e). - As dependências de
backup-hostforam limpas para queadblibfique disponível diretamente para os autores de chamadas, e as bibliotecas de teste ou de geração de registros internos não entrem mais em conflito com o caminho de classe do seu projeto. (I6e822, Iba9a4, Ib4ec9)
Versão 1.0.0-alpha02
7 de outubro de 2026
Lançamento de androidx.test.backup:backup:1.0.0-alpha02 e androidx.test.backup:backup-host:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estes commits.
Mudanças na API
- As chaves de payload agora estão documentadas como
BackupActionInputKeys,BackupActionOutputKeyseBackupActionValues, substituindo as constantes emBackupDeviceAction. Adição de fábricasBackupDeviceActionResult.success()efailure(), além de acessadoresisSuccesseerrorMessage. (Ibd493).
Correções de bugs
BackupRestoreController.clearAppDataagora geraIOExceptionquandopm clearnão informa sucesso, em vez de continuar silenciosamente. (I61556).- Os argumentos de shell transmitidos para
BackupRestoreControllerpara execução do dispositivo agora são escapados corretamente para evitar a injeção de comandos e garantir que os caminhos de arquivo com espaços sejam processados com segurança. - As ações de armazenamento em pacote (
PopulateStorageActioneAssertStorageAction) foram reforçadas contra aprovações de verificação silenciosas para garantir que os testes falhem estritamente quando os dados esperados estiverem ausentes. - Os orquestradores de teste do lado do host agora respeitam corretamente as falhas de ação em banda informadas pelo dispositivo, em vez de ignorá-las.
- Correção de um problema com o preenchimento de linhas do banco de dados ao codificar por porcentagem o formato de transmissão
'values'do banco de dados, evitando a corrupção de dados durante o transporte do payload. - As vulnerabilidades de segurança em
androidx.test.backup:backup-hostforam corrigidas com o upgrade das dependências.
Versão 1.0.0-alpha01
23 de setembro de 2026
Lançamento de androidx.test.backup:backup:1.0.0-alpha01 e androidx.test.backup:backup-host:1.0.0-alpha01. A versão 1.0.0-alpha01 inclui estes commits.
Recursos da versão inicial
Versão inicial do framework de teste de backup e restauração automatizados para Android. Essa biblioteca oferece uma maneira automatizada e completa de testar se os dados do usuário e as credenciais da conta sobrevivem com segurança a upgrades de dispositivos e restaurações na nuvem. Em vez de depender de testes manuais, os desenvolvedores podem automatizar todo o ciclo de vida: propagar o estado do app, fazer backup de acordo com as regras configuradas (dataExtractionRules e fullBackupContent), limpar o app e verificar a integridade de dados após a restauração. O framework oferece dois artefatos: androidx.test.backup:backup-host (que é executado no computador host para organizar as etapas de backup, exclusão permanente e restauração pelo ADB) e androidx.test.backup:backup (que é executado no dispositivo para preencher e verificar os dados do app).
BackupRestoreController: a interface principal do lado do host usada para controlar os fluxos de trabalho de backup, limpeza, restauração e verificação de um dispositivo de teste. Oferece pipelines de conveniência, comorunBackupRestoreFlow, além de operações refinadas (performBackup,performRestore,clearAppData,fetchDeviceLogserunOnDevice). Oferece suporte a corrotinas do Kotlin e à execução assíncrona do JavaListenableFuture.BackupRestoreExtension: uma extensão do JUnit 5 Jupiter que resolve e injeta parâmetrosBackupRestoreControllerem métodos de teste. Gerencia sessões do ADB independentes ou compartilhadas, instala automaticamente APKs testados e de teste, dispensa telas de bloqueio e proteções de teclado do dispositivo para desbloquear o armazenamento protegido por credenciais e aplica o isolamento do sandbox de teste.BackupRestoreTestRunner: um executor de testeInstrumentationno dispositivo que é executado no sandbox do aplicativo. Resolve e executa dinamicamente as implementações deBackupDeviceActionsolicitadas e enviadas por orquestradores de host e redireciona com segurança grandes payloads de resultados JSON para o disco para evitar limites de buffer de transação do Binder.BackupDeviceAction: o contrato para ações personalizadas no dispositivo que são executadas diretamente no sandbox do aplicativo de destino durante a propagação de dados (PHASE_POPULATE) ou a validação pós-restauração (PHASE_VERIFY).StorageDomain: descritores fortemente tipados (Preference,Database,TextFileeBinaryFile) usados com auxiliares de ação pré-criados (PopulateStorageActioneAssertStorageAction) para propagar e declarar automaticamenteSharedPreferences, bancos de dados SQLite e arquivos brutos em contextos de armazenamento protegidos por credenciais (CE) e protegidos por dispositivo (DE) sem código boilerplate.BackupTransportMode: especifica a topologia de transporte de backup da plataforma a ser simulada durante os testes, incluindoDEVICE_TO_DEVICE(migração de dispositivo físico por USB ou Wi-Fi Direct),CLOUD_ENCRYPTED(backup na nuvem com criptografia de ponta a ponta do lado do cliente),CLOUD_UNENCRYPTED(backup na nuvem padrão) eLOCAL(backup do sistema de arquivos local off-line).@Devicee@Isolation: anotações de host para selecionar dispositivos conectados que correspondam a números de série, níveis da API ou funções multidispositivo específicos e configurar políticas de isolamento de sandbox entre execuções de teste (IsolationPolicy.AUTOMATICxIsolationPolicy.MANUAL).