Đối với Android 11 trở lên, các mô-đun trợ giúp tương tác với thiết bị trong Bộ kiểm tra tính tương thích (CTS) cho phép bạn tuỳ chỉnh cách một số kiểm thử CTS 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 như thay thế một phần tử 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 (CDD) của Android hoặc tài liệu API, trong khi vẫn vượt qua CTS.
Những 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 vượt qua CTS có thể triển khai các mô-đun trợ giúp. Nếu sử dụng chế độ triển khai Android mặc định, bạn không cần thực hiện thêm thao tác nào khác.
Triển khai các mô-đun trợ giúp
Yêu cầu để tuỳ chỉnh giao diện người dùng
Kiểm tra CDD hoặc các mô-đun 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 được CDD hoặc các mô-đun Mainline bao phủ, thì bạn không thể tuỳ chỉnh giao diện người dùng đó.
Nếu các 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ợ 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
- Tuỳ chỉnh giao diện người dùng khi cần cho sản phẩm cụ thể của bạn.
- 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 hoạt động tương tác cần thiết một cách thích hợp cho giao diện người dùng tuỳ chỉnh. 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 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 với việc triển khai AOSP, có tiền tố
Default.
- Các lớp con OEM nằm trong một gói OEM, chẳng hạn như
- Tạo các trình trợ giúp thành một tệp APK theo các quy ước về trình chạy kiểm thử sau đây.
Android.bpphải khai báoandroid_test_helper_appcó cùng tên với gói được chứa.AndroidManifest.xmlcho APK phải khai báo một thuộc tính siêu dữ liệu có tên làinteraction-helpers-prefixvới giá trị của tiền tố lớp được chọn trong dấu đầu dòng trước.- Ứng dụng này phải phụ thuộc vào
cts-helpers-core,cts-helpers-interfacesvàcom.android.cts.helpers.aosp. Nếu các 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.aosplà không bắt buộc.
- Đặt thuộc tính
ro.vendor.cts_interaction_helper_packagestrong hình ảnh thiết bị để thêm tên của APK. Nếu bạn cần tách các phương thức triển khai trợ lý 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. - Đảm bảo rằng APK có trong thư mục
testcaseskhi 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 các thông báo logcat. - Không bắt buộc nhưng bạn nên thực hiện: Gửi quá trình triển khai trình trợ giúp của bạn cho AOSP hoặc cung cấp để bên thứ ba kiểm thử.
Ví dụ về cách triển khai trình trợ giúp
Ví dụ: CtsPrintTestCases dự kiến sẽ có 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 có lớp con là DefaultCtsPrintHelper.
android_test_helper_app trong Android.bp có tên là com.oem.cts.helpers, tạo ra com.oem.cts.helpers.apk và khai báo interaction-helpers-prefix là Oem 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 cách 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 kiểm thử CTS với các trợ giúp của kiểm thử đó, chủ sở hữu kiểm thử 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 này và hành vi trợ giúp dự kiến của mô-đun đượ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 các quy trình kiểm thử CTS
Kiểm thử mà không có các đối tượng hỗ trợ
Ngoài một thuộc tính, lựa chọn kiểm thử mà không cần các đối tượng hỗ trợ không tồn tại trong thời gian chạy trên thiết bị, nhưng có thể sửa đổi cách các bài kiểm thử CTS tương tác với thiết bị. Nếu cần chạy CTS mà không có các phương thức triển khai trợ giúp, bạn có 2 lựa chọn:
- Xoá thuộc tính
ro.vendor.cts_interaction_helper_packageskhỏi thiết bị. Điều này ngăn không cho các đối tượng hỗ trợ được dùng hoàn toàn trên bản dựng đó. - Xoá APK trợ lý khỏi thư mục
testcasestrước khi chạy CTS. Điều này ngăn mọi lần chạy sử dụng các đối tượng hỗ trợ cho đến khi APK được khôi phục vềtestcases.
Bạn có thể thay đổi chế độ cài đặt mặc định bằng các đối số Tradefed và chế độ kiểm soát thuộc tính ro.vendor.cts_interaction_helper_packages. Đây là nơi tải 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 hiện có.
ro.vendor.cts_interaction_helper_packageslà một chuỗi phân tách bằng dấu hai chấm chứa tên gói. Tham số này có thể nhận bất kỳ giá trị nào là lựa chọn gói hợp lệ cho việc triển khai trợ lý của OEM.cts-tradefedchấp nhận một đối sốdevice-interaction-helper:property-nametạ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ínhro.vendor.cts_interaction_helper_packagesđược mô tả ở trên.
Kiểm thử bằng các chế độ 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 các hoạt động triển khai của đối tác vượt qua CTS bằng các chế độ 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 các tính năng mà bạn đã tuỳ chỉnh.
Một số mô-đun hoặc trợ lý CTS có thể chưa hỗ trợ một số chế độ tuỳ chỉnh.
- Một 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ợ 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 kiểm thử. Yêu cầu tệp để chuyển đổi sớm trong quy trình nhằm đảm bảo rằng quá trình chuyển đổi diễn ra theo lịch trình, tương tự như yêu cầu thay đổi CTS để hỗ trợ các tính năng mà bạn dự định.
- Các hàm do một trình trợ giúp hiện có cung cấp có thể không đáp ứng đầy đủ các điểm tuỳ chỉnh mà bạn muốn thực hiện. Các hàm trợ giúp phải trừu tượng hoá 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ó một phần 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.