Compatibilidad con Multiventana

En Android 7.0 y versiones posteriores, los dispositivos pueden mostrar varias apps simultáneamente con el modo multiventana. Android admite tres configuraciones de modo multiventana:

  • La pantalla dividida es la implementación predeterminada de la función multiventana, que proporciona dos paneles de actividad en los que los usuarios pueden colocar apps.
  • De forma libre, permite a los usuarios cambiar el tamaño de los paneles de actividad de forma dinámica y tener más de dos apps visibles en la pantalla.
  • La pantalla en pantalla (PIP) permite que los dispositivos Android reproduzcan contenido de video en una ventana pequeña mientras el usuario interactúa con otras apps.

Implementación

La compatibilidad con el modo multiventana está habilitada de forma predeterminada en Android 7.0 y versiones posteriores. Para inhabilitarlo, configura la marca config_supportsMultiWindow como false en el archivo config.xml de tu dispositivo.

La función Multiventana está inhabilitada de forma predeterminada en todos los dispositivos con poca RAM (dispositivos que declaran ActivityManager.isLowRam()). Los dispositivos con poca RAM ignoran el valor de la marca config_supportsMultiWindow.

Pantalla dividida

La experiencia predeterminada del modo multiventana es el modo de pantalla dividida, en el que la IU del sistema se divide en la mitad del dispositivo en orientación vertical u horizontal. Para cambiar el tamaño de la ventana, los usuarios pueden arrastrar la línea divisoria de un lado a otro o de arriba abajo, según la orientación del dispositivo.

Después de habilitar la pantalla dividida, los fabricantes de dispositivos pueden habilitar el formato libre o la PIP.

Android 8.0 y versiones posteriores mejoran la pantalla dividida comprimiendo el selector cuando el usuario presiona Inicio. Para obtener detalles sobre la implementación, consulta Interacciones con pantalla dividida.

Formato libre

Después de habilitar el modo multiventana con la marca config_supportsMultiWindow, los fabricantes de dispositivos pueden permitir ventanas de formato libre. Este modo es más útil en dispositivos más grandes, como las tablets.

Para admitir el modo de formato libre, habilita la función del sistema PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT en /android/frameworks/base/core/java/android/content/pm/PackageManager.java y establece config_freeformWindowManagement en true en config.xml..

    <bool name="config_freeformWindowManagement">true</bool>
    

Pantalla en pantalla

Después de habilitar el modo multiventana con la marca config_supportsMultiWindow, los fabricantes de dispositivos pueden admitir la pantalla en pantalla, que permite a los usuarios mirar videos mientras navegan por otras actividades. Si bien esta función está segmentada para dispositivos Android Television, es posible que otros tipos de dispositivos también la admitan.

Para admitir PIP, habilita 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 en dispositivos con Android 8.0 y versiones posteriores,consulta la página Pantalla en pantalla.

IU del sistema

Admite todas las IU del sistema estándar según la documentación para desarrolladores de modo multiventana.

Apps

Para admitir el modo multiventana en apps precargadas, consulta la documentación para desarrolladores de Android.

Validación

Para validar tu implementación del modo multiventana, ejecuta las pruebas de CTS relacionadas y sigue las instrucciones de prueba para el modo multiventana.

Para Android 7.0, las pruebas están en /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts. En Android 8.0 y versiones posteriores, las pruebas están en /platform/cts/tests/framework/base/activitymanager/src/android/server/am.