2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
다중 타겟 준비자
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
타겟 준비자와 마찬가지로 다중 타겟 준비자는 여러 기기를 함께 설정할 수 있게 해줍니다. 예를 들어 이 준비자는 테스트와 관련하여 블루투스를 사용하여 두 기기를 연결할 때 사용됩니다.
기본 인터페이스
기본 인터페이스는 실행할 setUp
메서드를 구현할 수 있게 해주는 IMultiTargetPreparer
입니다. 준비자를 쉽게 사용 중지할 수 있도록 기본적인 사용 중지 기능을 제공하는 Google의 기본 추상화 클래스인 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
는 target_preparer
이후에 setUp
을 실행합니다.
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 및 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."]]