Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release thay vì aosp-main để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Khi chạy các chương trình kiểm thử phía thiết bị (ví dụ: đo lường, kiểm thử Trình tự động hoá giao diện người dùng), trình thu thập phía máy chủ có thể không lý tưởng vì khó đồng bộ hoá việc thu thập chỉ số với một chương trình kiểm thử chạy trên thiết bị. Ví dụ: ảnh chụp màn hình được chụp không đồng bộ có thể bỏ lỡ màn hình mong muốn và trở nên vô dụng.
Để đáp ứng các trường hợp sử dụng này, chúng tôi có một phiên bản trình thu thập dữ liệu phía thiết bị và có thể sử dụng trong mọi hoạt động đo lường AndroidJUnitRunner.
Bạn có thể triển khai BaseMetricListener để tự động báo cáo các chỉ số được thu thập theo cách hoàn toàn tương thích với quy trình báo cáo Tradefed.
Thư viện này được tách biệt khỏi chính Tradefed và có thể được sử dụng mà không cần Tradefed.
Nếu đang sử dụng trình chạy AndroidJUnitTest từ Tradefed, bạn có thể chỉ định tuỳ chọn dòng lệnh sau để trình thu thập dữ liệu chạy cùng với các chương trình kiểm thử:
Khi triển khai trên lớp cơ sở BaseMetricListener, bạn có thể chọn thời điểm muốn thu thập các chỉ số trong vòng đời của hoạt động đo lường:
Khi một lần chạy kiểm thử bắt đầu: onTestRunStart
Khi một trường hợp kiểm thử bắt đầu: onTestStart
Khi một trường hợp kiểm thử kết thúc: onTestEnd
Khi một trường hợp kiểm thử không thành công: onTestFail
Khi một lần chạy kiểm thử kết thúc: onTestRunEnd
Tương tác
Việc thu thập các chỉ số ở phía thiết bị được thực hiện đồng bộ với chính quá trình thực thi đo lường, đồng thời các chỉ số được chuyển lại kết quả đo lường và được Tradefed phân tích cú pháp để báo cáo trong lệnh gọi.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 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."]]