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.
Cuando se ejecutan pruebas del dispositivo (por ejemplo, instrumentaciones, pruebas de UI Automator), los recopiladores del host pueden no ser ideales porque es difícil sincronizar la recopilación de métricas con una prueba que se ejecuta en un dispositivo. Por ejemplo, es probable que una captura de pantalla tomada de forma asíncrona no capture la pantalla deseada y sea inútil.
Para satisfacer estos casos de uso, existe una versión de nuestros recopiladores para el dispositivo que se puede usar en cualquier instrumentación de AndroidJUnitRunner.
Se puede implementar BaseMetricListener para informar automáticamente las métricas que se recopilan de una manera totalmente compatible con la canalización de informes de Tradefed.
Esta biblioteca está desacoplada de Tradefed y se puede usar sin Tradefed.
Si usas el ejecutor AndroidJUnitTest de Tradefed, puedes especificar la siguiente opción de línea de comandos para que el recopilador se ejecute con tus pruebas:
Cuando implementes en la clase base BaseMetricListener, puedes elegir cuándo deseas recopilar tus métricas durante el ciclo de vida de la instrumentación:
Cuando comienza una ejecución de prueba: onTestRunStart
Cuando se inicia un caso de prueba: onTestStart
Cuando finaliza un caso de prueba: onTestEnd
Cuando un caso de prueba falla: onTestFail
Cuando finaliza una ejecución de prueba: onTestRunEnd
Interacción
La recopilación de métricas en el dispositivo se realiza de forma síncrona con la ejecución de la instrumentación, y las métricas se vuelven a pasar a los resultados de la instrumentación y Tradefed las analiza para informarlas como parte de la invocación.
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-07-27 (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-07-27 (UTC)"],[],[],null,["# Device-side metrics collectors\n\nWhen running device-side tests (for example, instrumentations, UI Automator\ntests), host-side collectors might not be ideal because it's difficult to\nsynchronize metric collection to a test running on a device. For example, a\nscreenshot taken asynchronously is likely to miss the wanted screen and be\nuseless.\n\nTo meet these use cases, a device-side version of our collectors exists\nand can be used in any `AndroidJUnitRunner` instrumentation.\n[`BaseMetricListener`](https://android.googlesource.com/platform/platform_testing/+/refs/heads/android16-release/libraries/device-collectors/src/main/java/android/device/collectors/BaseMetricListener.java)\ncan be implemented to automatically report metrics that are collected\nin a way fully compatible with the Tradefed reporting pipeline.\n\nThis library is decoupled from Tradefed itself and can be used without Tradefed.\n\nIf you're using the [`AndroidJUnitTest`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/test_framework/com/android/tradefed/testtype/AndroidJUnitTest.java)\nrunner from Tradefed, you can specify the following command line option\nto have your collector running with your tests: \n\n --device-listeners android.device.collectors.ScreenshotListener\n\n**Caution:** In order for the collector classes to be resolved at runtime, your instrumentation APK needs to statically include them by adding the following to your makefile: \n\n LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib\n\nImplementation\n--------------\n\nWhen implementing on top of the base class `BaseMetricListener`, you can choose\nwhen you would like to collect your metrics during the lifecycle of the\ninstrumentation:\n\n- When a test run starts: `onTestRunStart`\n- When a test case starts: `onTestStart`\n- When a test case ends: `onTestEnd`\n- When a test case fails: `onTestFail`\n- When a test run ends: `onTestRunEnd`\n\nInteraction\n-----------\n\nThe collection of metrics on the device side is made synchronously to the\ninstrumentation execution itself, and metrics are passed back to the\ninstrumentation results and parsed by Tradefed to be reported as part of the\ninvocation."]]