از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
آماده کننده های چند هدف
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
مشابه یک آمادهکننده هدف ، یک آمادهکننده چند هدف اجازه میدهد تا چندین دستگاه را با هم تنظیم کنید. به عنوان مثال، هنگام اتصال دو دستگاه با بلوتوث برای آزمایش استفاده می شود.
رابط پایه
رابط پایه 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
اعلام کرد.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Multi-target preparers\n\nSimilar to a\n[target preparer](/docs/core/tests/tradefed/architecture/target-preparer), a\nmulti-target preparer allows setup of multiple devices together. For example,\nthis would be used when connecting two devices with Bluetooth for testing.\n\nBase interface\n--------------\n\nThe base interface is\n[`IMultiTargetPreparer`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/targetprep/multi/IMultiTargetPreparer.java),\nwhich allows implementing a `setUp` method to be executed. We recommend\nimplementing our basic abstract class\n[`BaseMultiTargetPreparer`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/targetprep/multi/BaseMultiTargetPreparer.java),\nwhich provides a built-in disablement feature to easily disable a preparer.\n\nMulti-target preparers also directly provide a `tearDown` method for any cleanup\noperation.\n\nRecommendation\n--------------\n\nWe recommend limiting each preparer to a single main function. This allows\nfor easier reuse of preparers.\n\nAlso check the list of available preparers before adding a new one, to\navoid duplicating work. Preparers are available in\n[`tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/targetprep/multi).\n\nThere's no limit to the number of devices that a multi-target preparer can\nset up. All the devices are available in `IInvocationContext` of the\ninterface to implement.\n\nXML configuration\n-----------------\n\nThe object tag is `multi_target_preparer`, for example: \n\n \u003cmulti_target_preparer class=\"com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer\"\u003e\n \u003c/multi_target_preparer\u003e\n\nOperation order\n---------------\n\n1. `multi_target_preparer` executes `setUp` **after** `target_preparer`.\n2. `multi_target_preparer` executes `tearDown` **before** target cleaners.\n\nThis doesn't always allow for performance of all setup steps, so it's possible\nin the XML to define the multi-target preparer as `multi_pre_target_preparer`\nand execute it before `target_preparer` instances. \n\n \u003cmulti_pre_target_preparer class=\"com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer\"\u003e\n \u003c/multi_pre_target_preparer\u003e\n\nThe overall operation order is as followed:\n\n1. `multi_pre_target_preparer setUp`\n2. `target_preparer setUp`\n3. `multi_target_preparer setUp`\n4. `multi_target_preparer tearDown`\n5. `target_preparer tearDown`\n6. `multi_pre_target_preparer tearDown`\n\nAny multi-target preparer can be declared as `multi_target_preparer` or\n`multi_pre_target_preparer` depending of what order of setup is required."]]