A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O modo de arcabouço de teste é 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 interface imediatamente após a inicialização, sem nenhuma interação manual.
Personalização
É possível determinar se um dispositivo está no modo de teste verificando
ActivityManager.isRunningInUserTestHarness(). Mantenha as personalizações no mínimo.
Limite-as a coisas como pular telas de configuração (no teclado ou no assistente de configuração) que quebrariam
os testes de IU ou exigiriam interação manual.
A implementação padrão do modo de teste usa o mesmo mecanismo de armazenamento da
proteção de 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,
será necessário pouco ou nenhum trabalho 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 de 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
Ativar o modo de teste limpa todos os dados do dispositivo e o configura 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
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Implement Test Harness Mode\n\nTest Harness Mode is a feature added in Android 10 for\nthird-party app developers that wish\nto automate a device or a fleet of devices. The feature provides a method to wipe *all*\nuser data on an Android device, retain ADB keys, and skip all first-time setup screens. This enables\nthe user to run a UI test immediately after startup without any manual interaction.\n| **Note:** Test Harness Mode is different from TradeFed Test Harness. Don't use it when running CTS test.\n\nCustomization\n-------------\n\nYou can determine if a device is in Test Harness Mode by checking\n`ActivityManager.isRunningInUserTestHarness()`. Keep customizations to a minimum;\nlimit to things like skipping setup screens (on the keyboard or setup wizard) that would break\nUI tests or require manual interaction.\n\nImplementation\n--------------\n\nThe default implementation of [`PersistentDataBlockManagerInternal`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/pdb/PersistentDataBlockManagerInternal.java)\nis in [`PersistentDataBlockService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/pdb/PersistentDataBlockService.java).\nTest Harness Mode is implemented in [`TestHarnessModeService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/testharness/TestHarnessModeService.java).\n\nThe default implementation of Test Harness Mode uses the same storage mechanism as\nfactory reset protection to store the adb keys temporarily in a persistent partition. If a\npersistent partition with factory reset protection is already implemented on the test device,\nlittle to no work is necessary to support the feature.\n\nOEMs that don't have a persistent partition set up need to implement\n`PersistentDataBlockManagerInternal` before running\n`TestHarnessModeService`.\n\nCheck the status of Test Harness Mode\n-------------------------------------\n\nWhen Test Harness Mode is enabled,\n`ActivityManager.isRunningInUserTestHarness()` returns `true`.\n\nRun Test Harness Mode\n---------------------\n\nEnabling Test Harness Mode wipes all data from the device and sets up the device for\ntesting. This means that all parts of the device that could interfere with testing (such as\nauto-syncing accounts, package verification, and automatic updates) are all disabled by default\nbut the user can reenable them.\n\nRun the `adb` command to enable Test Harness Mode: \n\n```\nadb shell cmd testharness enable\n```"]]