Visão geral do Android Automotive OS

Interface de usuário do Android Automotive OS
Figura 1: Android Automotive OS

O Android Automotive OS é uma versão do Android otimizada para uso no carro que se estende à plataforma principal do Android. Os carros com o Google integrado usam o Android Automotive OS e vêm com apps e serviços do Google, incluindo o Google Play, o Google Assistente e o Google Maps.

Saiba mais sobre o hardware do Android Automotive OS

Para saber mais sobre as especificações mínimas de hardware para dispositivos do SO Android Automotive, consulte a seção Requisitos automotivos do Documento de definição de compatibilidade do Android (CDD, na sigla em inglês) para as versões do Android com suporte do app.

Corte da tela

Assim como em outros formatos do Android, os recortes de tela são compatíveis com dispositivos Android Automotive OS com telas não retangulares. No entanto, o tamanho e a forma dos recortes encontrados em carros podem ser bastante diferentes dos encontrados em outros formatos. Consulte Trabalhar com cortes e encartes de janela para receber orientações detalhadas.

Áudio

Os dispositivos Android Automotive OS geralmente têm volume fixo. Para saber mais sobre como isso pode afetar seu app, consulte Trabalhar com dispositivos de volume fixo.

Entender o software do Android Automotive OS

Embora o Android Automotive OS seja baseado no mesmo sistema operacional principal usado por outros formatos, há alguns recursos adicionais exclusivos que podem afetar a forma como os apps são desenvolvidos e usados.

IU do sistema

Há algumas diferenças na forma como esses elementos da interface do sistema funcionam em carros que você precisa conhecer.

Diferente de outros formatos, não é necessário que os dispositivos Android Automotive OS tenham uma affordance de hardware ou software. Quando não forem executadas no modo de compatibilidade, as atividades implementadas pelo app precisam incluir affordances de interface para permitir a navegação no app e atender à diretriz de qualidade AN-1.

Layout da barra do sistema

Assim como em outros formatos, o Android Automotive OS inclui barras do sistema, como barras de status e de navegação. Em carros, essas barras podem ser dimensionadas e posicionadas de maneira diferente de outros formatos. Por exemplo, as barras de navegação podem ser posicionadas à esquerda, à direita ou na parte de baixo da tela. Mesmo que haja uma barra de status na parte de cima e uma barra de navegação na parte de baixo, como é o caso da maioria dos smartphones e tablets, o tamanho desses elementos provavelmente será muito maior em carros.

Além disso, embora os cortes de tela em dispositivos móveis geralmente estejam contidos nos limites das barras do sistema, isso não acontece em carros.

Consulte Trabalhar com cortes e encartes de janela para receber orientações detalhadas.

Modo imersivo

O Android Automotive OS permite que os OEMs controlem se os apps podem ou não mostrar ou ocultar as barras de sistema para entrar e sair do modo imersivo. Ao impedir que os apps ocultem as barras de sistema, os OEMs podem garantir que os controles do veículo, como os de clima, fiquem sempre acessíveis na tela.

Restrições à experiência do usuário

As restrições de experiência do usuário (UX) são o recurso integrado ao Android Automotive OS para lidar com considerações de distração do motorista. As restrições de UX são responsáveis por impedir automaticamente o uso de apps que não foram otimizados para uso ao dirigir.

A atividade de bloqueio de atividade sendo mostrada em um app não marcado como
    otimizado para distração.
Figura 2: um app sendo bloqueado por restrições de UX

O conjunto exato de regras que determinam como e quando as restrições de UX estão ativas é determinado pelos fabricantes de veículos. Essas regras podem variar de acordo com a região. Por exemplo, o mesmo veículo vendido na Europa pode ter regras diferentes dos vendidos nos Estados Unidos.

As regras de restrição de UX também podem variar de acordo com a tela em um veículo. Por exemplo, é possível que uma tela central na linha de visão do motorista seja restringida enquanto o veículo está em movimento, enquanto uma tela do passageiro permanece sem restrições.

Se o app precisar se adaptar a restrições de UX, faça referência a elas diretamente. Não tente fazer engenharia reversa da implementação. Por exemplo, se você presumir que as restrições de UX estão ativas quando a marcha não estiver em "Estacionamento", poderá restringir desnecessariamente um app em execução em uma tela do passageiro.

Otimização contra distrações

Por padrão, as atividades não podem ser executadas enquanto as restrições de UX estão ativas para limitar as distrações do motorista. Para indicar ao sistema que uma atividade precisa continuar em execução enquanto o veículo está em movimento, o elemento <meta-data> a seguir pode ser adicionado ao elemento <activity> correspondente.

<activity ...>
  <meta-data android:name="distractionOptimized" android:value="true">
</activity>

Ao desenvolver apps para o Android Automotive OS, esses metadados só precisam estar presentes no manifesto quando declarar o elemento de manifesto <activity> para a CarAppActivity de um app criado usando a biblioteca Car App. Nenhuma outra atividade pode ser marcada como otimizada para distração. Se uma for, o app será rejeitado quando enviado à Google Play Store.

Acessibilidade

O suporte à acessibilidade para o Android Automotive OS não é tão amplo quanto em outros formatos. O TalkBack, o Acesso com interruptor e o Acesso por voz não estão disponíveis em dispositivos com o Android Automotive OS.

As preferências de legenda têm suporte em dispositivos Android Automotive OS. Consulte Adotar as configurações de legenda do sistema para conferir detalhes sobre a integração.

Seleção de rede

O Android Automotive OS oferece suporte à seleção de rede por aplicativo (PANS, na sigla em inglês), que permite que os OEMs roteiem o tráfego de rede móvel para diferentes redes de acordo com cada aplicativo.

A maioria dos apps usa apenas a rede padrão atribuída a eles e só pode se beneficiar desse recurso. Por exemplo, o OEM pode pagar pelo tráfego de rede do seu app, mesmo que o usuário não tenha um plano de dados. Se o app (ou uma das dependências dele) depender de redes diferentes da padrão, ele não poderá se beneficiar das preferências definidas pelo OEM. Consulte Ler o estado da rede para mais orientações sobre como usar redes diferentes da padrão.

Recursos do sistema

É possível detectar se um determinado recurso está disponível usando PackageManager::hasSystemFeature e ajustar o comportamento do app de acordo.

Recursos de hardware

Assim como em outros formatos não móveis, os recursos de hardware disponíveis em carros podem ser diferentes dos encontrados em dispositivos móveis.

Orientação da tela

Assim como as TVs, os carros são dispositivos de orientação fixa. Diferente das TVs, eles têm orientações retrato e paisagem. Para garantir que os apps criados para o Android Automotive OS possam ser distribuídos para todos os veículos, eles não podem ter requisitos de recursos explícitos ou implícitos para os recursos android.hardware.screen.landscape ou android.hardware.screen.portrait.

Local da rede

Muitos dispositivos do Android Automotive OS não implementam a pilha de telefonia usada para fornecer a localização de rede e, portanto, não informam o recurso do sistema android.hardware.location.network. Embora a localização da rede possa não estar disponível, o acesso à localização aproximada ainda é aceito. Consulte Localização aproximada no Android Automotive OS.

Recursos de software

Alguns recursos de software que são comumente encontrados em outros formatos podem não ter suporte em dispositivos Android Automotive OS. Por exemplo, os seguintes recursos não estão disponíveis em muitos veículos com o Android Automotive OS:

Perguntas frequentes

Quais veículos têm o Google integrado?

Consulte o site Carros com o Google integrado para conferir uma lista de OEMs que têm modelos com o Google integrado. As especificações de hardware e outros detalhes do dispositivo podem ser encontrados usando o catálogo de dispositivos do Play Console.