Mode jendela desktop

Halaman ini menjelaskan fitur dan skenario pengujian yang terkait dengan mode jendela desktop.

Di Android 17 dan yang lebih tinggi, Anda dapat mengaktifkan mode jendela desktop per layar. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan mode jendela desktop.

Fitur desktop

Bagian ini menjelaskan fitur dan konfigurasi utama yang terkait dengan tampilan jendela desktop.

Mengaktifkan batas tugas

Untuk mengonfigurasi jumlah maksimum tugas yang didukung dalam mode jendela desktop:

  1. Aktifkan mode jendela desktop.
  2. Tetapkan tanda overlay config config_maxDesktopWindowingActiveTasks di config.xml ke jumlah maksimum tugas yang didukung. Untuk mendukung jumlah tugas yang tidak terbatas, tetapkan tanda ke nilai default 0:

    <integer name="config_maxDesktopWindowingActiveTasks">4</integer>
    

Fitur khusus browser

Android 16 memperkenalkan dua fitur khusus browser: inset header yang dapat disesuaikan dan pengelolaan instance aplikasi. Bagian ini menjelaskan skenario pengujian untuk memverifikasi kompatibilitas browser. OEM harus memverifikasi bahwa penerapan fitur berfungsi sebagaimana mestinya.

Kasus pengujian untuk inset header yang dapat disesuaikan

Kasus pengujian berikut memverifikasi kompatibilitas browser dengan inset header yang dapat disesuaikan:

  • Interaktivitas UI: Pastikan UI kolom teks browser tetap sepenuhnya interaktif di semua konfigurasi jendela (bentuk bebas, layar terpisah, dan layar penuh).
  • Pembersihan ikon sistem: Konfirmasi bahwa UI browser tidak digambar di bawah ikon sistem.
  • Penerapan warna latar depan: Verifikasi bahwa warna latar depan yang benar diterapkan ke ikon sistem di header aplikasi berdasarkan tema browser. Hal ini sangat penting jika tema browser berbeda dengan tema sistem.
  • Menarik jendela: Validasi bahwa jendela bentuk bebas dapat ditarik dengan menekan lama di mana saja pada area kosong di kolom tab.
  • Visibilitas tab saat mengubah ukuran: Uji apakah tab ditampilkan atau disembunyikan berdasarkan lebar jendela untuk mempertahankan kegunaan yang optimal.

Kasus pengujian untuk pengelolaan instance aplikasi dengan perilaku gestur yang dapat ditarik

Kasus pengujian berikut memverifikasi kompatibilitas browser dengan pengelolaan instance aplikasi:

  • Pembuatan jendela baru: Pastikan bahwa menyeret tab dari kolom tab ke area kosong akan membuat jendela browser baru yang berisi tab tersebut.
  • Tidak ada jendela baru untuk tab terakhir (instance tunggal): Jika hanya satu instance browser yang terbuka, pastikan bahwa menarik tab terakhir di jendela tersebut tidak membuat jendela baru.

Mode perilaku yang mengutamakan desktop dan sentuhan

Mode jendela desktop didesain untuk mendukung berbagai faktor bentuk di luar tablet mandiri, termasuk clamshell, dan perangkat dengan layar eksternal yang terhubung. Karena faktor bentuk yang berbeda membawa ekspektasi pengguna yang berbeda untuk interaksi, yang sering kali ditentukan oleh metode input utama (sentuh atau keyboard dan mouse), penataan jendela desktop menggunakan dua mode perilaku yang berbeda:

  • Mode mengutamakan desktop: Memberikan pengalaman yang dioptimalkan untuk keyboard dan touchpad dengan sistem yang lebih memilih penyesuaian ukuran jendela bentuk bebas. Mode ini ditujukan untuk konfigurasi seperti laptop.
  • Mode mengutamakan sentuhan: Memberikan pengalaman yang dioptimalkan untuk sentuhan dengan sistem yang lebih memilih tampilan jendela layar penuh. Mode ini adalah setelan default untuk tablet mandiri.

Mode ini bukan lingkungan desktop terpisah, melainkan status per layar yang menentukan perilaku UI default.

Perbedaan perilaku

Tabel berikut merangkum perbedaan utama UI dan fungsional antara mode desktop-first dan touch-first:

Fitur Mode mengutamakan sentuhan Mode Desktop-First
Peluncuran Default Windows diluncurkan dalam layar penuh kecuali jika jendela freeform sudah berada di atas. Jendela diluncurkan dalam bentuk freeform kecuali jika jendela layar penuh sudah berada di atas.
Jenis Taskbar Menggunakan Taskbar Sementara (hanya menampilkan aplikasi yang disematkan) dalam layar penuh. Selalu menggunakan Taskbar Desktop (menampilkan aplikasi yang disematkan dan dibuka).
Memfokuskan ulang Jendela diaktifkan kembali berdasarkan mode tampilan saat ini (misalnya, diaktifkan kembali dalam freeform jika tampilan berada dalam windowing desktop). Jendela diaktifkan kembali berdasarkan mode jendela tersimpan sendiri (misalnya, jendela layar penuh selalu dilanjutkan dalam layar penuh).
Tarik ke Atas Menarik jendela ke tepi atas akan mengaktifkan Layar Penuh. Menarik jendela ke tepi atas akan membuat jendela memasuki status Dimaksimalkan.
Kontrol Jendela Menggunakan handle aplikasi untuk kontrol layar penuh. Menggunakan menu arahkan kursor untuk kontrol layar penuh.

Mode desktop-first adalah status per-tampilan, yang berarti perangkat dapat secara bersamaan menghosting tampilan internal touch-first dan tampilan eksternal desktop-first.

Pemicu peralihan

Sistem mengevaluasi beberapa faktor untuk menentukan mode yang sesuai untuk tampilan:

  • Periferal input: Layar beralih ke desktop-first jika keyboard dan touchpad atau mouse terhubung dan diaktifkan.
  • Layar eksternal: Layar eksternal yang terhubung biasanya menggunakan mode desktop secara default, kecuali jika layar tersebut mencerminkan layar internal.
  • Postur perangkat: Untuk perangkat convertible, mode dapat beralih berdasarkan orientasi fisik (misalnya, beralih ke mode sentuh saat keyboard dibalik).

Implementasi Teknis

"Sumber tepercaya" untuk status ini adalah mode windowing tampilan, khususnya mode windowing TaskDisplayArea tampilan. Komponen Shell dan Peluncur dapat mengakses status ini melalui DisplayAreaInfo atau WindowConfiguration dari konteks tampilan.

Mode jendela desktop per layar

Di Android 17 dan yang lebih baru, untuk layar yang dapat menghosting tugas, sebagaimana ditentukan oleh Display.canHostTasks, WindowManager (WM) menentukan kelayakan untuk mode jendela desktop berdasarkan kriteria yang dapat dikonfigurasi oleh produsen peralatan asli (OEM). Secara default, WM memeriksa kriteria berikut:

  • Dukungan windowing freeform
  • Dekorasi sistem diaktifkan
  • Tombol mode konten atau tampilan default diaktifkan

Saat kelayakan layar berubah, WM memanggil IDisplayWindowListener.onDesktopModeEligibleChanged. API tersembunyi WindowManager.isEligibleForDesktopMode menampilkan apakah layar memenuhi syarat untuk windowing. Shell WM mencegat panggilan ini, dan jika layar memenuhi syarat, akan memutuskan apakah layar mendukung mode jendela desktop dan mengalokasikan resource yang diperlukan.