Untuk Android 11 atau yang lebih tinggi, modul helper interaksi perangkat Compatibility Test Suite (CTS) memungkinkan Anda menyesuaikan cara pengujian CTS tertentu berinteraksi dengan antarmuka pengguna (UI) di perangkat tertentu. Artinya, tindakan seperti mengganti elemen UI yang tidak tercakup dalam Android Compatibility Definition Document (CDD) atau dokumen API, dapat dilakukan sambil tetap lulus CTS.
OEM yang ingin menyesuaikan UI Android selama pengembangan produk dan perlu lulus CTS mungkin dapat menerapkan modul helper. Jika Anda menggunakan penerapan Android default, Anda tidak perlu melakukan tindakan tambahan apa pun.
Menerapkan modul helper
Persyaratan untuk menyesuaikan UI
Periksa persyaratan UI pada modul CDD atau Mainline. Jika UI yang diinginkan tercakup dalam modul CDD atau Mainline, UI tersebut tidak dapat disesuaikan.
Jika pengujian CTS yang berinteraksi dengan UI yang diinginkan tidak menggunakan framework helper, UI tersebut tidak dapat disesuaikan. Bekerja sama dengan pemilik pengujian untuk mengonversi modul pengujian sebelum UI dapat diubah.
Jika tidak, Anda dapat menyesuaikan UI.
Alur kerja penerapan
- Sesuaikan UI sesuai kebutuhan untuk produk spesifik Anda.
- Tetapkan modul helper AOSP yang ada sebagai subclass untuk modul pengujian CTS yang perlu berinteraksi dengan UI. Ganti interaksi yang diperlukan dengan tepat untuk UI yang disesuaikan. Penggantian bervariasi, bergantung pada jenis perubahan.
- Subclass OEM berada dalam paket OEM, seperti
com.[oem].cts.helpers. - Setiap subclass OEM diberi nama dengan awalan umum yang membedakannya
dari implementasi AOSP, yang memiliki awalan
Default.
- Subclass OEM berada dalam paket OEM, seperti
- Bangun helper ke dalam APK dengan mengikuti konvensi pelaksana pengujian berikut.
Android.bpharus mendeklarasikanandroid_test_helper_appdengan nama yang sama dengan paket yang disertakan.AndroidManifest.xmluntuk APK harus mendeklarasikan properti metadata bernamainteraction-helpers-prefixdengan nilai awalan class yang dipilih pada poin sebelumnya.- Aplikasi harus bergantung pada
cts-helpers-core,cts-helpers-interfaces, dancom.android.cts.helpers.aosp. Jika helper OEM menerapkan sepenuhnya semua antarmuka yang relevan, makacom.android.cts.helpers.aospbersifat opsional.
- Tetapkan properti
ro.vendor.cts_interaction_helper_packagesdi image perangkat untuk menyertakan nama APK. Jika Anda perlu memisahkan penerapan helper di beberapa APK, properti ini dapat berisi daftar paket yang dipisahkan titik dua. - Pastikan APK tersedia di direktori
testcasessaat menjalankan Tradefed untuk CTS. Jika perlu, konfirmasi bahwa class penerapan helper yang diharapkan dipilih dengan memeriksa pesan logcat. - Opsional, tetapi sangat direkomendasikan: Kirimkan penerapan helper Anda ke AOSP atau sediakan untuk pengujian pihak ketiga.
Contoh penerapan helper
Misalnya, CtsPrintTestCases mengharapkan helper dengan antarmuka yang ditentukan
di ICtsPrintHelper. Implementasi AOSP disebut
com.android.cts.helpers.aosp.DefaultCtsPrintHelper.
Jika menyesuaikan UI cetak, Anda dapat membuat
com.oem.cts.helpers.OemCtsPrintHelper yang merupakan subclass DefaultCtsPrintHelper.
android_test_helper_app di Android.bp diberi nama com.oem.cts.helpers,
yang menghasilkan com.oem.cts.helpers.apk,
dan mendeklarasikan interaction-helpers-prefix sebagai Oem di AndroidManifest.xml.
Properti perangkat ro.vendor.cts_interaction_helper_packages disetel ke
com.oem.cts.helpers.
Implementasi referensi
Penerapan referensi mencakup antarmuka di bagian cts/libs/helpers dan
helper AOSP default di bagian cts/helpers. Antarmuka tingkat teratas didokumentasikan
di
cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java.
Untuk menghubungkan pengujian CTS ke helper-nya, pemilik pengujian dapat menggunakan definisi @Rule yang didokumentasikan di cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java.
Setiap modul CTS yang menggunakan framework dan perilaku helper yang diharapkan didokumentasikan dalam antarmuka yang ditentukan di bagian cts/libs/helpers/core/src/com/android/cts/helpers.
Menjalankan pengujian CTS
Menguji tanpa bantuan
Selain satu properti, opsi untuk menguji tanpa helper tidak ada saat runtime di perangkat, tetapi secara opsional mengubah cara pengujian CTS berinteraksi dengan perangkat. Jika Anda perlu menjalankan CTS tanpa implementasi helper, Anda memiliki dua opsi:
- Hapus properti
ro.vendor.cts_interaction_helper_packagesdari perangkat. Hal ini mencegah penggunaan helper sepenuhnya pada build tersebut. - Hapus APK helper dari direktori
testcasessebelum menjalankan CTS. Tindakan ini mencegah helper digunakan oleh proses berjalan hingga APK dipulihkan ketestcases.
Anda dapat mengubah setelan default dengan argumen Tradefed dan kontrol properti ro.vendor.cts_interaction_helper_packages, yang merupakan tempat APK helper dimuat.
Lihat bagian berikut untuk mengetahui nilai atau rentang yang diharapkan untuk setiap setelan yang tersedia.
ro.vendor.cts_interaction_helper_packagesadalah string yang dipisahkan titik dua yang berisi nama paket. Dapat mengambil nilai apa pun yang merupakan pilihan paket yang valid untuk implementasi helper OEM.cts-tradefedmenerima argumendevice-interaction-helper:property-nameyang mengubah properti yang diharapkan untuk satu kali menjalankan pengujian, seperti--module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'. Nilai nama properti dapat berupa properti apa pun yang Anda tetapkan di perangkat. Nilai properti mengikuti batasan yang sama dengan propertiro.vendor.cts_interaction_helper_packagesyang dijelaskan di atas.
Menguji dengan penyesuaian
Secara default, implementasi referensi lulus CTS di Android standar. Pastikan penerapan partner lulus CTS dengan penyesuaian UI. Jalankan modul CTS yang mencakup UI atau fitur yang Anda sesuaikan.
Modul atau helper CTS tertentu mungkin belum mendukung beberapa penyesuaian.
- Modul CTS yang berinteraksi dengan UI yang ingin Anda sesuaikan mungkin tidak menggunakan framework helper. Modul CTS diharapkan dikonversi ke framework helper berdasarkan permintaan dan prioritas pemilik pengujian. Ajukan permintaan konversi di awal proses untuk memastikan konversi masuk ke jadwal, mirip dengan meminta perubahan CTS untuk mendukung fitur yang direncanakan.
- Fungsi yang disediakan oleh helper yang ada mungkin tidak sepenuhnya memenuhi penyesuaian yang ingin Anda lakukan. Fungsi helper harus mengabstraksi dependensi UI. Jika fungsi helper secara tidak langsung memiliki dependensi UI, hal ini dapat diperlakukan serupa dengan bug di CTS.