Многоцелевые препараты

Подобно целевому устройству подготовки , многоцелевое устройство подготовки позволяет одновременно настраивать несколько устройств. Например, это будет использоваться при подключении двух устройств через 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>

Порядок действий

  1. multi_target_preparer выполняет setUp после target_preparer .
  2. 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>

Общий порядок действий следующий:

  1. multi_pre_target_preparer setUp
  2. target_preparer setUp
  3. multi_target_preparer setUp
  4. multi_target_preparer tearDown
  5. target_preparer tearDown
  6. multi_pre_target_preparer tearDown

Любой многоцелевой подготовительный модуль может быть объявлен как multi_target_preparer или multi_pre_target_preparer в зависимости от того, какой порядок настройки требуется.