جمعآوریکنندههای معیارهای مبتنی بر میزبان، روی میزبان اجرا میشوند و نه روی دستگاه. آنها از سمت میزبان با دستگاه تعامل دارند تا معیارهای مورد نظر خود را جمعآوری کنند.
طراحی جمع کننده متریک
کلاس پایهای که همه کالکتورها از آن ارثبری میکنند، 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>
توصیهها
به لیست موجود از کالکتورها نگاهی بیندازید تا مطمئن شوید که کار تکراری انجام نمیدهید. ما سعی میکنیم حداکثر قابلیت استفاده مجدد را تضمین کنیم، بنابراین انجام یک نوع کالکتور توسط هر کالکتور، امکان ترکیب و تطبیق بیشتر کالکتورهای مختلف را در طول اجرای تست فراهم میکند.