Trình chuẩn bị nhiều mục tiêu

Tương tự như trình chuẩn bị mục tiêu, trình chuẩn bị nhiều mục tiêu cho phép thiết lập nhiều thiết bị cùng một lúc. Ví dụ: bạn có thể dùng tính năng này khi kết nối 2 thiết bị bằng Bluetooth để kiểm thử.

Giao diện cơ sở

Giao diện cơ sở là IMultiTargetPreparer, cho phép triển khai phương thức setUp sẽ được thực thi. Bạn nên triển khai lớp trừu tượng cơ bản BaseMultiTargetPreparer của chúng tôi. Lớp này cung cấp một tính năng vô hiệu hoá tích hợp để dễ dàng vô hiệu hoá một trình chuẩn bị.

Các trình chuẩn bị đa mục tiêu cũng trực tiếp cung cấp phương thức tearDown cho mọi thao tác dọn dẹp.

Nội dung đề xuất

Bạn nên giới hạn mỗi người chuẩn bị chỉ có một chức năng chính. Điều này giúp bạn dễ dàng tái sử dụng các trình chuẩn bị hơn.

Ngoài ra, hãy kiểm tra danh sách người chuẩn bị có sẵn trước khi thêm người chuẩn bị mới để tránh trùng lặp công việc. Người chuẩn bị có ở tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/.

Không có giới hạn về số lượng thiết bị mà người chuẩn bị nhiều mục tiêu có thể thiết lập. Tất cả các thiết bị đều có trong IInvocationContext của giao diện để triển khai.

Cấu hình XML

Thẻ đối tượng là multi_target_preparer, ví dụ:

<multi_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_target_preparer>

Thứ tự thao tác

  1. multi_target_preparer thực thi setUp sau target_preparer.
  2. multi_target_preparer thực thi tearDown trước các trình dọn dẹp mục tiêu.

Điều này không phải lúc nào cũng cho phép thực hiện tất cả các bước thiết lập, vì vậy, bạn có thể xác định trình chuẩn bị nhiều mục tiêu dưới dạng multi_pre_target_preparer trong XML và thực thi trình chuẩn bị đó trước các thực thể target_preparer.

<multi_pre_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_pre_target_preparer>

Thứ tự hoạt động tổng thể như sau:

  1. multi_pre_target_preparer setUp
  2. target_preparer setUp
  3. multi_target_preparer setUp
  4. multi_target_preparer tearDown
  5. target_preparer tearDown
  6. multi_pre_target_preparer tearDown

Bạn có thể khai báo mọi trình chuẩn bị nhiều mục tiêu dưới dạng multi_target_preparer hoặc multi_pre_target_preparer tuỳ thuộc vào thứ tự thiết lập bắt buộc.