Suporte para múltiplas janelas

No Android 7.0 e superior, os dispositivos podem exibir vários aplicativos simultaneamente usando várias janelas. O Android oferece suporte a três configurações de múltiplas janelas:

  • A tela dividida é a implementação padrão de múltiplas janelas, que fornece dois painéis de atividades onde os usuários podem colocar aplicativos.
  • O Freeform permite que os usuários redimensionem dinamicamente os painéis de atividades e tenham mais de dois aplicativos visíveis na tela.
  • Picture-in-picture (PIP) permite que dispositivos Android reproduzam conteúdo de vídeo em uma pequena janela enquanto o usuário interage com outros aplicativos.

Implementação

O suporte para múltiplas janelas está ativado por padrão no Android 7.0 e superior. Para desativá-lo, defina o sinalizador config_supportsMultiWindow como false no arquivo config.xml do seu dispositivo.

A janela múltipla está desativada por padrão em todos os dispositivos com pouca RAM (dispositivos que declaram ActivityManager.isLowRam() ). Dispositivos com pouca RAM ignoram o valor do sinalizador config_supportsMultiWindow .

Tela dividida

A experiência padrão de múltiplas janelas é o modo de tela dividida, onde a IU do sistema é dividida no meio do dispositivo em retrato ou paisagem. Os usuários podem redimensionar a janela arrastando a linha divisória de um lado para o outro ou de cima para baixo, dependendo da orientação do dispositivo.

Depois de ativar a tela dividida, os fabricantes de dispositivos podem optar por ativar o formato livre ou PIP.

O Android 8.0 e superior melhora a tela dividida, compactando o inicializador quando o usuário toca em Home . Para obter detalhes de implementação, consulte Interações em tela dividida .

Forma livre

Depois de ativar o modo de múltiplas janelas com o sinalizador config_supportsMultiWindow , os fabricantes de dispositivos podem permitir janelas de formato livre. Este modo é mais útil em dispositivos maiores, como tablets.

Para oferecer suporte ao modo de formato livre, ative o recurso de sistema PackageManager#FEATURE_FREEFORM_WINDOW_MANAGEMENT em /android/frameworks/base/core/java/android/content/pm/PackageManager.java e defina config_freeformWindowManagement como true em config.xml .

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

Imagem em imagem

Depois de ativar o modo multijanela com o sinalizador config_supportsMultiWindow , os fabricantes de dispositivos podem oferecer suporte a picture-in-picture , que permite aos usuários assistir a vídeos enquanto navegam em outras atividades. Embora esse recurso seja direcionado a dispositivos Android Television, outros tipos de dispositivos podem oferecer suporte a esse recurso.

Para oferecer suporte ao PIP, ative o recurso do sistema PackageManager#FEATURE_PICTURE_IN_PICTURE em /android/frameworks/base/core/java/android/content/pm/PackageManager.java .

Para obter mais detalhes de implementação de PIP para dispositivos com Android 8.0 e superior, consulte a página Picture-in-picture .

IU do sistema

Suporta todas as UIs padrão do sistema de acordo com a documentação do desenvolvedor de múltiplas janelas .

Aplicativos

Para oferecer suporte ao modo de múltiplas janelas para aplicativos pré-carregados, consulte a documentação do desenvolvedor Android .

Validação

Para validar sua implementação de múltiplas janelas, execute os testes CTS relacionados e siga as instruções de teste para múltiplas janelas .

Para Android 7.0, os testes estão em /platform/cts/hostsidetests/services/activitymanager/src/android/server/cts . No Android 8.0 e superior, os testes estão em /platform/cts/tests/framework/base/activitymanager/src/android/server/am .