Untuk Android 11 atau lebih tinggi, modul pembantu interaksi perangkat Compatibility Test Suite (CTS) memungkinkan Anda menyesuaikan cara pengujian CTS tertentu berinteraksi dengan antarmuka pengguna (UI) pada perangkat tertentu. Ini berarti bahwa tindakan, seperti mengganti elemen UI yang tidak tercakup oleh Dokumen Definisi Kompatibilitas Android (CDD) atau dokumen API, dapat dilakukan saat masih meneruskan CTS.
OEM yang ingin menyesuaikan UI Android selama pengembangan produk dan harus lulus CTS mungkin dapat mengimplementasikan modul pembantu. Jika Anda menggunakan implementasi Android default, maka tidak diperlukan pekerjaan tambahan.
Menerapkan modul pembantu
Persyaratan untuk menyesuaikan UI
Periksa modul CDD atau Mainline untuk persyaratan UI apa pun. Jika UI yang diinginkan tercakup oleh modul CDD atau Mainline, maka UI tersebut tidak dapat dikustomisasi.
Jika pengujian CTS yang berinteraksi dengan UI yang diinginkan tidak menggunakan kerangka kerja pembantu, maka UI tersebut tidak dapat dikustomisasi. Bekerja 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 spesifik Anda.
- Tetapkan modul pembantu AOSP yang ada sebagai subkelas untuk modul pengujian CTS yang perlu berinteraksi dengan UI. Ganti interaksi yang diperlukan dengan tepat untuk UI yang disesuaikan. Penggantian bervariasi tergantung pada jenis perubahan.
- Subkelas OEM ada dalam paket OEM, seperti
com.[oem].cts.helpers
. - Setiap subkelas OEM diberi nama dengan awalan umum yang membedakannya dari implementasi AOSP, yang memiliki awalan
Default
.
- Subkelas OEM ada dalam paket OEM, seperti
- Bangun helper menjadi APK dengan mengikuti konvensi test runner ini.
-
Android.bp
harus mendeklarasikanandroid_test_helper_app
dengan nama yang sama dengan paket yang ada. -
AndroidManifest.xml
untuk APK harus mendeklarasikan properti metadata bernamainteraction-helpers-prefix
dengan nilai awalan kelas yang dipilih di poin poin sebelumnya. - Aplikasi harus bergantung pada
cts-helpers-core
,cts-helpers-interfaces
, dancom.android.cts.helpers.aosp
. Jika helper OEM sepenuhnya mengimplementasikan semua antarmuka yang relevan, makacom.android.cts.helpers.aosp
adalah opsional.
-
- Setel properti
ro.vendor.cts_interaction_helper_packages
di gambar 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 for CTS. Jika diperlukan, konfirmasikan bahwa kelas implementasi helper yang diharapkan dipilih dengan memeriksa pesan logcat. - Opsional, tetapi sangat disarankan: Kirim implementasi helper Anda ke AOSP atau sediakan untuk pengujian pihak ketiga.
Contoh implementasi pembantu
Misalnya, CtsPrintTestCases
mengharapkan helper dengan antarmuka yang ditentukan dalam ICtsPrintHelper
. Implementasi AOSP disebut com.android.cts.helpers.aosp.DefaultCtsPrintHelper
.
Jika Anda menyesuaikan UI cetak, Anda dapat membuat com.oem.cts.helpers.OemCtsPrintHelper
yang mensubklasifikasikan DefaultCtsPrintHelper
. android_test_helper_app
di Android.bp
bernama 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
Implementasi referensi termasuk antarmuka di bawah cts/libs/helpers
dan pembantu AOSP default di bawah cts/helpers
. Antarmuka tingkat atas didokumentasikan dalam 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 dalam cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java
.
Setiap modul CTS yang menggunakan kerangka kerja dan perilaku helper yang diharapkan didokumentasikan dalam antarmuka yang didefinisikan di bawah cts/libs/helpers/core/src/com/android/cts/helpers
.
Menjalankan tes CTS
Menguji tanpa pembantu
Selain satu properti, opsi untuk menguji tanpa pembantu tidak ada saat runtime di perangkat, tetapi secara opsional mengubah cara pengujian CTS berinteraksi dengan perangkat. Jika Anda perlu menjalankan CTS tanpa implementasi pembantu, Anda memiliki dua opsi:
- Hapus properti
ro.vendor.cts_interaction_helper_packages
dari perangkat. Ini mencegah helper digunakan sepenuhnya pada build itu. - Hapus APK pembantu dari direktori
testcases
sebelum menjalankan CTS. Ini mencegah helper digunakan oleh proses apa pun hingga APK dipulihkan ketestcases
.
Anda dapat mengubah pengaturan default dengan argumen Tradefed dan kontrol properti ro.vendor.cts_interaction_helper_packages
, dari mana APK pembantu dimuat.
Lihat berikut ini untuk nilai atau rentang yang diharapkan untuk setiap pengaturan yang tersedia.
-
ro.vendor.cts_interaction_helper_packages
adalah string yang dipisahkan titik dua yang berisi nama paket. Itu dapat mengambil nilai apa pun yang merupakan pilihan paket yang valid untuk implementasi helper OEM. -
cts-tradefed
menerima argumendevice-interaction-helper:property-name
yang secara sementara mengubah properti yang diharapkan untuk satu kali pengujian, seperti--module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'
. Nilai nama properti dapat berupa properti apa pun yang Anda atur di perangkat. Nilai properti mengikuti batasan yang sama seperti propertiro.vendor.cts_interaction_helper_packages
yang dijelaskan di atas.
Menguji dengan penyesuaian
Secara default, implementasi referensi meneruskan CTS pada stok Android. Periksa apakah implementasi mitra lulus CTS dengan penyesuaian UI. Jalankan modul CTS mana pun yang mencakup UI atau fitur yang Anda sesuaikan.
Modul atau pembantu CTS tertentu mungkin belum mendukung beberapa penyesuaian.
- Modul CTS yang berinteraksi dengan UI yang ingin Anda sesuaikan mungkin tidak menggunakan kerangka kerja pembantu. Modul CTS diharapkan dapat dikonversi ke kerangka kerja pembantu 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 ada mungkin tidak sepenuhnya menangani penyesuaian yang ingin Anda buat. Fungsi pembantu harus mengabstraksi dependensi UI. Jika fungsi pembantu secara tidak langsung memiliki ketergantungan UI, ini dapat diperlakukan sama dengan bug di CTS.