Implementa el modo de agente de prueba

El modo de agente de prueba es una función que se agregó en Android 10 para desarrolladores de apps de terceros que deseen 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, consulta ActivityManager.isRunningInUserTestHarness(). Mantén las personalizaciones al mínimo. Límite 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.

Implementación

La implementación predeterminada de PersistentDataBlockManagerInternal se encuentra en PersistentDataBlockService. El modo de agente de prueba se implementa en TestHarnessModeService.

La implementación predeterminada del modo de conjunto de pruebas usa el mismo mecanismo de almacenamiento que la protección de 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 de restablecimiento de la configuración de fábrica en el dispositivo de prueba, no es necesario realizar ningún trabajo o muy poco 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 las 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