O Android Automotive OS é uma versão do Android otimizada para uso no carro que se estende à plataforma Android principal. Os carros com o Google integrado executam o Android Automotive OS e vêm com apps e serviços do Google, incluindo o Google Play, o Gemini, 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 Android Automotive OS, consulte a seção Requisitos automotivos do Documento de definição de compatibilidade (CDD) do Android para as versões do Android com suporte do seu app.
Corte da tela
Assim como em outros formatos do Android, os cortes da tela são compatíveis com dispositivos Android Automotive OS com telas não retangulares. No entanto, o tamanho e o formato dos cortes encontrados em carros podem ser bem diferentes dos encontrados em outros formatos. Consulte Trabalhar com cortes e encartes de janela para orientações detalhadas.
Áudio
Os dispositivos Android Automotive OS geralmente são de 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 dele que podem afetar a maneira como os apps podem ser desenvolvidos e usados.
Interface do sistema
Há algumas diferenças no funcionamento desses elementos da interface do sistema em carros que você precisa conhecer.
Navegação
Ao contrário de outros formatos, não há requisito para que os dispositivos Android Automotive OS tenham uma capacidade de retorno de hardware ou software. Quando não são executadas no
modo de compatibilidade, as atividades implementadas pelo app precisam incluir recursos de interface
para ativar a navegação no app e atender à AN-1 diretriz de qualidade.
Layout da barra de sistema
Assim como em outros formatos, o Android Automotive OS inclui barras de 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 da tela em dispositivos móveis geralmente estejam contidos nos limites das barras de sistema, esse não é o caso em carros.
Consulte Trabalhar com cortes e encartes de janela para 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 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 de experiência do usuário
As restrições de experiência do usuário (UX) são a capacidade integrada 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 durante a direção.
Os fabricantes de veículos determinam as regras de como e quando as restrições de UX estão ativas. Essas regras podem variar de acordo com a região. Por exemplo, o mesmo veículo vendido na Europa pode ter regras diferentes das vendidas 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, uma tela central na linha de visão do motorista pode ser restrita enquanto o veículo estiver em movimento, enquanto uma tela do passageiro permanece irrestrita.
Se o app precisar se adaptar às restrições de UX, consulte-as diretamente. Não faça engenharia reversa da implementação delas. Por exemplo, se você presumir que as restrições de UX estão ativas quando a marcha não está no modo de estacionamento, poderá restringir desnecessariamente um app em execução em uma tela do passageiro.
Otimização de distração
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 sendo executada enquanto o veículo está em movimento, o seguinte <meta-data>
elemento 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, esse metadados
só precisa estar presente no manifesto ao declarar o <activity> elemento de manifesto
para o CarAppActivity de um app criado usando a biblioteca Car App.
Nenhuma outra atividade precisa ser marcada como otimizada contra distrações. Se uma for, seu 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 Voice Access não estão disponíveis em dispositivos Android Automotive OS.
As preferências de legendas são compatíveis com dispositivos Android Automotive OS. Consulte Adotar as configurações de legenda do sistema para detalhes da integração.
Seleção de rede
O Android Automotive OS oferece suporte à seleção de rede por aplicativo (PANS), que permite que os OEMs encaminhem o tráfego de rede móvel para diferentes redes em uma base de aplicativo por aplicativo.
A maioria dos apps usa apenas a rede padrão atribuída a eles e só se beneficia desse recurso. Por exemplo, o OEM pode pagar pelo tráfego de rede do seu app, mesmo que o usuário não tenha o próprio plano de dados. Se o app (ou uma das dependências dele) depender de redes diferentes da padrão, ele poderá não 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
Você pode 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 daqueles encontrados em dispositivos móveis.
Orientação da tela
Assim como as TVs, os carros são dispositivos de orientação fixa. Ao contrário das TVs, eles vêm nas orientações retrato e paisagem. Para garantir que os apps criados para o Android Automotive OS possam ser distribuídos a todos os veículos, eles precisam garantir que não tenham 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 Android Automotive OS não implementam a pilha de telefonia usada
para fornecer a localização da rede e, portanto, não informam o
android.hardware.location.network recurso do sistema. Embora a localização da rede possa não estar disponível, o acesso à localização aproximada ainda é compatível. 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 ser compatíveis com dispositivos Android Automotive OS. Por exemplo, os seguintes recursos não estão disponíveis em muitos veículos Android Automotive OS:
Atender aos requisitos de recursos do Google Play
Para serem distribuídos a carros pelo Google Play, os apps criados para o Android Automotive
OS precisam incluir um <uses-feature> no
AndroidManifest.xml para o android.hardware.type.automotive
recurso:
<manifest ...>
...
<!--
See Choose a track for Android Automotive OS
for details on how to choose which value to use for the android:required attribute.
-->
<uses-feature
android:name="android.hardware.type.automotive"
android:required="[true|false]">
...
</manifest>
Além disso, se o app tiver alguma declaração de recurso explícita com
android:required="true" ou requisito de recurso implícito para qualquer um dos
seguintes recursos, será necessário atualizar ou remover esses recursos para que os requisitos de recursos do app não impeçam a distribuição dele a veículos compatíveis:
android.hardware.wifiandroid.hardware.screen.portraitandroid.hardware.screen.landscapeandroid.hardware.camera
Para recursos declarados explicitamente com android:required="true", você pode fazer
uma das seguintes ações:
- Excluir o elemento
<uses-feature>se o recurso não for implicitamente necessário. - Declarar explicitamente o recurso com
android:required="false".
Para recursos exigidos implicitamente, você pode fazer uma das seguintes ações:
- Declarar explicitamente o recurso com
android:required="false". - Remover ou atualizar os valores de manifesto que introduzem o requisito implícito no recurso.
A mudança das declarações de recursos no manifesto não afeta o funcionamento real do app. Portanto, verifique se ele ainda funciona corretamente sem esses recursos.
Perguntas frequentes
Quais veículos vêm com 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 obtidos usando o Catálogo de dispositivos do Play Console.