از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
هنگام اجرای تستهای سمت دستگاه (به عنوان مثال، ابزار دقیق، تستهای خودکار UI)، جمعآورندههای سمت میزبان ممکن است ایدهآل نباشند، زیرا همگامسازی مجموعه متریک با آزمایشی که روی یک دستگاه اجرا میشود دشوار است. به عنوان مثال، یک اسکرین شات که به صورت ناهمزمان گرفته می شود، احتمالاً صفحه مورد نظر را از دست می دهد و بی فایده است.
برای پاسخگویی به این موارد استفاده، یک نسخه سمت دستگاه از مجموعههای ما وجود دارد و میتوان از آن در هر ابزار دقیق AndroidJUnitRunner استفاده کرد. BaseMetricListener می توان برای گزارش خودکار معیارهایی که به روشی کاملاً سازگار با خط لوله گزارش Tradefed جمع آوری می شوند، پیاده سازی کرد.
این کتابخانه از خود Tradefed جدا شده است و بدون Tradefed قابل استفاده است.
اگر از AndroidJUnitTest runner از Tradefed استفاده میکنید، میتوانید گزینه خط فرمان زیر را مشخص کنید تا کلکتور شما با آزمایشهای شما اجرا شود:
هنگام پیاده سازی در بالای کلاس پایه BaseMetricListener ، می توانید انتخاب کنید که چه زمانی می خواهید معیارهای خود را در طول چرخه عمر ابزار دقیق جمع آوری کنید:
هنگامی که یک اجرای آزمایشی شروع می شود: onTestRunStart
هنگامی که یک مورد آزمایشی شروع می شود: onTestStart
وقتی یک مورد آزمایشی به پایان می رسد: onTestEnd
هنگامی که یک مورد آزمایشی با شکست مواجه می شود: onTestFail
هنگامی که یک اجرای آزمایشی به پایان می رسد: onTestRunEnd
تعامل
مجموعه معیارها در سمت دستگاه به طور همزمان با خود اجرای ابزار دقیق ساخته میشود و معیارها به نتایج ابزار دقیق ارسال میشوند و توسط Tradefed تجزیه میشوند تا به عنوان بخشی از فراخوانی گزارش شوند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]