Di Android 7.0 dan yang lebih tinggi, perangkat dapat menampilkan beberapa aplikasi secara bersamaan menggunakan multi-aplikasi. Android mendukung tiga konfigurasi multi-aplikasi:
- Format bebas: Memungkinkan pengguna mengubah ukuran panel aktivitas secara dinamis dan menampilkan lebih dari dua aplikasi di layar. Untuk mode jendela desktop, pengguna dapat membuat jendela bentuk bebas di desktop yang menawarkan interaksi gaya desktop.
- Layar terpisah: Implementasi multi-aplikasi default, yang menyediakan dua panel aktivitas tempat pengguna dapat menempatkan aplikasi.
- Picture-in-picture (PiP): Memungkinkan perangkat yang menjalankan Android memutar konten video di jendela kecil saat pengguna berinteraksi dengan aplikasi lain.
Persyaratan perangkat multi-aplikasi
Dukungan multi-aplikasi diaktifkan secara default di Android 7.0 dan yang lebih tinggi.
Untuk menonaktifkannya, tetapkan tanda config_supportsMultiWindow ke
false dalam file
config.xml perangkat Anda.
Multi-aplikasi dinonaktifkan secara default di semua perangkat dengan RAM rendah (perangkat yang
mendeklarasikan ActivityManager.isLowRam). Perangkat dengan RAM rendah
mengabaikan nilai tanda config_supportsMultiWindow.
Freeform
Penampilan jendela bentuk bebas memungkinkan pengguna membuat jendela yang dapat diubah ukurannya secara bebas. Windowing freeform adalah prasyarat untuk mode jendela desktop. Persyaratan perangkat untuk mengaktifkan windowing bentuk bebas adalah sebagai berikut:
-
Aktifkan tanda
config_supportsMultiWindow. -
Aktifkan pengelolaan jendela bentuk bebas dengan salah satu cara berikut:
-
Aktifkan tanda
config_freeformWindowManagementdiconfig.xml:<feature name="android.software.freeform_window_management" /> -
Sertakan kode berikut dalam makefile perangkat:
PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.freeform_window_management.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/android.software.freeform_window_management.xml
-
Aktifkan tanda
Di Android 16, OEM dapat mendukung mode jendela desktop di perangkat mereka untuk konfigurasi multi-aplikasi freeform menggunakan Aktifkan mode jendela desktop.
Mode jendela desktop
Mode jendela desktop menyediakan ruang kerja untuk multitasking di layar besar, yang dibangun di atas jendela format bebas. Ruang kerja ada di samping layar penuh, dengan perilaku dan afordans UI tambahan yang memberi pengguna pengalaman multitasking yang lebih fleksibel:
- Interaksi keyboard atau mouse: Mendukung interaksi yang mengutamakan sentuhan dan interaksi yang mengutamakan keyboard atau mouse.
- Jendela bentuk bebas: Menjalankan aplikasi di jendela yang dapat diubah ukurannya dan dipindahkan dengan kontrol dan kolom caption jendela.
- Taskbar yang ditingkatkan: Memberikan akses mudah ke aplikasi yang sedang berjalan dan disematkan.
- Pengoptimalan tampilan eksternal: Mengubah monitor yang terhubung menjadi lingkungan desktop untuk perangkat yang didukung.
- Desktop virtual: Memungkinkan pengguna mengatur aplikasi di beberapa ruang kerja.
Penuhi prasyarat berikut untuk mengonfigurasi perangkat untuk tampilan jendela desktop:
-
Aktifkan tanda berikut:
- Semua prasyarat untuk Penayangan jendela Freeform
- Flag mode jendela desktop global
config_isDesktopModeSupported
- UI Sistem memerlukan layar dengan lebar minimal 600 dp. Mode jendela desktop mungkin tidak berfungsi seperti yang diharapkan pada layar yang lebih kecil.
-
Perangkat tidak boleh berupa perangkat dengan RAM rendah.
ActivityManager.isLowRamharus menampilkanfalse, karena perangkat dengan RAM rendah tidak memenuhi syarat untuk fitur multi-aplikasi apa pun.
Tabel berikut mencantumkan konfigurasi yang dapat digunakan untuk mengonfigurasi perangkat untuk mode jendela desktop, bergantung pada ukuran layar dan cara perangkat akan digunakan:
| Mode | Perangkat genggam khusus layar penuh | Proyeksi perangkat genggam yang mengutamakan layar penuh ke layar terhubung | Layar besar yang mengutamakan layar penuh dan diperluas ke layar yang terhubung | Layar besar yang mengutamakan mode jendela desktop |
|---|---|---|---|---|
| Contoh faktor bentuk | Ponsel genggam | Ponsel genggam yang mendukung HDMI ke layar eksternal | Tablet yang mendukung HDMI ke layar eksternal | Tablet dengan keyboard yang mendukung HDMI ke layar eksternal |
| Pengalaman layar internal | Layar penuh, layar terpisah, PiP, bentuk bebas non-desktop didukung | Mendukung layar penuh, layar terpisah, PiP | Mode jendela desktop yang mendukung layar penuh, layar terpisah, dan PiP melalui desktop terpisah | Mode jendela desktop adalah mode jendela default (mendukung desktop terpisah); pengguna dapat masuk ke mode jendela desktop layar penuh atau sentuh melalui desktop terpisah |
| Pengalaman layar terhubung | Mencerminkan hanya tampilan internal | Mode jendela desktop hanya di layar terhubung | Tampilan desktop memperluas desktop virtual; tersedia di layar internal | Tampilan desktop memperluas desktop virtual; tersedia di layar internal |
| Setelan konfigurasi | ||||
config_supportsMultiWindow |
true |
true |
true |
true |
config_freeformWindowManagement |
true |
true |
true |
true |
config_isDesktopModeSupported |
false |
true |
true |
true |
config_canInternalDisplayHostDesktops |
Diabaikan | false |
true |
true |
config_enterDesktopByDefaultOnFreeformDisplay |
Diabaikan | false |
false |
true |
config_isDesktopModeSupported
Flag overlay config config_isDesktopModeSupported adalah flag tingkat teratas untuk
mengaktifkan mode jendela desktop. Jika tidak diaktifkan, semua setelan konfigurasi lainnya akan diabaikan.
Tetapkan ke true di config.xml:
<!-- Globally enable Desktop windowing logic -->
<bool name="config_isDesktopModeSupported">true</bool>
Jika config_isDesktopModeSupported adalah true, sistem akan otomatis
memperlakukan layar eksternal yang memenuhi syarat (seperti yang terhubung melalui DisplayPort atau HDMI) sebagai
kandidat untuk mode jendela desktop.
Tampilan harus dianggap memenuhi syarat oleh Pengelola Jendela (setidaknya publik dan tepercaya,
lihat Mode jendela desktop).
Secara default, sistem mencoba meluncurkan tugas dalam mode freeform di layar ini.
config_canInternalDisplayHostDesktops
Flag overlay konfigurasi config_canInternalDisplayHostDesktops mengaktifkan tampilan desktop di layar internal perangkat. Tetapkan ke true di
config.xml:
<!-- Allow the primary internal display to host desktop sessions -->
<bool name="config_canInternalDisplayHostDesktops">true</bool>Mode jendela desktop berfungsi paling baik di perangkat layar besar seperti tablet, dibandingkan dengan ponsel genggam yang lebih kecil. Jika tidak diaktifkan, mode jendela desktop hanya didukung di layar eksternal (dengan asumsi perangkat mendukung HDMI).
config_enterDesktopByDefaultOnFreeformDisplay
Flag overlay config config_enterDesktopByDefaultOnFreeformDisplay menetapkan mode jendela desktop sebagai mode tampilan default di layar internal perangkat. Jika tidak diaktifkan, layar penuh adalah mode jendela default, dengan desktop yang ada bersamaan. Tetapkan ke true di config.xml:
<!-- Enable Desktop windowing as the default windowing mode on the internal display -->
<bool name="config_enterDesktopByDefaultOnFreeformDisplay">true</bool>Mengaktifkan batas tugas
Untuk mengonfigurasi jumlah maksimum tugas yang didukung dalam mode jendela desktop, tetapkan
flag overlay konfigurasi config_maxDesktopWindowingActiveTasks di config.xml
ke jumlah maksimum tugas yang didukung. Untuk mendukung jumlah tugas yang tidak terbatas, tetapkan
nilai tanda ke 0:
<!-- Maximum number of tasks supported in desktop windowing -->
<integer name="config_maxDesktopWindowingActiveTasks">4</integer>Mengaktifkan batas desktop virtual
Untuk mengonfigurasi jumlah maksimum desktop virtual yang didukung dalam mode jendela desktop, tetapkan
flag overlay konfigurasi config_maxDesktopWindowingDesks di config.xml
ke jumlah maksimum desktop virtual yang didukung. Untuk mendukung jumlah meja yang tidak terbatas, tetapkan
nilai tanda ke 0:
<!-- Maximum number of virtual desks supported in desktop windowing -->
<integer name="config_maxDesktopWindowingDesks">4</integer>Layar terpisah
Pengalaman default multi-aplikasi adalah mode layar terpisah, dengan UI Sistem dibagi di tengah perangkat dalam mode potret atau lanskap. Pengguna dapat mengubah ukuran jendela dengan menarik garis pembagi dari sisi ke sisi atau dari atas ke bawah, bergantung pada orientasi perangkat.
Setelah mengaktifkan layar terpisah, produsen perangkat dapat memilih untuk mengaktifkan bentuk bebas atau PiP.
Android 8.0 dan yang lebih tinggi meningkatkan kualitas layar terpisah dengan memadatkan peluncur saat pengguna mengetuk Beranda. Untuk mengetahui detail implementasinya, lihat Interaksi layar terpisah.
Picture-in-picture
Setelah mengaktifkan mode multi-aplikasi dengan tanda
config_supportsMultiWindow, produsen perangkat dapat
mendukung
picture-in-picture, yang memungkinkan pengguna menonton
video sambil menjelajahi aktivitas lain. Meskipun fitur ini ditujukan untuk
perangkat Android TV, jenis perangkat lain mungkin mendukung fitur ini.
Untuk mendukung PiP, aktifkan fitur sistem
PackageManager#FEATURE_PICTURE_IN_PICTURE di
/android/frameworks/base/core/java/android/content/pm/PackageManager.java.
Untuk mengetahui detail penerapan PiP selengkapnya untuk perangkat yang menjalankan Android 8.0 dan yang lebih tinggi, lihat Picture-in-picture.
UI Sistem
Mendukung semua UI Sistem standar sesuai dengan Verifikasi mode multi-aplikasi.
Aplikasi
Untuk mendukung mode multi-aplikasi bagi aplikasi yang sudah dimuat sebelumnya, lihat Mendukung mode multi-aplikasi.
Validasi
Untuk memvalidasi penerapan multi-aplikasi, jalankan CTS terkait dan ikuti Verifikasi mode multi-aplikasi.