Implementar o modo de arcabouço de testes

O modo de arcabouço de testes é um recurso adicionado no Android 10 para desenvolvedores de apps de terceiros que querem automatizar um dispositivo ou uma frota de dispositivos. O recurso oferece um método para limpar todos os dados do usuário em um dispositivo Android, manter as chaves ADB e pular todas as telas de configuração inicial. Isso permite que o usuário execute um teste de UI imediatamente após a inicialização, sem interação manual.

Personalização

Para saber se um dispositivo está no modo de teste, verifique ActivityManager.isRunningInUserTestHarness(). Mantenha as personalizações no mínimo. Limite a ações como pular telas de configuração (no teclado ou no assistente de configuração) que interromperiam os testes de interface ou exigiriam interação manual.

Implementação

A implementação padrão de PersistentDataBlockManagerInternal está em PersistentDataBlockService. O modo de arcabouço de testes está implementado em TestHarnessModeService.

A implementação padrão do modo de teste usa o mesmo mecanismo de armazenamento da proteção contra redefinição de fábrica para armazenar as chaves adb temporariamente em uma partição persistente. Se uma partição persistente com proteção contra redefinição para a configuração original já estiver implementada no dispositivo de teste, pouco ou nenhum trabalho será necessário para oferecer suporte ao recurso.

Os OEMs que não têm uma partição persistente configurada precisam implementar PersistentDataBlockManagerInternal antes de executar TestHarnessModeService.

Verificar o status do modo Arcabouço de testes

Quando o modo Arcabouço de testes está ativado, ActivityManager.isRunningInUserTestHarness() retorna true.

Executar o modo de arcabouço de testes

Ao ativar o modo de teste, todos os dados do dispositivo são apagados e ele é configurado para testes. Isso significa que todas as partes do dispositivo que podem interferir no teste (como contas de sincronização automática, verificação de pacotes e atualizações automáticas) são desativadas por padrão, mas o usuário pode reativá-las.

Execute o comando adb para ativar o modo Arcabouço de testes:

adb shell cmd testharness enable