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.
Ao executar testes no dispositivo (por exemplo, instrumentações, testes do
UI Automator), os coletores do host podem não ser ideais porque é difícil
sincronizar a coleta de métricas com um teste em execução em um dispositivo. Por exemplo, uma
captura de tela tirada de forma assíncrona provavelmente não vai mostrar a tela desejada e será
inútil.
Para atender a esses casos de uso, existe uma versão dos nossos coletores no dispositivo
que pode ser usada em qualquer instrumentação AndroidJUnitRunner.
O BaseMetricListener
pode ser implementado para informar automaticamente as métricas coletadas
de maneira totalmente compatível com o pipeline de relatórios do Tradefed.
Essa biblioteca é independente do Tradefed e pode ser usada sem ele.
Se você estiver usando o AndroidJUnitTest
da Tradefed, especifique a opção de linha de comando a seguir
para executar o coletor com seus testes:
Ao implementar na classe base BaseMetricListener, você pode escolher
quando quer coletar as métricas durante o ciclo de vida da
instrumentação:
Quando uma execução de teste começa: onTestRunStart
Quando um caso de teste começa: onTestStart
Quando um caso de teste termina: onTestEnd
Quando um caso de teste falha: onTestFail
Quando uma execução de teste termina: onTestRunEnd
Interação
A coleta de métricas no dispositivo é feita de forma síncrona com a
execução da instrumentação. As métricas são transmitidas de volta aos
resultados da instrumentação e analisadas pelo Tradefed para serem informadas como parte da
invocação.
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,["# 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."]]