Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release, bukan aosp-main, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Saat menjalankan pengujian sisi perangkat (misalnya, instrumentasi, pengujian UI
Automator), kolektor sisi host mungkin tidak ideal karena sulit untuk
menyinkronkan pengumpulan metrik ke pengujian yang berjalan di perangkat. Misalnya, screenshot yang diambil secara asinkron kemungkinan akan melewatkan layar yang diinginkan dan
tidak berguna.
Untuk memenuhi kasus penggunaan ini, versi pengumpulan kami di sisi perangkat ada
dan dapat digunakan dalam instrumentasi AndroidJUnitRunner apa pun.
BaseMetricListener
dapat diterapkan untuk melaporkan metrik yang dikumpulkan secara otomatis
dengan cara yang sepenuhnya kompatibel dengan pipeline pelaporan Tradefed.
Library ini dipisahkan dari Tradefed itu sendiri dan dapat digunakan tanpa Tradefed.
Jika menggunakan runner AndroidJUnitTest
dari Tradefed, Anda dapat menentukan opsi command line berikut
agar kolektor berjalan dengan pengujian:
Saat menerapkan di atas class dasar BaseMetricListener, Anda dapat memilih
kapan ingin mengumpulkan metrik selama siklus proses
instrumentasi:
Saat pengujian dimulai: onTestRunStart
Saat kasus pengujian dimulai: onTestStart
Saat kasus pengujian berakhir: onTestEnd
Jika kasus pengujian gagal: onTestFail
Saat pengujian berakhir: onTestRunEnd
Interaksi
Pengumpulan metrik di sisi perangkat dilakukan secara sinkron dengan
eksekusi instrumentasi itu sendiri, dan metrik diteruskan kembali ke
hasil instrumentasi dan diuraikan oleh Tradefed untuk dilaporkan sebagai bagian dari
pemanggilan.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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."]]