Semblable à un préparateur de cible, un préparateur multicible permet de configurer plusieurs appareils à la fois. Par exemple, il est utilisé pour connecter deux appareils avec le Bluetooth à des fins de test.
Interface de base
L'interface de base est
IMultiTargetPreparer,
qui permet d'implémenter une méthode setUp à exécuter. Nous vous recommandons
d'implémenter notre classe abstraite de base
BaseMultiTargetPreparer,
qui fournit une fonctionnalité de désactivation intégrée pour désactiver facilement un préparateur.
Les préparateurs multicibles fournissent également directement une méthode tearDown pour toute opération de nettoyage.
Recommandation
Nous vous recommandons de limiter chaque préparateur à une seule fonction principale. Cela permet de réutiliser plus facilement les préparateurs.
Consultez également la liste des préparateurs disponibles avant d'en ajouter un, afin d'éviter de dupliquer le travail. Les préparateurs sont disponibles dans
tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/.
Le nombre d'appareils qu'un préparateur multicible peut configurer n'est pas limité. Tous les appareils sont disponibles dans IInvocationContext de l'interface à implémenter.
Configuration XML
Le tag d'objet est multi_target_preparer, par exemple :
<multi_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_target_preparer>
Ordre des opérations
multi_target_preparerexécutesetUpaprèstarget_preparer.multi_target_preparerexécutetearDownavant les nettoyeurs de cible.
Cela ne permet pas toujours d'effectuer toutes les étapes de configuration. Il est donc possible
de définir le préparateur multicible dans le code XML comme multi_pre_target_preparer
et de l'exécuter avant les instances target_preparer.
<multi_pre_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_pre_target_preparer>
L'ordre général des opérations est le suivant :
multi_pre_target_preparer setUptarget_preparer setUpmulti_target_preparer setUpmulti_target_preparer tearDowntarget_preparer tearDownmulti_pre_target_preparer tearDown
Tout préparateur multicible peut être déclaré comme multi_target_preparer ou multi_pre_target_preparer, selon l'ordre de configuration requis.