Подобно целевому препаратору , многоцелевой препаратор позволяет настраивать несколько устройств одновременно. Например, это может использоваться при подключении двух устройств по Bluetooth для тестирования.
Базовый интерфейс
Базовый интерфейс — IMultiTargetPreparer
, который позволяет реализовать метод setUp
для выполнения. Мы рекомендуем реализовать наш базовый абстрактный класс BaseMultiTargetPreparer
, который предоставляет встроенную функцию отключения для легкого отключения подготовителя.
Многоцелевые препараторы также напрямую предоставляют метод tearDown
для любой операции по очистке.
Рекомендация
Мы рекомендуем ограничить каждый препаратор одной основной функцией. Это позволяет упростить повторное использование препараторов.
Также проверьте список доступных препараторов перед добавлением нового, чтобы избежать дублирования работы. Препараторы доступны в tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/
.
Нет ограничений на количество устройств, которые может настроить многоцелевой подготовитель. Все устройства доступны в IInvocationContext
интерфейса для реализации.
XML-конфигурация
Тег объекта — multi_target_preparer
, например:
<multi_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_target_preparer>
Порядок операции
-
multi_target_preparer
выполняетsetUp
послеtarget_preparer
. -
multi_target_preparer
выполняетtearDown
перед целевыми очистителями.
Это не всегда позволяет выполнить все этапы настройки, поэтому в XML можно определить многоцелевой подготовительный компонент как multi_pre_target_preparer
и выполнить его до экземпляров target_preparer
.
<multi_pre_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_pre_target_preparer>
Общий порядок работы следующий:
-
multi_pre_target_preparer setUp
-
target_preparer setUp
-
multi_target_preparer setUp
-
multi_target_preparer tearDown
-
target_preparer tearDown
-
multi_pre_target_preparer tearDown
Любой многоцелевой препаратор может быть объявлен как multi_target_preparer
или multi_pre_target_preparer
в зависимости от требуемого порядка настройки.