En Android 7.0 y versiones posteriores, los dispositivos pueden mostrar varias aplicaciones simultáneamente mediante ventanas múltiples. Android admite tres configuraciones de ventanas múltiples:
- La pantalla dividida es la implementación predeterminada de ventanas múltiples, que proporciona dos paneles de actividad donde los usuarios pueden colocar aplicaciones.
- Freeform permite a los usuarios cambiar dinámicamente el tamaño de los paneles de actividad y tener más de dos aplicaciones visibles en su pantalla.
- Imagen en imagen (PIP) permite que los dispositivos Android reproduzcan contenido de video en una ventana pequeña mientras el usuario interactúa con otras aplicaciones.
Implementación
La compatibilidad con ventanas múltiples está habilitada de forma predeterminada en Android 7.0 y versiones posteriores. Para desactivarlo, establezca el indicador config_supportsMultiWindow
en false
en el archivo config.xml de su dispositivo.
La ventana múltiple está deshabilitada de forma predeterminada en todos los dispositivos con poca RAM (dispositivos que declaran ActivityManager.isLowRam()
). Los dispositivos con poca RAM ignoran el valor del indicador config_supportsMultiWindow
.
Pantalla dividida
La experiencia predeterminada de ventanas múltiples es el modo de pantalla dividida, donde la interfaz de usuario del sistema se divide por la mitad del dispositivo en vertical u horizontal. Los usuarios pueden cambiar el tamaño de la ventana arrastrando la línea divisoria de lado a lado o de arriba a abajo, según la orientación del dispositivo.
Después de habilitar la pantalla dividida, los fabricantes de dispositivos pueden optar por habilitar la forma libre o PIP.
Android 8.0 y versiones posteriores mejoran la pantalla dividida al comprimir el iniciador cuando el usuario toca Inicio . Para obtener detalles de implementación, consulte Interacciones en pantalla dividida .
Forma libre
Después de habilitar el modo de ventanas múltiples con el indicador config_supportsMultiWindow
, los fabricantes de dispositivos pueden permitir ventanas de forma libre. Este modo es más útil en dispositivos más grandes, como tabletas.
Para admitir el modo de forma libre, habilite la función del sistema PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT
en /android/frameworks/base/core/java/android/content/pm/PackageManager.java
y configure config_freeformWindowManagement
en true
en config.xml .
<bool name="config_freeformWindowManagement">true</bool>
Imagen en imagen
Después de habilitar el modo de ventanas múltiples con el indicador config_supportsMultiWindow
, los fabricantes de dispositivos pueden admitir imagen en imagen , lo que permite a los usuarios ver videos mientras exploran otras actividades. Si bien esta función está dirigida a dispositivos Android Television, otros tipos de dispositivos pueden admitirla.
Para admitir PIP, habilite la función del sistema PackageManager#FEATURE_PICTURE_IN_PICTURE
en /android/frameworks/base/core/java/android/content/pm/PackageManager.java
.
Para obtener más detalles sobre la implementación de PIP para dispositivos con Android 8.0 y versiones posteriores, consulte la página Imagen en imagen .
Interfaz de usuario del sistema
Admite todas las UI del sistema estándar de acuerdo con la documentación para desarrolladores de ventanas múltiples .
Aplicaciones
Para admitir el modo de ventanas múltiples para aplicaciones precargadas, consulte la documentación para desarrolladores de Android .
Validación
Para validar su implementación de ventanas múltiples, ejecute las pruebas CTS relacionadas y siga las instrucciones de prueba para ventanas múltiples .
Para Android 7.0, las pruebas se encuentran en /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts
. En Android 8.0 y superiores, las pruebas se encuentran en /platform/cts/tests/framework/base/activitymanager/src/android/server/am
.