In Android 7.0 und höher können Geräte mit dem Mehrfenstermodus mehrere Apps gleichzeitig anzeigen. Android unterstützt drei Mehrfensterkonfigurationen:
- Freiform:Nutzer können Aktivitätsbereiche dynamisch in der Größe anpassen und mehr als zwei Apps auf dem Bildschirm anzeigen lassen. Beim Desktop-Freiform-Fenster können Nutzer auf einem Desktop, der Interaktionen im Desktop-Stil bietet, Freiform-Fenster erstellen.
- Splitscreen:Die standardmäßige Mehrfenstermodus-Implementierung, die zwei Aktivitätsbereiche bietet, in denen Nutzer Apps platzieren können.
- Bild im Bild (BiB):Mit dieser Funktion können auf Geräten mit Android Videoinhalte in einem kleinen Fenster wiedergegeben werden, während der Nutzer andere Apps verwendet.
Anforderungen an Geräte mit Mehrfenstermodus
Der Mehrfenstermodus ist in Android 7.0 und höher standardmäßig aktiviert.
Wenn Sie die Funktion deaktivieren möchten, setzen Sie das Flag config_supportsMultiWindow in der Datei config.xml Ihres Geräts auf false.
Die Funktion „Mehrfenstermodus“ ist auf allen Geräten mit wenig RAM (Geräten, die ActivityManager.isLowRam deklarieren) standardmäßig deaktiviert. Geräte mit wenig RAM ignorieren den Wert des Flags config_supportsMultiWindow.
Freies Format
Mit dem Freiform-Fenstermodus können Nutzer Fenster erstellen, deren Größe frei angepasst werden kann. Freiform-Fenster sind eine Voraussetzung für Desktop-Freiform-Fenster. Für die Aktivierung von Freiform-Fenstern gelten die folgenden Geräteanforderungen:
-
Aktivieren Sie das Flag
config_supportsMultiWindow. -
Sie haben folgende Möglichkeiten, die Verwaltung von Freiform-Fenstern zu aktivieren:
-
Aktivieren Sie das Flag
config_freeformWindowManagementinconfig.xml:<feature name="android.software.freeform_window_management" /> -
Fügen Sie Folgendes in das Geräte-Makefile ein:
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
-
Aktivieren Sie das Flag
In Android 16 können OEMs die Desktop-Freiform-Fensterung auf ihrem Gerät für eine Freiform-Konfiguration mit Mehrfenstermodus über Enable desktop windowing unterstützen.
Desktop-Freiform-Fenster
Desktop-Freiform-Fenster bieten einen Arbeitsbereich für Multitasking auf großen Displays, der auf Freiform-Fenstern basiert. Der Arbeitsbereich ist neben dem Vollbildmodus verfügbar und bietet zusätzliche UI-Elemente und Verhaltensweisen, die Nutzern ein flexibleres Multitasking ermöglichen:
- Interaktion über Tastatur oder Maus:Unterstützt sowohl Touch- als auch Tastatur- oder Mausinteraktionen.
- Freiform-Fenster:Apps werden in anpassbaren, verschiebbaren Fenstern mit Titelleisten und Steuerelementen ausgeführt.
- Erweiterte Taskleiste:Bietet einfachen Zugriff auf laufende und angepinnte Apps.
- Optimierung externer Displays:Verwandelt angeschlossene Monitore in Desktopumgebungen für unterstützte Geräte.
- Virtuelle Desktops:Nutzer können Apps in mehreren Arbeitsbereichen organisieren.
Damit Sie ein Gerät für die Fensterdarstellung auf dem Desktop konfigurieren können, müssen die folgenden Voraussetzungen erfüllt sein:
-
Aktivieren Sie die folgenden Flags:
- Alle Voraussetzungen für Freeform-Fensterung
- Das globale Flag für Desktop-Freiform-Fenster
config_isDesktopModeSupported
- Für die System-UI ist ein Display mit einer Breite von mindestens 600 dp erforderlich. Die Desktop-Freiform-Fenster funktionieren auf kleineren Displays möglicherweise nicht wie erwartet.
-
Das Gerät darf kein Low-RAM-Gerät sein.
ActivityManager.isLowRammussfalsezurückgeben, da Geräte mit wenig RAM nicht für Multi-Window-Funktionen infrage kommen.
In der folgenden Tabelle sind die Konfigurationen aufgeführt, in denen ein Gerät für die Desktop-Freiform-Fenster konfiguriert werden kann, je nach Bildschirmgröße und beabsichtigter Verwendung des Geräts:
| Modus | Nur Vollbild-Handheld | Handheld-Gerät im Vollbildmodus projiziert auf verbundenes Display | Vollbildmodus auf dem großen Display und dem verbundenen Display | Desktop-Freiform-Fenster – großer Bildschirm |
|---|---|---|---|---|
| Beispiel für Formfaktor | Smartphone | Ein Smartphone, das HDMI für externe Displays unterstützt | Tablet, das HDMI für externe Displays unterstützt | Tablet mit Tastatur, das HDMI für externe Displays unterstützt |
| Internes Display | Vollbild, Splitscreen, BiB und Freeform-Modus auf Nicht-Desktop-Geräten werden unterstützt | Vollbild-, Splitscreen- und BiB-Modus werden unterstützt | Desktop-Freiform-Fenstermodus mit Unterstützung für Vollbild, Splitscreen und BiB über separate Arbeitsbereiche | Der Desktop-Freiform-Fenstermodus ist der Standardfenstermodus (separate Desktops werden unterstützt). Nutzer können über separate Desktops in den Vollbild- oder Touch-Modus wechseln. |
| Verbundene Displays | Nur internes Display spiegeln | Desktop-Freiform-Fenster nur auf verbundenen Displays | Desktop-Freiform-Fenster auf internen Displays | Desktop-Freiform-Fenster auf internen Displays |
| Konfigurationseinstellungen | ||||
config_supportsMultiWindow |
true |
true |
true |
true |
config_freeformWindowManagement |
true |
true |
true |
true |
config_isDesktopModeSupported |
false |
true |
true |
true |
config_canInternalDisplayHostDesktops |
Ignoriert | false |
true |
true |
config_enterDesktopByDefaultOnFreeformDisplay |
Ignoriert | false |
false |
true |
config_isDesktopModeSupported
Das Konfigurations-Overlay-Flag config_isDesktopModeSupported ist das Flag der obersten Ebene zum Aktivieren der Desktop-Freiform-Fenster. Wenn sie nicht aktiviert ist, werden alle anderen Konfigurationseinstellungen ignoriert.
Stelle die Temperatur in config.xml auf true ein:
<!-- Globally enable Desktop windowing logic -->
<bool name="config_isDesktopModeSupported">true</bool>
Wenn config_isDesktopModeSupported true ist, behandelt das System automatisch geeignete externe Displays (z. B. solche, die über DisplayPort oder HDMI verbunden sind) als Kandidaten für die Desktop-Freiform-Fenster.
Das Display muss vom Window Manager als geeignet eingestuft werden (mindestens öffentlich und vertrauenswürdig, siehe Desktop-Freiform-Fenster).
Das System versucht, Aufgaben auf diesen Displays standardmäßig im Freiform-Modus zu starten.
config_canInternalDisplayHostDesktops
Mit dem Konfigurations-Overlay-Flag config_canInternalDisplayHostDesktops wird Desktop Windowing auf dem internen Display des Geräts aktiviert. Stelle die Temperatur in config.xml auf true ein:
<!-- Allow the primary internal display to host desktop sessions -->
<bool name="config_canInternalDisplayHostDesktops">true</bool>Die Desktop-Freiform-Fenster funktionieren am besten auf Geräten mit großem Bildschirm wie Tablets, im Vergleich zu kleineren Smartphones. Wenn diese Funktion nicht aktiviert ist, werden Desktop-Freiform-Fenster nur auf einem externen Display unterstützt (vorausgesetzt, das Gerät unterstützt HDMI).
config_enterDesktopByDefaultOnFreeformDisplay
Mit dem Konfigurations-Overlay-Flag config_enterDesktopByDefaultOnFreeformDisplay wird Desktop-Freiform-Fenster als Standardfenstermodus auf dem internen Display des Geräts festgelegt. Wenn nicht aktiviert, ist der Vollbildmodus der Standardfenstermodus, in dem die Desktops nebeneinander existieren. Stelle die Temperatur in config.xml auf true ein:
<!-- Enable Desktop windowing as the default windowing mode on the internal display -->
<bool name="config_enterDesktopByDefaultOnFreeformDisplay">true</bool>Aufgabenlimits aktivieren
Wenn Sie die maximale Anzahl der in der Desktop-Freiform-Fensterung unterstützten Aufgaben konfigurieren möchten, legen Sie das Konfigurations-Overlay-Flag config_maxDesktopWindowingActiveTasks in config.xml auf die maximale Anzahl der unterstützten Aufgaben fest. Wenn Sie eine unbegrenzte Anzahl von Aufgaben unterstützen möchten, legen Sie den Flag-Wert auf 0 fest:
<!-- Maximum number of tasks supported in desktop windowing -->
<integer name="config_maxDesktopWindowingActiveTasks">4</integer>Desktop-Begrenzungen aktivieren
Wenn Sie die maximale Anzahl der in der Desktop-Freiform-Fensterung unterstützten virtuellen Desktops konfigurieren möchten, legen Sie das Konfigurations-Overlay-Flag config_maxDesktopWindowingDesks in config.xml auf die maximale Anzahl der unterstützten Desktops fest. Wenn Sie eine unbegrenzte Anzahl von Arbeitsplätzen unterstützen möchten, legen Sie den Flag-Wert auf 0 fest:
<!-- Maximum number of virtual desks supported in desktop windowing -->
<integer name="config_maxDesktopWindowingDesks">4</integer>Splitscreen
Die Standardeinstellung für die Funktion „Mehrere Fenster“ ist der Splitscreen-Modus, in dem die System-UI in der Mitte des Geräts im Hoch- oder Querformat geteilt wird. Nutzer können die Größe des Fensters anpassen, indem sie die Trennlinie je nach Geräteausrichtung seitlich oder von oben nach unten ziehen.
Nachdem der Splitscreen-Modus aktiviert wurde, können Gerätehersteller den Freiform- oder den PiP-Modus aktivieren.
Unter Android 8.0 und höher wird der Splitscreen-Modus verbessert, indem der Launcher komprimiert wird, wenn der Nutzer auf Startseite tippt. Weitere Informationen zur Implementierung finden Sie unter Interaktionen im Splitscreen-Modus.
Bild im Bild
Nachdem der Mehrfenstermodus mit dem Flag config_supportsMultiWindow aktiviert wurde, können Gerätehersteller Bild-im-Bild unterstützen, sodass Nutzer Videos ansehen können, während sie andere Aktivitäten ausführen. Diese Funktion ist zwar für Android TV-Geräte vorgesehen, wird aber möglicherweise auch von anderen Gerätetypen unterstützt.
Wenn du PiP unterstützen möchtest, aktiviere die Systemfunktion PackageManager#FEATURE_PICTURE_IN_PICTURE in /android/frameworks/base/core/java/android/content/pm/PackageManager.java.
Weitere Informationen zur BiB-Implementierung für Geräte mit Android 8.0 und höher findest du unter Bild im Bild.
System-UI
Alle Standard-System-UIs müssen gemäß Überprüfung des Mehrfenstermodus unterstützt werden.
Apps
Informationen zur Unterstützung des Mehrfenstermodus für vorinstallierte Apps finden Sie unter Mehrfenstermodus unterstützen.
Validierung
Um die Implementierung des Mehrfenstermodus zu validieren, führen Sie die zugehörigen CTS-Tests aus und folgen Sie der Anleitung unter Mehrfenstermodus prüfen.