اعتبارًا من 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
استنادًا إلى ترتيب الإعداد المطلوب.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]