Notícias sobre produtos
Os dispositivos Android se estendem facilmente para telas conectadas
Leitura de 7 minutos
Temos o prazer de anunciar um marco principal para aproximar a computação móvel e de desktop no Android: o suporte a telas conectadas chegou à disponibilidade geral com o lançamento do Android 16 QPR3!
Como mostrado no Google I/O 2025, as telas conectadas permitem que os usuários conectem dispositivos Android a um monitor externo e acessem instantaneamente um modo janela para computador. Os apps podem ser usados em janelas maximizadas ou de formato livre, e os usuários podem realizar várias tarefas ao mesmo tempo, assim como em um SO para computador.
O Google e a Samsung colaboraram para oferecer uma experiência de modo janela para computador perfeita e eficiente em dispositivos do ecossistema Android com o Android 16 conectados a uma tela externa.
Agora, esse recurso está disponível para todos os usuários em dispositivos compatíveis*. Ele permite conectar smartphones Pixel e Samsung a monitores externos, abrindo novas oportunidades para criar experiências de apps mais envolventes e produtivas que se adaptam a diferentes formatos.
Como funciona?
Quando um smartphone ou dobrável Android compatível é conectado a uma tela externa, uma nova sessão de computador é iniciada na tela conectada.
A experiência na tela conectada é semelhante à de um computador, incluindo uma barra de tarefas que mostra os apps ativos e permite que os usuários fixem apps para acesso rápido. Os usuários podem executar vários apps lado a lado simultaneamente em janelas redimensionáveis na tela conectada.
Smartphone conectado a uma tela externa com uma sessão de computador na tela enquanto o smartphone mantém o próprio estado.
Quando um dispositivo compatível com o Modo Janela para Computador (como um tablet Samsung Galaxy Tab S11) é conectado a uma tela externa, a sessão de computador é estendida para as duas telas, liberando um espaço de trabalho ainda maior. As duas telas funcionam como um sistema contínuo, permitindo que janelas de apps, conteúdo e o cursor se movam livremente entre elas.
Tablet conectado a uma tela externa, estendendo a sessão de computador para as duas telas.
Por que ele é importante?
No lançamento do Android 16 QPR3, finalizamos os comportamentos de janela, as interações da barra de tarefas e a compatibilidade de entrada (mouse e teclado) que definem a experiência de tela conectada. Também incluímos tratamentos de compatibilidade para dimensionar janelas e evitar reinicializações de apps ao trocar de tela.
Se o app for criado com princípios de design adaptável, ele terá automaticamente a aparência de um app para computador, e os usuários se sentirão à vontade. Se o app estiver bloqueado no modo retrato ou presumir uma interface somente por toque, agora é a hora de modernizar.
Em especial, preste atenção a estas práticas recomendadas para ter experiências ideais de apps em telas conectadas:
- Não suponha um objeto
Displayconstante:o objetoDisplayassociado ao contexto do app pode mudar quando uma janela do app é movida para uma tela externa ou se a configuração da tela muda. O app precisa processar eventos de mudança de configuração de maneira adequada e consultar métricas de exibição dinamicamente, em vez de armazená-las em cache. - Considere as mudanças na configuração de densidade:telas externas podem ter densidades de pixel muito diferentes da tela do dispositivo principal. Verifique se os layouts e recursos se adaptam corretamente a essas mudanças para manter a clareza e a usabilidade da interface. Use pixels de densidade independente (dp) para layouts, forneça recursos específicos de densidade e garanta que a interface do usuário seja dimensionada adequadamente.
- Suporte correto a periféricos externos: quando os usuários se conectam a um monitor externo, geralmente criam um ambiente mais parecido com um computador. Isso geralmente envolve o uso de teclados, mouses, trackpads, webcams, microfones e alto-falantes externos. Melhorar o suporte para interações com teclado e mouse.
Criando para o futuro dos computadores com ferramentas modernas
Oferecemos várias ferramentas para ajudar você a criar a experiência para computador. Vamos recapitular as atualizações mais recentes das nossas principais bibliotecas adaptáveis.
Novas classes de tamanho de janela: grande e extragrande
A maior atualização do Jetpack WindowManager 1.5.0 é a adição de duas novas classes de tamanho de janela de largura: grande e extragrande.
As classes de tamanho de janela são nosso conjunto oficial e específico de pontos de interrupção de janela de visualização que ajudam você a projetar e desenvolver layouts adaptáveis. Com a versão 1.5.0, estamos estendendo essa orientação para telas que vão além do tamanho dos tablets típicos.
Confira os novos pontos de interrupção de largura:
- Grande: para larguras entre 1200 dp e 1600 dp
- Extra grande: para larguras ≥1600 dp
As diferentes classes de tamanho de janela com base na largura da tela.
Em superfícies muito grandes, simplesmente aumentar a escala de um layout expandido de tablet nem sempre é a melhor experiência do usuário. Por exemplo, um cliente de e-mail pode mostrar dois painéis (uma caixa de e-mail e uma mensagem) na classe de tamanho de janela "Expandida". Mas em um monitor de mesa extragrande, o cliente de e-mail pode exibir de forma elegante três ou até quatro painéis, talvez uma caixa de entrada, uma lista de mensagens, o conteúdo completo da mensagem e um painel de agenda/tarefas, tudo de uma só vez.
Para incluir as novas classes de tamanho de janela no seu projeto, basta chamar a função do conjunto WindowSizeClass.BREAKPOINTS_V2 em vez de WindowSizeClass.BREAKPOINTS_V1:
val currentWindowMetrics =
WindowMetricsCalculator.getOrCreate()
.computeCurrentWindowMetrics(LocalContext.current)
val sizeClass = WindowSizeClass.BREAKPOINTS_V2
.computeWindowSizeClass(currentWindowMetrics)
Em seguida, aplique o layout correto quando tiver certeza de que o app tem pelo menos esse espaço:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// Window is at least 1200 dp wide.
}
Criar layouts adaptáveis com o Jetpack Navigation 3
A Navegação 3 é a mais recente adição à coleção Jetpack. O Navigation 3, que acaba de lançar a primeira versão estável, é uma biblioteca de navegação eficiente projetada para funcionar com o Compose.
O Navigation 3 também é uma ótima ferramenta para criar layouts adaptáveis, permitindo que vários destinos sejam mostrados ao mesmo tempo e que a troca entre esses layouts seja feita sem problemas.
Esse sistema para gerenciar o fluxo da interface do app é baseado em cenas. Uma cena é um layout que mostra um ou mais destinos ao mesmo tempo. Uma SceneStrategy determina se é possível criar uma cena. Ao encadear instâncias de SceneStrategy, é possível criar e mostrar diferentes cenas para diferentes tamanhos de tela e configurações de dispositivos.
Para layouts canônicos prontos para uso, como detalhes e listas e painel de suporte, use as cenas da biblioteca adaptativa do Compose Material 3 (disponível na versão 1.3 e mais recentes).
Também é fácil criar suas próprias cenas personalizadas modificando as receitas de cena ou começando do zero. Por exemplo, considere uma cena que mostra três painéis lado a lado:
class ThreePaneScene<T : Any>(
override val key: Any,
override val previousEntries: List<NavEntry<T>>,
val firstEntry: NavEntry<T>,
val secondEntry: NavEntry<T>,
val thirdEntry: NavEntry<T>
) : Scene<T> {
override val entries: List<NavEntry<T>> = listOf(firstEntry, secondEntry, thirdEntry)
override val content: @Composable (() -> Unit) = {
Row(modifier = Modifier.fillMaxSize()) {
Column(modifier = Modifier.weight(1f)) {
firstEntry.Content()
}
Column(modifier = Modifier.weight(1f)) {
secondEntry.Content()
}
Column(modifier = Modifier.weight(1f)) {
thirdEntry.Content()
}
}
}
Nesse cenário, você pode definir uma SceneStrategy para mostrar três painéis se a largura da janela for suficiente e as entradas do backstack tiverem declarado que podem ser exibidas em uma cena de três painéis.
class ThreePaneSceneStrategy<T : Any>(val windowSizeClass: WindowSizeClass) : SceneStrategy<T> {
override fun SceneStrategyScope<T>.calculateScene(entries: List<NavEntry<T>>): Scene<T>? {
if (windowSizeClass.isWidthAtLeastBreakpoint(WIDTH_DP_LARGE_LOWER_BOUND)) {
val lastThree = entries.takeLast(3)
if (lastThree.size == 3 && lastThree.all { it.metadata.containsKey(MULTI_PANE_KEY) }) {
val firstEntry = lastThree[0]
val secondEntry = lastThree[1]
val thirdEntry = lastThree[2]
return ThreePaneScene(
key = Triple(firstEntry.contentKey, secondEntry.contentKey, thirdEntry.contentKey),
previousEntries = entries.dropLast(3),
firstEntry = firstEntry,
secondEntry = secondEntry,
thirdEntry = thirdEntry
)
}
}
return null
}
}
Você pode usar sua ThreePaneSceneStrategy com outras estratégias ao criar seu NavDisplay. Por exemplo, também podemos adicionar uma TwoPaneStrategy para mostrar dois painéis lado a lado quando não há espaço suficiente para mostrar três.
val strategy = ThreePaneSceneStrategy() then TwoPaneSceneStrategy()
NavDisplay(...,
sceneStrategy = strategy,
entryProvider = entryProvider {
entry<MyScreen>(metadata = mapOf(MULTI_PANE_KEY to true))) { ... }
... other entries...
}
)
Se não houver espaço suficiente para mostrar três ou dois painéis, as duas estratégias de cena personalizada vão retornar null.Nesse caso, NavDisplay volta a mostrar a última entrada no backstack em um único painel usando SinglePaneScene.
Ao usar cenas e estratégias, você pode adicionar layouts de um, dois e três painéis ao seu app.
Um app adaptável mostrando a navegação em três painéis em telas grandes.
Confira a documentação para saber mais sobre como criar layouts personalizados usando cenas na Navigation 3.
Layouts adaptáveis independentes
Se você precisar de um layout independente, a biblioteca adaptável do Compose Material 3 ajuda a criar interfaces adaptáveis, como layouts de detalhes e listas e painéis de suporte, que se adaptam automaticamente às configurações da janela com base nas classes de tamanho da janela ou nas posturas do dispositivo.
A boa notícia é que a biblioteca já está atualizada com os novos pontos de interrupção. A partir da versão 1.2, as funções de diretiva de estrutura de painel padrão são compatíveis com classes de tamanho de janela de largura grande e extra grande.
Basta declarar no arquivo de build do Gradle que você quer usar os novos pontos de interrupção:
currentWindowAdaptiveInfo(supportLargeAndXLargeWidth = true)
Primeiros passos
Conheça o recurso de tela conectada na versão mais recente do Android. Instale o Android 16 QPR3 em um dispositivo compatível e conecte-o a um monitor externo para começar a testar seu app hoje mesmo.
Confira a documentação atualizada sobre suporte a várias telas e gerenciamento de janelas para saber mais sobre a implementação dessas práticas recomendadas.
Feedback
Sua opinião é fundamental para continuarmos refinando a experiência de tela conectada no computador. Compartilhe suas ideias e informe problemas usando nossos canais oficiais de feedback.
Nosso compromisso é tornar o Android uma plataforma versátil que se adapta às diversas maneiras como os usuários querem interagir com apps e dispositivos. As melhorias no suporte a telas conectadas são mais um passo nessa direção, e achamos que seus usuários vão adorar as experiências para computador que você vai criar.
*Observação:no momento em que este artigo foi escrito, telas conectadas eram compatíveis com as séries Pixel 8, 9 e 10 e com uma ampla variedade de dispositivos Samsung, incluindo S26, Fold7, Flip7 e Tab S11.
Continuar lendo
-
Notícias sobre produtos
Temos uma novidade incrível: a Jetpack WindowManager 1.5.0 já está na versão estável. Esta versão se baseia na forte base de adaptabilidade do WindowManager, facilitando ainda mais a criação de IUs adaptáveis e refinadas que ficam ótimas em todos os tamanhos de tela.
Francesco Romano • Leitura de 3 minutos
-
Notícias sobre produtos
O ecossistema móvel está sempre em evolução, trazendo novas oportunidades e ameaças. Com essas mudanças, o Android e o Google Play continuam comprometidos em garantir que bilhões de usuários possam aproveitar os apps com confiança e que a inovação dos desenvolvedores possa prosperar.
Vijaya Kaza • Leitura de 3 minutos
-
Notícias sobre produtos
O lançamento de abril de 2026 do Jetpack Compose está estável. Esta versão contém a versão 1.11 dos módulos principais do Compose (consulte o mapeamento completo da BoM), ferramentas de depuração de elementos compartilhados, eventos de trackpad e muito mais.
Meghan Mehta • Leitura de 5 minutos
Fique por dentro
Receba os insights mais recentes sobre desenvolvimento Android na sua caixa de entrada semanalmente.