Mô-đun trợ giúp tương tác với thiết bị CTS

Đối với Android 11 trở lên, các mô-đun trợ giúp tương tác thiết bị của Bộ kiểm tra tính tương thích (CTS) cho phép bạn tuỳ chỉnh cách một số chương trình kiểm thử CTS nhất định tương tác với giao diện người dùng (UI) trên một thiết bị cụ thể. Điều này có nghĩa là bạn có thể thực hiện các thao tác (chẳng hạn như thay thế một thành phần trên giao diện người dùng không có trong Tài liệu định nghĩa về khả năng tương thích của Android (CDD) hoặc tài liệu API) mà vẫn vượt qua được CTS.

Các nhà sản xuất thiết bị gốc (OEM) muốn tuỳ chỉnh giao diện người dùng Android trong quá trình phát triển sản phẩm và cần phải vượt qua CTS có thể triển khai các mô-đun trợ giúp. Nếu bạn sử dụng phương thức triển khai Android mặc định, thì bạn không cần làm gì thêm.

Triển khai mô-đun trợ giúp

Yêu cầu để tuỳ chỉnh giao diện người dùng

Kiểm tra các mô-đun CDD hoặc Mainline để biết mọi yêu cầu về giao diện người dùng. Nếu giao diện người dùng mong muốn thuộc phạm vi của mô-đun CDD hoặc Mainline, thì bạn không thể tuỳ chỉnh giao diện người dùng đó.

Nếu các chương trình kiểm thử CTS tương tác với giao diện người dùng mong muốn không sử dụng khung trình trợ giúp, thì bạn không thể tuỳ chỉnh giao diện người dùng đó. Làm việc với chủ sở hữu kiểm thử để chuyển đổi mô-đun kiểm thử trước khi có thể thay đổi giao diện người dùng.

Nếu không, bạn có thể tuỳ chỉnh giao diện người dùng.

Quy trình triển khai

  1. Tuỳ chỉnh giao diện người dùng nếu cần cho sản phẩm cụ thể của bạn.
  2. Chỉ định các mô-đun trợ giúp AOSP hiện có làm lớp con cho các mô-đun kiểm thử CTS cần tương tác với giao diện người dùng. Thay thế các lượt tương tác cần thiết cho giao diện người dùng tuỳ chỉnh một cách phù hợp. Nội dung thay thế sẽ khác nhau tuỳ thuộc vào loại thay đổi.
    • Các lớp con OEM nằm trong gói OEM, chẳng hạn như com.[oem].cts.helpers.
    • Mỗi lớp con OEM được đặt tên bằng một tiền tố phổ biến để phân biệt với lớp triển khai AOSP có tiền tố Default.
  3. Tích hợp trình trợ giúp thành một tệp APK theo các quy ước sau đây về trình chạy kiểm thử.
    • Android.bp phải khai báo android_test_helper_app có tên giống với gói chứa.
    • AndroidManifest.xml cho APK phải khai báo thuộc tính siêu dữ liệu có tên interaction-helpers-prefix với giá trị của tiền tố lớp đã chọn trong dấu đầu dòng trước đó.
    • Ứng dụng phải phụ thuộc vào cts-helpers-core, cts-helpers-interfacescom.android.cts.helpers.aosp. Nếu trình trợ giúp của OEM triển khai đầy đủ tất cả giao diện có liên quan, thì bạn không bắt buộc phải sử dụng com.android.cts.helpers.aosp.
  4. Đặt thuộc tính ro.vendor.cts_interaction_helper_packages trong hình ảnh thiết bị để bao gồm tên của tệp APK. Nếu bạn cần tách các hoạt động triển khai trình trợ giúp trên nhiều APK, thì thuộc tính này có thể chứa một danh sách các gói được phân tách bằng dấu hai chấm.
  5. Đảm bảo rằng APK có sẵn trong thư mục testcases khi chạy Tradefed cho CTS. Nếu cần, hãy xác nhận rằng bạn đã chọn lớp triển khai trình trợ giúp dự kiến bằng cách kiểm tra thông điệp logcat.
  6. Không bắt buộc, nhưng bạn nên: Gửi phương thức triển khai trình trợ giúp cho Dự án nguồn mở Android (AOSP) hoặc cung cấp phương thức này để kiểm thử bên thứ ba.

Ví dụ về cách triển khai trình trợ giúp

Ví dụ: CtsPrintTestCases dự kiến một trình trợ giúp có giao diện được xác định trong ICtsPrintHelper. Quá trình triển khai AOSP được gọi là com.android.cts.helpers.aosp.DefaultCtsPrintHelper.

Nếu tuỳ chỉnh giao diện người dùng in, bạn có thể tạo com.oem.cts.helpers.OemCtsPrintHelper là lớp con của DefaultCtsPrintHelper. android_test_helper_app trong Android.bp được đặt tên là com.oem.cts.helpers, tạo ra com.oem.cts.helpers.apk và khai báo interaction-helpers-prefixOem trong AndroidManifest.xml.

Thuộc tính thiết bị ro.vendor.cts_interaction_helper_packages được đặt thành com.oem.cts.helpers.

Triển khai tham chiếu

Các phương thức triển khai tham chiếu bao gồm các giao diện trong cts/libs/helpers và trình trợ giúp AOSP mặc định trong cts/helpers. Giao diện cấp cao nhất được ghi lại trong cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java.

Để kết nối chương trình kiểm thử CTS với các trình trợ giúp, chủ sở hữu chương trình kiểm thử có thể sử dụng định nghĩa @Rule được nêu trong cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java.

Mỗi mô-đun CTS sử dụng khung và hành vi trợ giúp dự kiến của khung đó được ghi lại trong một giao diện được xác định trong cts/libs/helpers/core/src/com/android/cts/helpers.

Chạy kiểm thử CTS

Kiểm thử mà không cần trình trợ giúp

Ngoài một thuộc tính, tuỳ chọn kiểm thử mà không cần trình trợ giúp không tồn tại trong thời gian chạy trên thiết bị, nhưng tuỳ ý sửa đổi cách kiểm thử CTS tương tác với thiết bị. Nếu cần chạy CTS mà không cần triển khai trình trợ giúp, bạn có hai lựa chọn:

  • Xoá thuộc tính ro.vendor.cts_interaction_helper_packages khỏi thiết bị. Điều này ngăn hoàn toàn sử dụng trình trợ giúp trên bản dựng đó.
  • Xoá tệp APK trình trợ giúp khỏi thư mục testcases trước khi chạy CTS. Điều này ngăn các trình trợ giúp được sử dụng trong bất kỳ lần chạy nào cho đến khi APK được khôi phục về testcases.

Bạn có thể thay đổi các chế độ cài đặt mặc định bằng các đối số Tradefeed và chế độ kiểm soát thuộc tính ro.vendor.cts_interaction_helper_packages, đây là nơi tải tệp APK trợ giúp.

Hãy xem phần sau để biết các giá trị hoặc phạm vi dự kiến cho từng chế độ cài đặt có sẵn.

  • ro.vendor.cts_interaction_helper_packages là một chuỗi phân tách bằng dấu hai chấm chứa tên gói. Biến này có thể nhận bất kỳ giá trị nào là lựa chọn gói hợp lệ để triển khai trình trợ giúp của OEM.
  • cts-tradefed chấp nhận một đối số device-interaction-helper:property-name tạm thời thay đổi thuộc tính dự kiến cho một lần chạy kiểm thử, chẳng hạn như --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'. Giá trị của tên thuộc tính có thể là bất kỳ thuộc tính nào mà bạn đặt trên thiết bị. Giá trị của thuộc tính này tuân theo các quy tắc hạn chế tương tự như thuộc tính ro.vendor.cts_interaction_helper_packages được mô tả ở trên.

Kiểm thử bằng các tuỳ chỉnh

Theo mặc định, các hoạt động triển khai tham chiếu sẽ vượt qua CTS trên Android gốc. Kiểm tra để đảm bảo rằng các hoạt động triển khai của đối tác đã vượt qua CTS với các tuỳ chỉnh giao diện người dùng. Chạy bất kỳ mô-đun CTS nào bao gồm giao diện người dùng hoặc tính năng mà bạn đã tuỳ chỉnh.

Một số mô-đun hoặc trình trợ giúp CTS nhất định có thể chưa hỗ trợ một số tuỳ chỉnh.

  • Mô-đun CTS tương tác với giao diện người dùng mà bạn muốn tuỳ chỉnh có thể không sử dụng khung trình trợ giúp. Các mô-đun CTS dự kiến sẽ chuyển đổi sang khung trình trợ giúp dựa trên nhu cầu và mức độ ưu tiên của chủ sở hữu kiểm thử. Gửi yêu cầu chuyển đổi từ sớm trong quy trình để đảm bảo quá trình chuyển đổi diễn ra đúng lịch, tương tự như việc yêu cầu thay đổi CTS để hỗ trợ các tính năng bạn đã lên kế hoạch.
  • Các hàm do trình trợ giúp hiện có cung cấp có thể không giải quyết đầy đủ các tuỳ chỉnh mà bạn muốn thực hiện. Các hàm trợ giúp nên loại bỏ các phần phụ thuộc trên giao diện người dùng. Nếu một hàm trợ giúp gián tiếp có phần phụ thuộc giao diện người dùng, thì lỗi này có thể được xử lý tương tự như các lỗi trong CTS.