Memaksimalkan kepatuhan pengujian dengan invarian WindowManager

Untuk menerapkan pengalaman pengguna yang konsisten dan berkualitas tinggi, serta untuk mencegah masalah yang menyebabkan kegagalan Compatibility Test Suite (CTS), terapkan prinsip inti WindowManager (WM) yang dijelaskan di sini. Prinsip ini membantu memastikan kepatuhan terhadap pedoman Kualitas aplikasi mobil. Prinsip ini berlaku untuk:

  • Rilis Android yang menggunakan arsitektur multi-aplikasi, yang dimulai di Android 14 dan dilanjutkan di Android 15 dengan UI yang Dapat Diskalakan.

  • UI yang Dapat Diskalakan Android dan implementasi kustom Anda sendiri

Dengan menerapkan prinsip-prinsip ini, Anda akan secara proaktif menghindari sebagian besar masalah kepatuhan CTS dan masalah pengujian fungsional.

Terminologi

invarian
Kondisi logis yang tetap benar selama eksekusi aplikasi yang mengarah pada integritas struktural. Invarian berfungsi sebagai aturan batas.
aktivitas khusus
Juga dikenal sebagai aktivitas UI Otomatis atau aktivitas UI Sistem, aktivitas aplikasi penting ini memiliki area khusus di layar yang selalu terlihat atau terlihat hampir sepanjang waktu, bahkan saat pengguna menekan Beranda,seperti navigasi utama atau aplikasi cluster.
aktivitas standar
Aktivitas aplikasi standar apa pun yang tidak penting bagi antarmuka pengguna inti sistem, seperti aplikasi media pihak ketiga yang diluncurkan dari petak aplikasi.

Prinsip WM

Untuk memaksimalkan kepatuhan CTS, terapkan prinsip-prinsip ini dalam penerapan WM Anda.

Menggunakan konfigurasi yang stabil saat peluncuran aktivitas

Luncurkan setiap aktivitas standar baru dengan satu transisi WM yang menetapkan posisi, ukuran, dan kepadatan akhirnya. Anda tidak boleh memicu transisi kedua yang mengubah konfigurasi jendela tugas pokok (seperti ukuran atau kepadatan) tepat setelah transisi pertama, karena hal ini menyebabkan perubahan konfigurasi tepat setelah aktivitas dibuat.

Memindahkan aktivitas standar ke status berhenti

Saat pengguna membuka tugas atau adegan beranda, Anda harus memindahkan semua aktivitas standar yang sedang berjalan ke status berhenti untuk mempertahankan siklus proses aplikasi Android yang dapat diprediksi dan diperlukan oleh pengujian CTS. Untuk mengetahui informasi selengkapnya tentang ekspektasi siklus proses aplikasi di lingkungan otomotif, lihat Mencegah penggunaan saat batasan pengalaman pengguna aktif.

Mencegah konten aktivitas standar tertutup

Jangan menggambar dekorasi atau elemen UI kustom yang menghalangi konten aktivitas standar. Jika Anda menggambar overlay kustom (seperti panel kontrol iklim kustom), Anda harus melaporkan dimensi ke sistem dengan inset SystemOverlay. Untuk Android 15 dan yang lebih tinggi, gunakan DecorPanel di UI yang Dapat Diskalakan. Aplikasi mengandalkan inset ini untuk menata letak konten dengan aman.

Menyembunyikan overlay pada permintaan mode imersif

Saat aplikasi meminta mode imersif, Anda harus menyembunyikan elemen UI kustom sementara dan menghapus inset SystemOverlay-nya. Hambatan persisten mengganggu ekspektasi piksel aplikasi. Untuk mengetahui detail tentang cara aplikasi meminta dan menangani mode imersif, lihat Panel sistem, mode imersif, dan rendering layar penuh.

Menerapkan sudut membulat hanya di tingkat tampilan

Terapkan sudut membulat hanya di tingkat tampilan menggunakan konfigurasi resource yang sesuai di frameworks/base. Jangan menerapkan sudut melengkung arbitrer ke permukaan aktivitas standar.

Tindakan ini mengganggu pengujian elemen UI. Sebagai tindakan sementara, Anda dapat menentukan radius sudut bulat yang sama untuk tampilan seperti yang Anda terapkan pada permukaan aktivitas standar.

Mempertahankan ukuran aplikasi saat permintaan mode imersif

Saat aplikasi meminta untuk memasuki mode imersif, jangan ubah ukuran jendela aplikasi. Tindakan ini akan memicu perubahan konfigurasi yang mengganggu. Sebagai gantinya, untuk memaksimalkan aplikasi, tawarkan tombol layar penuh yang dikontrol pengguna.