No Android 7.0 e versões mais recentes, os dispositivos podem mostrar vários apps ao mesmo tempo usando o recurso de várias janelas. O Android oferece suporte a três configurações de várias janelas:
- A tela dividida é a implementação padrão de várias janelas, que oferece dois painéis de atividades em que os usuários podem colocar apps.
- O Freeform permite que os usuários redimensionem dinamicamente os painéis de atividades e tenham mais de dois apps visíveis na tela.
- O recurso 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 apps.
Implementação
O suporte a várias janelas é ativado por padrão no Android 7.0 e versões mais recentes.
Para desativar, defina a flag config_supportsMultiWindow
como
false
no arquivo
config.xml do dispositivo.
O recurso de várias janelas está desativado por padrão em todos os dispositivos com pouca RAM (dispositivos que
declaram ActivityManager.isLowRam()
). Dispositivos com pouca RAM
ignoram o valor da flag config_supportsMultiWindow
.
Tela dividida
A experiência padrão de várias janelas é o modo de tela dividida, em que a interface do sistema é dividida no meio do dispositivo em modo 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 ativar o formato livre ou o PIP.
O Android 8.0 e versões mais recentes melhoram a tela dividida compactando a tela de início quando o usuário toca em Início. Para conferir detalhes de implementação, consulte Interações de tela dividida.
Freeform
Depois de ativar o modo de várias janelas com a
flag config_supportsMultiWindow
, os fabricantes de dispositivos podem
permitir o uso de janelas de forma livre. Esse modo é mais útil em dispositivos maiores,
como tablets.
Para oferecer suporte ao modo de formato livre, ative o
recurso do 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>
Picture-in-picture
Depois de ativar o modo de várias janelas com a
flag config_supportsMultiWindow
, os fabricantes de dispositivos podem
oferecer suporte a
picture-in-picture, que permite que os usuários assistam
vídeos enquanto navegam por outras atividades. Embora esse recurso seja direcionado a
dispositivos Android TV, outros tipos de dispositivos podem ser compatíveis com ele.
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 mais detalhes sobre a implementação do PIP em dispositivos com o Android 8.0 e versões mais recentes,consulte a página Picture-in-picture.
IU do sistema
Ofereça suporte a todas as interfaces do sistema padrão de acordo com a documentação para desenvolvedores de várias janelas.
Apps
Para oferecer suporte ao modo de várias janelas para apps pré-carregados, consulte a documentação para desenvolvedores do Android.
Validação
Para validar sua implementação de várias janelas, execute os testes CTS relacionados e siga as instruções de teste para várias janelas.
No Android 7.0, os testes estão em
/platform/cts/hostsidetests/services/activitymanager/src/android/server/cts
.
No Android 8.0 e versões mais recentes, os testes estão em
/platform/cts/tests/framework/base/activitymanager/src/android/server/am
.