Untuk Android 11 atau yang lebih baru, 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 tersebut, seperti mengganti elemen UI yang tidak tercakup dalam dokumen Compatibility Definition Document (CDD) Android atau API, dapat dilakukan sambil tetap meneruskan 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.
Mengimplementasikan modul bantuan
Persyaratan untuk menyesuaikan UI
Periksa modul CDD atau Mainline untuk mengetahui persyaratan UI. 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 implementasi
- Sesuaikan UI sesuai kebutuhan untuk produk tertentu.
- 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
- Build helper ke dalam APK dengan mengikuti konvensi runner pengujian ini.
Android.bp
harus mendeklarasikanandroid_test_helper_app
dengan nama yang sama dengan paket yang dimuat.AndroidManifest.xml
untuk APK harus mendeklarasikan properti metadata bernamainteraction-helpers-prefix
dengan nilai awalan class yang dipilih di poin berbutir sebelumnya.- Aplikasi harus bergantung pada
cts-helpers-core
,cts-helpers-interfaces
, dancom.android.cts.helpers.aosp
. Jika helper OEM sepenuhnya menerapkan semua antarmuka yang relevan,com.android.cts.helpers.aosp
adalah opsional.
- Tetapkan properti
ro.vendor.cts_interaction_helper_packages
dalam image perangkat untuk menyertakan nama APK. Jika Anda perlu memisahkan implementasi helper di beberapa APK, properti ini dapat berisi daftar paket yang dipisahkan titik dua. - Pastikan APK tersedia di direktori
testcases
saat menjalankan Tradefed untuk CTS. Jika diperlukan, pastikan 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
dalam AndroidManifest.xml
.
Properti perangkat ro.vendor.cts_interaction_helper_packages
disetel ke
com.oem.cts.helpers
.
Penerapan referensi
Implementasi referensi mencakup antarmuka di bagian cts/libs/helpers
dan
helper AOSP default di bagian cts/helpers
. Antarmuka tingkat atas didokumentasikan
di
cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java
.
Untuk menghubungkan uji CTS ke helper, pemilik pengujian dapat menggunakan definisi @Rule
yang didokumentasikan dalam
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
cts/libs/helpers/core/src/com/android/cts/helpers
.
Menjalankan pengujian CTS
Pengujian 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 perlu menjalankan CTS tanpa implementasi helper, Anda memiliki dua opsi:
- Hapus properti
ro.vendor.cts_interaction_helper_packages
dari perangkat. Tindakan ini mencegah helper digunakan pada build tersebut sepenuhnya. - Hapus APK helper dari direktori
testcases
sebelum menjalankan CTS. Hal ini mencegah helper digunakan oleh operasi apa pun 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 referensi berikut untuk mengetahui nilai atau rentang yang diharapkan untuk setiap setelan yang tersedia.
ro.vendor.cts_interaction_helper_packages
adalah string yang dipisahkan titik dua yang berisi nama paket. Nilai ini dapat berupa nilai apa pun yang merupakan pilihan paket yang valid untuk implementasi helper OEM.cts-tradefed
menerima argumendevice-interaction-helper:property-name
yang mengubah properti yang diharapkan untuk satu pengujian yang dijalankan, seperti--module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'
, untuk sementara. 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_packages
yang dijelaskan di atas.
Menguji dengan penyesuaian
Secara default, implementasi referensi lulus CTS di Android bawaan. Pastikan penerapan partner lulus CTS dengan penyesuaian UI. Jalankan modul CTS mana pun 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 akan dikonversi ke framework helper berdasarkan permintaan dan prioritas pemilik pengujian. Ajukan permintaan konversi di awal proses untuk memastikan bahwa konversi sesuai jadwal, mirip dengan meminta perubahan CTS untuk mendukung fitur yang Anda rencanakan.
- Fungsi yang disediakan oleh helper yang sudah ada mungkin tidak sepenuhnya mengatasi penyesuaian yang ingin Anda lakukan. Fungsi helper harus memisahkan dependensi UI. Jika fungsi helper secara tidak langsung memiliki dependensi UI, hal ini dapat diperlakukan sama seperti bug di CTS.