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

Đối với Android 11 trở lên, mô-đun trợ giúp tương tác của thiết bị Bộ kiểm tra tương thích (CTS) cho phép bạn tùy chỉnh cách các thử nghiệm 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à các hành động, chẳng hạn như thay thế thành phần giao diện người dùng không nằm trong Tài liệu Định nghĩa Tương thích Android (CDD) hoặc tài liệu API, có thể được thực hiện trong khi vẫn chuyển CTS.

Các OEM muốn tùy 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 vượt qua CTS có thể triển khai các mô-đun trợ giúp. Nếu bạn sử dụng cách triển khai mặc định của Android thì không cần thực hiện thêm thao tác nào.

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

Yêu cầu tùy chỉnh giao diện người dùng

Kiểm tra các mô-đun CDD hoặc Mainline để biết bất kỳ yêu cầu nào về giao diện người dùng. Nếu giao diện người dùng mong muốn được bao phủ bởi các mô-đun CDD hoặc Mainline thì giao diện người dùng đó không thể tùy chỉnh được.

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

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

Quy trình triển khai

  1. Tùy 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 tra CTS cần tương tác với giao diện người dùng. Thay thế các tương tác cần thiết một cách thích hợp cho giao diện người dùng tùy chỉnh. Thay thế khác nhau tùy thuộc vào loại thay đổi.
    • Các lớp con OEM nằm trong một 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ố chung để phân biệt nó với việc triển khai AOSP, có tiền tố Default .
  3. Xây dựng các trình trợ giúp thành một APK tuân theo các quy ước của người chạy thử nghiệm này.
    • Android.bp phải khai báo android_test_helper_app có cùng tên với gói chứa trong đó.
    • AndroidManifest.xml cho APK phải khai báo một thuộc tính siêu dữ liệu có tên là interaction-helpers-prefix với giá trị của tiền tố lớp được 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 OEM triển khai đầy đủ tất cả các giao diện có liên quan thì com.android.cts.helpers.aosp là tùy chọn.
  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 APK. Nếu bạn cần tách riêng các hoạt động triển khai trợ giúp của mình trên nhiều APK thì thuộc tính này có thể chứa 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 lớp triển khai trình trợ giúp dự kiến ​​đã được chọn bằng cách kiểm tra các thông báo logcat.
  6. Tùy chọn, nhưng rất khuyến khích: Gửi triển khai trợ giúp của bạn tới AOSP hoặc cung cấp nó để thử nghiệm bên thứ ba.

Ví dụ triển khai trình trợ giúp

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

Nếu tùy chỉnh giao diện người dùng in, bạn có thể tạo com.oem.cts.helpers.OemCtsPrintHelper phân lớp 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 khảo

Việc triển khai tham chiếu bao gồm các giao diện trong cts/libs/helpers và các 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 thử nghiệm CTS với các công cụ trợ giúp, chủ sở hữu thử nghiệm có thể sử dụng định nghĩa @Rule được ghi lại 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 nó được ghi lại trong giao diện được xác định trong cts/libs/helpers/core/src/com/android/cts/helpers .

Chạy thử nghiệm CTS

Kiểm tra mà không có người trợ giúp

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

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

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

Xem phần sau để biết các giá trị hoặc phạm vi dự kiến ​​cho từng cài đặt có sẵn.

  • ro.vendor.cts_interaction_helper_packages là một chuỗi được phân tách bằng dấu hai chấm chứa tên gói. Nó 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 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 thử nghiệm, 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 bạn đặt trên thiết bị. Giá trị của thuộc tính tuân theo các hạn chế tương tự như thuộc tính ro.vendor.cts_interaction_helper_packages được mô tả ở trên.

Thử nghiệm với các tùy chỉnh

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

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