Para implementar uma experiência do usuário consistente e de alta qualidade e evitar problemas que levam a falhas no conjunto de testes de compatibilidade (CTS), implemente os princípios principais do WindowManager (WM) descritos aqui. Esses princípios ajudam a garantir a conformidade com as diretrizes de qualidade de apps para carros. Esses princípios se aplicam a:
Versões do Android que usam uma arquitetura de várias janelas, que começou no Android 14 e continuou no Android 15 com a interface escalonável.
Implementações personalizadas e da interface escalonável do Android
Ao aplicar os princípios, você evita proativamente a maioria dos problemas de conformidade do CTS e de testes funcionais.
Terminologia
- invariante
- Uma condição lógica que permanece verdadeira durante a execução de um app que leva à integridade estrutural. Uma invariante atua como uma regra de limite.
- atividade especial
- Também conhecida como atividade de interface automática ou atividade de interface do sistema, essa atividade crítica do app tem uma área dedicada na tela que está sempre visível ou visível na maior parte do tempo, mesmo quando o usuário pressiona Início,como uma navegação principal ou um app de cluster.
- atividade padrão
- Qualquer atividade de app padrão que não seja essencial para a interface principal do sistema, como um app de mídia de terceiros iniciado na grade de apps.
Princípios do WM
Para maximizar a conformidade com o CTS, aplique esses princípios nas implementações do WM.
Usar uma configuração estável na inicialização da atividade
Inicie cada nova atividade padrão com uma única transição do WM que define a posição, o tamanho e a densidade finais. Não acione uma segunda transição que mude a configuração da janela da tarefa subjacente (como tamanho ou densidade) imediatamente após a primeira, porque isso causa uma mudança de configuração imediatamente após a criação da atividade.
Mover atividades padrão para o estado parado
Quando o usuário navega até a tarefa ou cena inicial, é necessário mover todas as atividades padrão em execução para o estado parado para manter o ciclo de vida previsível do app Android exigido pelos testes do CTS. Para mais informações sobre as expectativas do ciclo de vida do app em ambientes automotivos, consulte Impedir o uso enquanto as restrições de experiência do usuário estiverem ativas.
Impedir a obstrução do conteúdo da atividade padrão
Não desenhe decorações personalizadas ou elementos de interface que obstruam o conteúdo de uma atividade padrão. Se você desenhar sobreposições personalizadas (como uma barra de controle de temperatura personalizada), informe as dimensões ao sistema com inserções SystemOverlay. No Android 15 e versões mais recentes, use DecorPanel na interface escalonável. Os apps
dependem dessas inserções para organizar o conteúdo com segurança.
Ocultar sobreposições na solicitação do modo imersivo
Quando um app solicita o modo imersivo, é necessário ocultar todos os elementos de interface personalizados temporários e remover as inserções SystemOverlay. Obstruções persistentes interferem nas expectativas de pixels de um app. Para detalhes sobre como os apps solicitam
e processam o modo imersivo, consulte
Barras de sistema, modo imersivo e renderização de ponta a ponta.
Aplicar cantos arredondados apenas no nível da tela
Aplique cantos arredondados apenas no nível da tela usando as configurações de recursos adequadas em frameworks/base. Não aplique cantos arredondados arbitrários à superfície de uma atividade padrão.
Isso interfere nos testes de elementos de interface. Como uma medida temporária, é possível especificar o mesmo raio de canto arredondado para a tela que você aplica à superfície da atividade padrão.
Manter o tamanho do app na solicitação do modo imersivo
Quando um app solicita a entrada no modo imersivo, não redimensione a janela do app. Isso aciona uma mudança de configuração disruptiva. Em vez disso, para maximizar o app, ofereça um botão de tela cheia controlado pelo usuário.