از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
گردآورندگان معیارهای میزبان محور
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
گردآورندههای معیارهای مبتنی بر میزبان در میزبان اجرا میشوند نه در سمت دستگاه. آنها از طرف میزبان با دستگاه تعامل می کنند تا معیارهایی را که هدف قرار می دهند جمع آوری کنند.
طراحی کلکتور متریک
کلاس پایه ای که همه جمع کننده ها گسترش می دهند BaseDeviceMetricCollector
است که به ارائه عملکردهای اولیه مشترک یکسان کمک می کند:
- فیلتر کردن
- غیرفعال کردن
- مجموعه ای از موارد آزمایشی در مقابل اجرای آزمایشی
گردآورنده ها از یک مدل گزارشگر نتیجه پیروی می کنند زیرا با اجرای آزمایشی روی میزبان هماهنگ می شوند. به عبارت دیگر، اگر تستها مبتنی بر میزبان باشند، جمعآورندهها قبل از ادامه آزمایش به مرحله اجرای بعدی اجرا میشوند.
به عنوان مثال، اگر جمعآورنده روی testEnded
اجرا کند، کلکتورها قبل از ادامه اجرا به آزمایش بعدی با testStart
اجرا میکنند.
یک گردآورنده معیارهای میزبان محور را پیاده سازی کنید
هنگام پیاده سازی در بالای کلاس پایه BaseDeviceMetricCollector
، می توانید تصمیم بگیرید که چه زمانی معیارهای خود را در طول چرخه عمر جمع آوری کنید:
- هنگامی که یک اجرای آزمایشی شروع می شود:
onTestRunStart
- هنگامی که یک مورد آزمایشی شروع می شود:
onTestStart
- وقتی یک مورد آزمایشی به پایان می رسد:
onTestEnd
- هنگامی که یک اجرای آزمایشی به پایان می رسد:
onTestRunEnd
علاوه بر روشهای همزمان، TF یک کلاس پایه برای پیادهسازی فراهم میکند که مجموعههای ناهمزمان دورهای را انجام میدهد، ScheduledDeviceMetricCollector
، که یک متد collect
برای پیادهسازی ارائه میدهد که به صورت دورهای اجرا میشود.
دوره با گزینه ها قابل تنظیم است.
پیکربندی XML
تگ شی metrics_collector
است، برای مثال:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
توصیه ها
برای اطمینان از اینکه کار را تکرار نمی کنید، به فهرست موجود مجموعه داران نگاه کنید. ما سعی می کنیم از حداکثر قابلیت استفاده مجدد اطمینان حاصل کنیم، بنابراین داشتن هر جمع کننده ای که یک نوع مجموعه را انجام می دهد، امکان اختلاط و تطبیق بیشتر کلکتورهای مختلف را در طول اجرای آزمایش فراهم می کند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و 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,["# Host-driven metrics collectors run on the host and not on the device side. They\ninteract with the device from the host side to collect the metrics they are\ntargeting.\n\nMetrics collector design\n------------------------\n\nThe base class that all collectors extend is\n[`BaseDeviceMetricCollector`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/device/metric/BaseDeviceMetricCollector.java),\nwhich helps provide the same shared basic functionalities:\n\n- Filtering\n- Disabling\n- Collection on test cases versus test runs\n\nCollectors follow a [result reporter](/docs/core/tests/tradefed/architecture/result-reporter)\nmodel because they synchronize with the test execution on the host. In other\nwords, if tests are host-driven, collectors are executed before the test\nproceeds to the next execution step.\n\nFor example, if the collector executes on `testEnded`, the collectors execute\nbefore the execution proceeds to the next test with `testStart`.\n\nImplement a host-driven metrics collector\n-----------------------------------------\n\nWhen implementing on top of the base class `BaseDeviceMetricCollector` you\ncan decide when to collect your metrics during the lifecycle:\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 run ends: `onTestRunEnd`\n\nPerform asynchronous collection\n-------------------------------\n\nIn addition to the synchronous methods, TF provides a base class to implement\nthat performs periodic asynchronous collection,\n[`ScheduledDeviceMetricCollector`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/test_framework/com/android/tradefed/device/metric/ScheduledDeviceMetricCollector.java),\nwhich provides a `collect` method to be implemented that runs\nperiodically.\n\nThe period is customizable by options.\n\nXML configuration\n-----------------\n\nThe object tag is `metrics_collector`, for example: \n\n \u003cmetrics_collector class=\"com.android.tradefed.device.metric.AtraceCollector\"\u003e\n \u003coption name=\"categories\" value=\"freq\"/\u003e\n \u003c/metrics_collector\u003e\n\nRecommendations\n---------------\n\nLook at the [existing list of collectors](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/test_framework/com/android/tradefed/device/metric)\nto ensure you aren't duplicating work. We try to ensure maximum reusability, so\nhaving each collector performing a single type of collection allows more mixing\nand matching of different collectors during test execution."]]