A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release en lugar de aosp-main para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
El modo de agente de prueba es una función que se agregó en Android 10 para desarrolladores de apps de terceros que desean automatizar un dispositivo o una flota de dispositivos. La función proporciona un método para borrar todos los datos del usuario en un dispositivo Android, retener las claves de ADB y omitir todas las pantallas de configuración iniciales. Esto le permite al usuario ejecutar una prueba de IU inmediatamente después del inicio sin ninguna interacción manual.
Personalización
Para determinar si un dispositivo está en modo de agente de prueba, verifica ActivityManager.isRunningInUserTestHarness(). Mantén las personalizaciones al mínimo. Limítalas a acciones como omitir pantallas de configuración (en el teclado o el asistente de configuración) que podrían interrumpir las pruebas de la IU o requerir interacción manual.
La implementación predeterminada del modo de agente de prueba usa el mismo mecanismo de almacenamiento que la protección contra el restablecimiento de la configuración de fábrica para almacenar las claves de adb de forma temporal en una partición persistente. Si ya se implementó una partición persistente con protección contra el restablecimiento de la configuración de fábrica en el dispositivo de prueba, se requiere de un esfuerzo mínimo o nulo para admitir la función.
Los OEMs que no tienen una partición persistente configurada deben implementar PersistentDataBlockManagerInternal antes de ejecutar TestHarnessModeService.
Verifica el estado del modo de agente de prueba
Cuando se habilita el modo de agente de prueba, ActivityManager.isRunningInUserTestHarness() muestra true.
Ejecuta el modo de agente de prueba
Si habilitas el modo de agente de prueba, se borrarán todos los datos del dispositivo y se configurará para pruebas. Esto significa que todas las partes del dispositivo que podrían interferir en las pruebas (como las cuentas de sincronización automática, la verificación de paquetes y las actualizaciones automáticas) están inhabilitadas de forma predeterminada, pero el usuario puede volver a habilitarlas.
Ejecuta el comando adb para habilitar el modo de agente de prueba:
adb shell cmd testharness enable
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-08-13 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-13 (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```"]]