Suporte a várias janelas

No Android 7.0 e superior, os dispositivos podem exibir vários aplicativos simultaneamente usando várias janelas. O Android é compatível com três configurações de várias janelas:

  • A tela dividida é a implementação padrão de várias 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 a várias janelas é 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.

As janelas múltiplas são desabilitadas 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 várias janelas é o modo de tela dividida, onde a interface do usuário 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 habilitar a tela dividida, os fabricantes de dispositivos podem optar por habilitar a forma livre ou PIP.

O Android 8.0 e superior melhora a tela dividida comprimindo o iniciador quando o usuário toca em Início . Para obter detalhes de implementação, consulte Interações de tela dividida .

Forma livre

Depois de habilitar o modo de várias janelas com o sinalizador config_supportsMultiWindow , os fabricantes de dispositivos podem permitir janelas de forma livre. Este modo é mais útil em dispositivos maiores, como tablets.

Para oferecer suporte ao modo de forma 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 habilitar o modo de várias janelas com o sinalizador config_supportsMultiWindow , os fabricantes de dispositivos podem oferecer suporte ao picture-in-picture , que permite que os usuários assistam ao vídeo 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 a PIP, ative o recurso de 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 que executam o Android 8.0 e superior, consulte a página Picture-in-picture .

IU do sistema

Suporte a todas as UIs do sistema padrão de acordo com a documentação do desenvolvedor de várias janelas .

Aplicativos

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

Validação

Para validar sua implementação de multi-janela, execute os testes CTS relacionados e siga as instruções de teste para multi-janela .

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 .