Orientação, proporção e capacidade de redimensionamento do app

Os apps Android funcionam em dispositivos de todos os tipos: smartphones, tablets, dobráveis, dispositivos ChromeOS, carros, TVs e até XR. Para se adaptar a esse ambiente variado, o app precisa oferecer suporte a todos os formatos de dispositivos e tamanhos de tela.

O Android 16 (nível 36 da API) permite que os apps se adaptem a diferentes formatos e tamanhos de tela, substituindo as restrições de orientação, proporção e redimensionamento. As substituições se aplicam a dispositivos com largura mínima de 600 dp ou mais, que define o seguinte:

  • Tablets
  • Telas internas de dispositivos dobráveis de tela grande
  • Modo Janela para Computador (em todos os formatos)

Os apps que visam o nível desejado da API 36 podem ser redimensionados e entrar no modo de várias janelas (equivalente a resizeableActivity="true") se a largura mínima da tela for de 600 dp ou mais.

O app é exibido com efeito letterbox em um dispositivo de tela grande desdobrado antes do Android 16, mas fica em tela cheia quando destinado ao Android 16. O app mostra mais notícias em tela cheia do que com efeito letterbox.
Figura 1. O feed de notícias para desenvolvedores, que antes era exibido em formato de caixa de correio em dispositivos de tela grande (à esquerda), agora é exibido em tela cheia quando destinado ao Android 16 (à direita).

O Android 16 aplica um modelo consistente de design de app adaptável que otimiza a experiência do usuário respeitando as preferências de orientação, proporção e tamanho de exibição.

Mudanças

Os seguintes atributos e APIs de manifesto são ignorados para apps destinados ao Android 16 (nível da API 36) em telas grandes:

Atributo ou API Valores ignorados
screenOrientation portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape
resizeableActivity todas
minAspectRatio todas
maxAspectRatio todas
setRequestedOrientation()

getRequestedOrientation()
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape

Exceções

As exceções às mudanças do Android 16 incluem o seguinte:

  • Telas menores que sw600dp (a maioria dos smartphones, dobráveis e telas externas de dispositivos dobráveis de tela grande)

  • Jogos, com base na android:appCategory flag

    Publique seu jogo usando os pacotes de apps Android e a Assinatura de apps do Google Play, permitindo que o Google Play gerencie a flag e ofereça os benefícios dos pacotes de apps automaticamente. Consulte também Visão geral do manifesto do app.

  • Aceitação do comportamento padrão do app nas configurações de proporção

Desativar

Para desativar o comportamento do nível 36 da API, declare a propriedade de manifesto PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY.

Para desativar uma atividade específica, defina a propriedade no elemento <activity>:

<activity ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</activity>

Para desativar o recurso em todo o app, defina a propriedade no elemento <application>:

<application ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</application>

Testes

Para testar se o app é afetado pelas mudanças do Android 16, use os emuladores das séries Pixel Tablet e Pixel Fold no Android Studio e defina targetSdkPreview = "Baklava" no arquivo build.gradle do módulo do app.

Ou use o framework de compatibilidade de apps nos dispositivos de teste ativando a UNIVERSAL_RESIZABLE_BY_DEFAULT flag (consulte Ferramentas do framework de compatibilidade).

Você pode automatizar os testes com o framework de testesEspresso e as APIs de teste do Jetpack Compose.

Guia de implementação

Apps que restringem a orientação do dispositivo, a proporção ou o redimensionamento do app podem ter problemas de exibição no Android 16, como layouts sobrepostos. Para oferecer uma experiência ideal ao usuário em smartphones, dobráveis, tablets, dispositivos ChromeOS e muito mais, crie um app responsivo e adaptável.

Lista de verificação de prontidão

Use a lista de verificação a seguir para garantir que o app esteja pronto para as mudanças do Android 16:

  • Evite componentes de IU esticados:layouts projetados para telas de smartphones padrão no modo retrato podem não acomodar outras proporções. Por exemplo, elementos de IU que preenchem toda a largura da tela podem aparecer esticados na orientação paisagem. Adicione uma largura máxima aos componentes para evitar o alongamento.
  • Ative a rolagem de layouts:se os layouts não rolarem, os usuários talvez não consigam acessar botões ou outros elementos da IU que estão fora da tela na orientação paisagem. Ative a rolagem dos layouts do app para verificar se todo o conteúdo pode ser acessado, independente da altura da tela.
  • Verifique a compatibilidade da câmera no modo retrato e paisagem:as visualizações do visor da câmera que assumem uma proporção e orientação específicas em relação ao sensor da câmera podem resultar em visualizações esticadas ou invertidas em telas não conformes. Verifique se os visores giram corretamente com as mudanças de orientação. Ative os visores para se ajustarem às proporções da IU que são diferentes da proporção do sensor.
  • Preserve o estado durante as mudanças de tamanho da janela:a remoção das restrições de orientação e proporção pode resultar em mudanças frequentes no tamanho da janela do app em resposta à forma como os usuários preferem usar um app, por exemplo, girando, dobrando ou desdobrando um dispositivo ou redimensionando um app no modo de várias janelas ou no modo Janela para Computador. Mudanças de configuração, como mudanças de orientação e redimensionamento de janelas, causam a recriação de atividades (por padrão). Para ajudar a oferecer uma experiência ideal ao usuário, preserve o estado do app para que ele retenha dados (como entrada de formulário) e os usuários possam manter o contexto.
  • Use classes de tamanho de janela:ofereça suporte a diferentes tamanhos de janela e proporções sem personalizações específicas do dispositivo. Suponha que os tamanhos de janela vão mudar com frequência. Use classes de tamanho de janela para caracterizar as dimensões da janela e aplique um layout adaptável adequado.
  • Crie layouts responsivos: nas classes de tamanho de janela, os layouts responsivos se ajustam às mudanças nas dimensões da tela para sempre criar uma apresentação ideal do app.

Para um guia prático sobre como criar layouts adaptáveis no Compose, consulte o codelab Criar apps adaptáveis com o Jetpack Compose. Se você estiver migrando um app que usa visualizações, consulte Estratégia de adoção do Compose.

Cronograma

  • Android 16 (2025) : o suporte a todas as orientações e proporções e ao redimensionamento de apps é a experiência básica para dispositivos de tela grande (largura mínima da tela de 600 dp ou mais) para apps destinados ao nível desejado da API 36. No entanto, os desenvolvedores podem desativar essa opção.
Nível desejado da API Dispositivos aplicáveis Desativação do desenvolvedor permitida
36 (Android 16) Dispositivos de tela grande (largura mínima da tela de 600 dp ou mais) Sim

Os prazos para segmentar níveis específicos da API são específicos da loja de apps. O Google Play vai exigir que os apps sejam destinados ao nível desejado da API 36 a partir de agosto de 2026.

Outros recursos