آماده کننده های چند هدف

مشابه آماده‌ساز هدف ، آماده‌ساز چند هدفه امکان راه‌اندازی چندین دستگاه را با هم فراهم می‌کند. به عنوان مثال، این مورد هنگام اتصال دو دستگاه با بلوتوث برای آزمایش استفاده می‌شود.

رابط پایه

رابط پایه 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 اعلام شود.