Сборщики метрик, управляемые хостом, работают на хосте, а не на стороне устройства. Они взаимодействуют с устройством со стороны хоста для сбора целевых метрик.
Проектирование сборщика метрик
 Базовым классом, расширяющим все сборщики, является 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>
Рекомендации
Проверьте существующий список сборщиков , чтобы убедиться, что вы не дублируете работу. Мы стремимся обеспечить максимальную возможность повторного использования, поэтому выполнение каждым сборщиком только одного типа сбора позволяет более эффективно комбинировать и сопоставлять различные сборщики во время выполнения теста.
