Untuk menerapkan pengalaman pengguna yang konsisten dan berkualitas tinggi, serta mencegah masalah yang menyebabkan kegagalan Compatibility Test Suite (CTS), terapkan prinsip inti WindowManager (WM) yang dijelaskan di sini. 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 Android yang Dapat Diskalakan dan implementasi kustom Anda sendiri
Dengan menerapkan prinsip ini, Anda akan secara proaktif menghindari sebagian besar masalah kepatuhan CTS dan pengujian fungsional.
Terminologi
- invariant
- Kondisi logis yang tetap benar selama eksekusi aplikasi yang mengarah ke integritas struktural. Invariant bertindak sebagai aturan batas.
- special activity
- Juga dikenal sebagai aktivitas UI Otomatis atau aktivitas UI Sistem, aktivitas aplikasi penting ini memiliki area khusus di layar yang selalu terlihat atau terlihat sebagian besar waktu, bahkan saat pengguna menekan Beranda, seperti navigasi utama atau aplikasi cluster.
- standard activity
- Aktivitas aplikasi standar apa pun yang tidak penting untuk antarmuka pengguna inti sistem, seperti aplikasi media pihak ketiga yang diluncurkan dari kisi aplikasi.
Prinsip WM
Untuk memaksimalkan kepatuhan CTS, terapkan prinsip ini dalam implementasi WM Anda.
Menggunakan konfigurasi 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 yang mendasarinya (seperti ukuran atau kepadatan) segera setelah yang pertama, karena hal ini menyebabkan perubahan konfigurasi segera setelah aktivitas dibuat.
Memindahkan aktivitas standar ke status berhenti
Saat pengguna membuka tugas beranda atau adegan beranda, Anda harus memindahkan semua aktivitas standar yang berjalan ke status berhenti untuk mempertahankan siklus proses aplikasi Android yang dapat diprediksi yang diperlukan oleh pengujian CTS.
Mencegah pengaburan konten aktivitas standar
Jangan menggambar dekorasi kustom atau elemen UI apa pun 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.
Menyembunyikan overlay pada permintaan mode imersif
Saat aplikasi meminta mode imersif, Anda harus menyembunyikan elemen UI kustom sementara dan menghapus inset SystemOverlay. Hambatan persisten mengganggu ekspektasi piksel aplikasi.
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 membulat arbitrer ke permukaan aktivitas standar.
Tindakan ini mengganggu pengujian elemen UI. Sebagai tindakan sementara, Anda dapat menentukan radius sudut membulat yang sama untuk tampilan seperti yang Anda terapkan ke permukaan aktivitas standar.
Mempertahankan ukuran aplikasi pada 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.