החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
גורמים שמכינים נתונים למספר יעדים
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
בדומה לכלי להכנת יעד, כלי להכנת כמה יעדים מאפשר להגדיר כמה מכשירים יחד. לדוגמה, אפשר להשתמש באפשרות הזו כשמחברים שני מכשירים באמצעות 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
לפני כלי הניקוי של היעדים.
לא תמיד אפשר לבצע את כל שלבי ההגדרה, לכן אפשר להגדיר את ה-preparer למספר יעדים כ-multi_pre_target_preparer
ב-XML ולהריץ אותו לפני המכונות של 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 (שעון UTC).
[[["התוכן קל להבנה","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 (שעון UTC)."],[],[],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."]]