Testar apps Android para carros

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

O teste de apps para carros garante que os usuários não tenham resultados inesperados ou uma experiência ruim. A forma de teste do app varia de acordo com a execução dele no Android Auto ou no Android Automotive OS.

Para começar, consulte uma das seguintes seções:

Testar seu app para Android Auto

A unidade principal de área de trabalho (DHU, na sigla em inglês) permite que sua máquina de desenvolvimento emule uma unidade principal do Android Auto para que você possa executar e testar apps Android Auto. A DHU é executada em sistemas Windows, macOS e Linux.

Esta seção ensina a instalar e a executar a DHU na máquina de desenvolvimento para testar seus apps. Depois de instalar a DHU, teste seus apps para Android Auto conectando o dispositivo móvel a um dos mecanismos de conexão com suporte descritos em Executar a DHU.

Para relatar bugs ou solicitar recursos relacionados à DHU, use este Issue Tracker.

Instalar a DHU

Siga as etapas a seguir para instalar a DHU na sua máquina de desenvolvimento:

  1. Ative o modo de desenvolvedor em um dispositivo móvel com Android 6.0 (API de nível 23) ou mais recente, conforme descrito em Configurar opções do desenvolvedor no dispositivo.
  2. Compile e instale seu app no dispositivo.
  3. Instale o Android Auto no dispositivo. Se o Android Auto já estiver instalado, verifique se você está usando a versão mais recente.
  4. Abra o SDK Manager, navegue até a guia SDK Tools (Ferramentas do SDK) e faça o download do pacote Android Auto Desktop Head Unit Emulator.

    O SDK Manager mostrando a DHU 2.0.

    A DHU vai ser instalada no diretório SDK_LOCATION/extras/google/auto/.

  5. Em sistemas Linux ou macOS, execute o comando abaixo nesse diretório para garantir que o binário da DHU seja executável:

    chmod +x ./desktop-head-unit
    
Etapas extras somente para Linux

Se você estiver executando a versão 2.0 em um sistema Linux, vai precisar instalar algumas outras bibliotecas. O binário da DHU depende do GLIBC versão 2.32 ou mais recente. Verifique a versão do GLIBC do seu sistema executando este comando:

ldd --version

Se ela for anterior à 2.32, será necessário atualizar o GLIBC para a versão 2.32 ou mais recente ou fazer upgrade do SO para uma versão compatível com o GLIBC 2.32 ou mais recente.

Também é necessário instalar as bibliotecas libc++1 e libc++abi1. O procedimento de instalação varia de acordo com sua distribuição do Linux. Por exemplo, nas distribuições do Linux derivadas do Debian, instale as bibliotecas com este comando:

sudo apt-get install libc++1 libc++abi1

Instalar versões de pré-lançamento da DHU {#:dhu-pre-release}

Para ter acesso às versões de pré-lançamento da DHU, use uma versão de pré-lançamento do Android Studio ou mude o canal de atualização da instalação do Android Studio para o canal Beta.

Executar a DHU

Depois de instalar a DHU, teste seus apps para Android Auto conectando o dispositivo móvel e a estação de trabalho via USB. Para executar a DHU, conecte o dispositivo móvel a uma máquina de desenvolvimento usando o Modo de acessório (recomendado para a DHU 2.0) ou o Encapsulamento do adb.

Como se conectar usando o modo de acessórios (somente DHU 2.0)

O Android Auto oferece suporte à DHU com o protocolo Android Open Accessory (AOA), usando este comando:

./desktop-head-unit --usb

Por padrão, a DHU verifica a lista de dispositivos USB disponíveis e tenta se conectar ao primeiro compatível. Para segmentar um dispositivo específico, inclua o ID dele como parte do comando --usb, desta maneira:

./desktop-head-unit --usb=[DEVICE_ID]

Como se conectar usando o encapsulamento ADB

Esse método exige a configuração de uma conexão com o servidor da unidade principal do Android Auto no Android Debug Bridge (adb). Siga as etapas abaixo para configurar o encapsulamento e executar a DHU:

  1. Siga um destes procedimentos para abrir as configurações do Android Auto, dependendo da versão do Android em execução no dispositivo:

    • Android 10 ou versão mais recente: no dispositivo, toque em Configurações > Apps e notificações > Ver todos os apps > Android Auto > Avançado > Configurações avançadas no app.
    • No Android 9 ou versão anterior: no app Android Auto, toque no Menu e em Configurações.
  2. Role até a seção Sobre, na parte de baixo da página, e toque em Versão para exibir todas as informações de versão e permissões.

  3. Toque na seção Informações de versão e permissões dez vezes.

    A caixa de diálogo Ativar as configurações de desenvolvimento será exibida.

  4. Toque em Ok.

    Agora, o modo de desenvolvedor está ativado e você pode acessar as opções do desenvolvedor no menu flutuante. Você só precisa ativar esse modo na primeira vez que executar o app Android Auto.

  5. Se o servidor da unidade principal ainda não estiver em execução, toque nos três pontos no canto superior direito da tela para abrir o menu flutuante e selecione Iniciar servidor da unidade principal (veja a figura 1).

    No dispositivo, um serviço em primeiro plano aparece na área de notificação que indica que o servidor está em execução (veja a figura 2).

    Menu de contexto com opções do desenvolvedor

    Figura 1. Menu de contexto com opções do desenvolvedor.

    Notificação de que o servidor da unidade principal está em execução

    Figura 2. Notificação de que o servidor da unidade principal está em execução.

  6. No app Android Auto, toque em Carros conectados anteriormente na parte de cima das Configurações e verifique se a opção Adicionar novos veículos ao Android Auto está ativada.

  7. Conecte o dispositivo móvel à máquina de desenvolvimento via USB.

  8. Verifique se o dispositivo móvel está com a tela desbloqueada. Caso contrário, não será possível iniciar a DHU.

  9. Na máquina de desenvolvimento, execute o comando adb abaixo para encaminhar as conexões de soquete da porta 5277 da máquina para a porta de mesmo número do dispositivo Android. Essa configuração permite que a DHU se conecte ao servidor da unidade principal em execução no smartphone por um soquete TCP.

    adb forward tcp:5277 tcp:5277
    
  10. Inicie a DHU executando o comando desktop-head-unit.exe (no Windows) ou ./desktop-head-unit (no Mac ou Linux) no diretório SDK_LOCATION/extras/google/auto/.

    cd SDK_LOCATION/extras/google/auto
    desktop-head-unit.exe # Windows
    ./desktop-head-unit # macOS or Linux
    

    A DHU é iniciada na máquina de desenvolvimento

  11. Se esta for a primeira vez que você está conectando o dispositivo móvel à DHU, verifique a tela do dispositivo móvel para aceitar os Termos de Serviço e ajustar as configurações de permissão conforme necessário.

Depois de iniciar a DHU, use os comandos do console da DHU para executar e testar o app.

Opções de linha de comando

Por padrão, o servidor da unidade principal se conecta pela porta 5277. Para modificar o host ou a porta (por exemplo, para encaminhar por SSH), use a sinalização --adb=<[localhost:]port>, como no exemplo a seguir:

./desktop-head-unit --adb=5999

Por padrão, a DHU emula uma unidade principal compatível com o Android Auto com uma interface do usuário touchscreen. Simule toques do usuário clicando na DHU com o mouse. Para emular unidades principais que usam um controle giratório para entrada, use a sinalização -i controller, como no exemplo abaixo:

./desktop-head-unit -i controller

Quando a DHU está no modo de controle giratório, use atalhos de teclado para simular operações do controle. Consulte o Controle giratório para ver mais detalhes. Como a DHU ignora os cliques do mouse no modo de controle giratório, é necessário usar o Android Auto com as operações simuladas desse controle.

Opção Descrição
-c, --config=FILE Usa o arquivo de configuração .ini especificado. Consulte a seção Configurar a DHU para saber mais detalhes.
-i, --input=INPUT Use o modo de entrada especificado, que pode ser touch, rotary ou hybrid.
-a, --adb=HOSTPORT Use o transporte adb (host:port ou port opcionais). O padrão é a porta 5277.
-a, --usb=DEVICE_ID Use o transporte USB (AOA) (DEVICE_ID opcional).
-v, --version Mostra informações da versão.
-l, --licenses Mostra licenças de código aberto.
-h, --headless Execute no modo headless (sem IU).
-t, --always_show_window_on_top Mostrar janelas da DHU acima de outras janelas (desativado por padrão)
-?, --help Mostra esta listagem de ajuda.

Guia do usuário da DHU

Esta seção descreve os recursos com suporte da versão 2.0 da DHU e como usá-los.

Os comandos são inseridos na janela de terminal em que você iniciou a DHU. Vários comandos podem ser executados na mesma linha, separando-os com ;.

Sistema

Comando Tecla Descrição
help [command] Mostra o conjunto completo de comandos. Se um nome de comando for especificado (por exemplo, help day), mostrará a ajuda para esse comando.
quit
exit
Alt+Q Sai da unidade principal.
sleep [seconds] Coloca em suspensão por um segundo. Se um atraso for especificado, suspenderá por essa quantidade de seconds. Isso pode ser usado para criar um script da unidade principal (./desktop-head-unit < script.txt), por exemplo, em um ambiente de CI.
screenshot filename.png Salva uma captura de tela em filename.png..
licenses Exibe licenças das bibliotecas usadas na DHU
keycode keycode Envia keycode, um dos nomes listados na seção Códigos de tecla.

Toque e touchpad

Quando o toque ou o touchpad estiverem ativados, os cliques na janela de exibição (para toque) ou na janela do touchpad (para touchpad) vão ser registrados como eventos de toque.

Para simular vários toques, clique com o botão direito do mouse no local do primeiro dedo e clique no botão direito e mantenha-o pressionado para o segundo dedo. O ponto central dos dois dedos vai permanecer fixo e mover o mouse permitirá girar esse ponto ao redor do centro ou fazer gesto de pinça nele para dentro e para fora (ou ambos).

Para o touchpad, clique no botão esquerdo e mantenha-o pressionado para rolar entre diferentes elementos da IU na tela. Clique com o botão direito para selecionar o elemento em foco no momento.

Comando Tecla Descrição
tap x y Simula um evento de toque nas coordenadas especificadas

Controle giratório

A DHU oferece suporte ao controle giratório. Quando ele está ativado, as seguintes ações são aceitas:

  • Para cima, para baixo, para a esquerda e para a direita no botão direcional
  • Girar no sentido horário e anti-horário
  • Executar um movimento de rotação com o pulso (cinco etapas de uma vez)
  • Clicar para baixo e voltar ao controle

Os comandos e as teclas de atalho estão listados abaixo.

Um botão de rolagem no mouse enviará comandos dpad rotate, e o clique do botão do meio do mouse (geralmente a roda de rolagem) enviará comandos dpad click.

A maioria dos carros tem touchscreens. Alguns carros têm apenas o controle giratório, enquanto outros têm um híbrido de controle e toque. Os carros também podem ter um touchpad para ser usado na movimentação de mapas e na entrada de texto. Lembre-se dessas configurações variadas ao simular diferentes unidades principais de veículos.

Comando Tecla Descrição
dpad {up|down|left|right} Teclas de seta Movimento do controle giratório.
dpad {ur|dl|ul|dr} Movimento do controle giratório.
dpad soft {left|right} Shift + Teclas de setas Botões laterais disponíveis em alguns controles giratórios.
dpad click Enter Pressionar o controle giratório.
dpad back Backspace Botão "Voltar" disponível abaixo de alguns controles giratórios.
dpad rotate left 1 Movimento à esquerda do controle giratório (sentido anti-horário).
dpad rotate right 2 Movimento à direita do controle giratório (sentido horário).
dpad flick left Shift+1 Giro rápido no sentido anti-horário do controle giratório.
dpad flick right Shift+2 Giro rápido no sentido horário do controle giratório.
dpad 0-9*#+ Teclado numérico

Microfone

A DHU permite o uso de microfone para entrada de texto por voz ou a reprodução de uma faixa de voz pré-gravada. Para sua conveniência, oferecemos os arquivos de som a seguir para comandos de voz comuns. Estes arquivos de som estão instalados no diretório SDK_LOCATION/extras/google/auto/voice/.

Nome do arquivo Texto
navhome.wav Ir para casa.
navwork.wav Ir para o trabalho.
navsoh.wav Ir até a Sydney Opera House.
navgoogle.wav Ir até 1600 Amphitheatre Parkway, Califórnia, EUA.
exitnav.wav Sair da navegação.
howlong.wav "Quanto tempo falta para chegar?"
showtraffic.wav Mostrar trânsito.
showalternateroute.wav Mostrar rotas alternativas.
pause.wav Pausar música
nextturn.wav Quando é a próxima curva?

Para executar um arquivo .wav individual no prompt da DHU:

mic play /path/to/filename.wav
Comando Tecla Descrição
mic begin M Ativa o microfone (equivalente a clicar no botão de engrenagem) e aguarda a entrada do microfone do computador.
mic play filename.wav Ativa o microfone e reproduz o registro WAV especificado. Observação: você não vai ouvir o arquivo WAV sendo reproduzido, mas ouvirá a resposta do Android Auto.
mic repeat Repete a última gravação usada com mic play.
mic reject {on|off} Ativa ou desativa a rejeição de solicitações de microfone. Quando ativado, todas as solicitações de microfone são rejeitadas.

Sensores

A DHU permite a simulação de mudanças nos dados do sensor do veículo com os comandos a seguir. Para simular os dados do sensor e enviá-los ao Android Auto, os sensores correspondentes precisam ser ativados com o arquivo de configuração .ini ao iniciar a DHU.

Comando Descrição
fuel [percentage] Defina o nível de combustível para a porcentagem especificada ou não transmita um valor para desativar o nível de combustível.
range [km] Defina o intervalo para os quilômetros especificados ou não transmita um valor para desativar os dados do intervalo.
lowfuel [{on|off}] Defina o sensor de alerta de combustível baixo ou não transmita um valor para desativar o sensor.
accel [x] [y] [z] Defina o acelerômetro com os valores especificados de x, y e z (m/s^2) ou não transmita parâmetros para desativar a definição dos dados do acelerômetro. Transmita o NAN para pular parâmetros opcionais, se necessário.
compass bearing [pitch] [roll] Defina a bússola para os valores de ângulo, inclinação e rolagem especificados (graus). Transmita o NAN para pular parâmetros opcionais, se necessário.
gyro [x] [y] [z] Defina o giroscópio para a velocidade de rotação especificada de x, y e z (rad/s) ou não transmita parâmetros para desativar os dados do giroscópio. Transmita o NAN para pular parâmetros opcionais, se necessário.
location lat long [accuracy] [altitude] [speed] [bearing] Defina o local com a latitude e a longitude especificadas, além da precisão opcional (m), altitude (m), velocidade (m/s) e ângulo (graus). Transmita o NAN para pular parâmetros opcionais, se necessário.
odometer km [current_trip_km] Defina o odômetro para os quilômetros especificados junto com um valor opcional de km atual da viagem.
speed [speed] Defina a velocidade do veículo para o valor especificado (m/s) ou não transmita um valor para desativar o sensor.
tollcard {insert|remove} Indique se um cartão de pedágio foi inserido ou removido.

Modo diurno/noturno

A DHU permite a simulação da mudança entre os modos diurno e noturno com os comandos e as teclas de atalho a seguir.

Comando Tecla Descrição
day Shift+N Ativa o modo diurno (alto brilho, colorido).
night Ctrl+N Ativa o modo noturno (baixo brilho, alto contraste).
daynight
nightday
N Alterna o modo diurno ou noturno atual.

Gerenciamento de foco

A DHU permite a simulação da presença ou ausência de seleção na unidade principal do Android Auto com os comandos a seguir.

Comando Descrição
focus video {on|off|toggle} Ativa ou desativa a presença de seleção de vídeo na unidade principal do Android Auto. A desativação da seleção de vídeo simula a unidade principal passando para o modo nativo.
focus audio {on|off|toggle} Ativa ou desativa a presença de seleção de áudio na unidade principal do Android Auto. A desativação da seleção de áudio simula a unidade principal reproduzindo a própria fonte de áudio.
focus nav {on|off|toggle} Ativa ou desativa a presença de foco da navegação na unidade principal do Android Auto. A desativação do foco da navegação simula a unidade principal executando o próprio sistema de navegação.

Restrições/status de direção

A DHU permite a simulação de algumas restrições quando o veículo está em movimento, como a desativação do teclado e a proibição de configurar o smartphone.

Comando Tecla Descrição
restrict none U Desativa todas as restrições.
restrict all Shift+U Ativa todas as restrições (por exemplo, para simular a direção).

Cluster de instrumentos

A DHU permite a emulação de um cluster de instrumentos, normalmente localizado atrás do volante, que mostra, durante a navegação, informações básicas sobre a próxima curva (como o nome da próxima via, distância/hora ou uma seta para virar) e sobre uma ligação em andamento.

Janela de cluster de instrumentos da DHU mostrando informações de estado de
  navegação e chamada.

Isso pode ser ativado usando a entrada instrumentcluster na seção [general] do arquivo de configuração ou pelas entradas navcluster ou phonecluster para controlar cada recurso separadamente.

[general]
...
instrumentcluster = true

Exibição do cluster

Alguns veículos têm telas que exibem informações visuais avançadas, como blocos de mapas. A partir da versão 2.1 da DHU (disponível atualmente pelo canal de atualização do Android Studio Beta ), é possível emular essa tela na máquina de desenvolvimento.

Isso pode ser feito usando um arquivo de configuração com uma seção [display] de cluster. As seções [display] oferecem suporte às mesmas opções de configuração de vídeo que a tela principal configurada na seção [general] do arquivo.

Figura 3. A tela principal ao executar a DHU com uma exibição de cluster secundária.
Figura 4. A tela do cluster ao executar a DHU com uma exibição de cluster secundária.
...

# The display name following the colon can be whatever you like.
[display:cluster]
# Setting the displaytype as cluster is what lets the DHU know how to handle it.
displaytype = cluster
resolution = 800x480
dpi = 160
...

Essa configuração pode ser adicionada diretamente a um arquivo .ini existente ou reutilizada em um arquivo separado e transmitindo vários arquivos de configuração ao iniciar a DHU. Ao usar vários arquivos de configuração, as definições posteriores de um determinado valor substituem os anteriores.

# Launch your landscape configuration with your cluster display configuration
./desktop-head-unit -c landscape.ini -c cluster.ini

# Launch the portait configuration with the same cluster display configuration
./desktop-head-unit -c portrait.ini -c cluster.ini

Status de reprodução de mídia

A DHU permite a exibição de informações extras para mostrar o status de reprodução de mídia, por exemplo, qual faixa está sendo tocada.

Janela de status da reprodução de mídia da DHU mostrando informações de reprodução

Isso pode ser ativado usando a entrada playbackstatus na seção [general].

[general]
...
playbackstatus = true

Códigos de tecla

A DHU oferece um conjunto de códigos de tecla padrão que simula o conjunto de botões de atalho normalmente disponíveis nos veículos. Por exemplo, o código de tecla home pode ser acionado no prompt da DHU da seguinte maneira:

keycode home
Código de tecla Descrição
home Vá para a tela inicial.
back Voltar.
call
endcall
Fazer ou encerrar uma chamada.
search Acionar pesquisa.
media_play_pause
media_play
media_pause
Reproduzir ou pausar uma mídia.
media_next
media_previous
Ir para a faixa de mídia seguinte ou anterior.
media Acessar o app de música padrão.
navigation Acessar o app de navegação padrão.
tel Acessar o app de telefone padrão.

Configurar a DHU

A DHU oferece suporte a um arquivo de configuração .ini para mudar os modos de entrada disponíveis (toque, controle), a taxa de frames, a resolução e DPI que a unidade principal solicita do smartphone.

O local padrão do arquivo de configuração é ~/.android/headunit.ini. Se você quiser mudar a configuração da unidade principal no sistema, poderá modificar esse arquivo.

Também é possível especificar um arquivo de configuração a ser carregado usando a sinalização -c.

./desktop-head-unit -c /path/to/config.ini
Exemplo de configuração
[general]
touch = true
touchpad = false
controller = false
instrumentcluster = false
resolution = 800x480
dpi = 160
framerate = 30
fueltypes = unleaded,electric,hydrogen
evconnectors = supercharger

Exemplos de arquivos de configuração podem ser encontrados na pasta SDK_LOCATION/extras/google/auto/config/ para demonstrar diferentes configurações de unidade principal que podem ser testadas. Para casos de uso mais avançados, consulte as configurações compatíveis abaixo.

Configuração de entrada
Nome Padrão Tipo Descrição
inputmode default String Define o modo de entrada. As opções touch, rotary, hybrid ativam e desativam o suporte a touchscreen e controle giratório e definem códigos de teclas padrão conforme adequado, enquanto default define as opções touch e controller abaixo.
controller false Booleano Ativa a entrada de controle giratório. Ignorado a menos que inputmode seja default.
touch true Booleano Ativa a tela touchscreen. Ignorado a menos que inputmode seja default.
touchpad false Booleano Ativar o touchpad.
touchpadnavigation false Booleano Permite que o touchpad seja usado para a navegação na IU.
touchpadtapasselect false Booleano Quando seu valor é true, um toque no touchpad é um evento de seleção.
touchpaduiabsolute false Booleano Quando touchpadnavigation é true, isso define se os toques precisam ser tratados como absolutos ou como gestos.
Configuração de vídeo

O Android Auto oferece suporte a três resoluções de vídeo:

  1. 480p (800x480 - padrão)
  2. 720p (1280x720)
  3. 1080p (1920x1080)

Para oferecer suporte a proporções diferentes além das indicadas acima, a unidade principal pode especificar uma margem para o formato com efeitos letterbox/pillarbox, conforme necessário. Por exemplo, se você quiser uma tela de 1000x600, defina a resolução como 720p (1280x720), uma largura de margem de 280 e altura de margem de 120. Isso resulta na adição de uma margem de 140 pixels nas bordas esquerda e direita e de 60 pixels na partes superior e inferior.

Exemplo de configuração para emular uma tela típica de 6 polegadas (750x450):

[general]
...
resolution = 800x480
marginwidth = 50
marginheight = 30

E uma tela muito ampla:

[general]
...
resolution = 1280x720
marginwidth = 0
marginheight = 220
Nome Padrão Tipo Descrição
resolution 800x480 Strings Uma destas: 800x480, 1280x720, 1920x1080,
dpi 160 Número inteiro
normalizedpi false Booleano Quando true, reduz o tamanho da janela da DHU para representar valores maiores de DPI. Quando false, valores de DPI maiores resultam em janelas maiores (que não imitam exibições reais, mas facilitam a inspeção do conteúdo visual).
realdpi 160 Número inteiro Usado na configuração de vídeo.
framerate 30 Número inteiro Usado na configuração de vídeo.
marginheight 0 Número inteiro Usado na configuração de vídeo.
marginwidth 0 Número inteiro Usado na configuração de vídeo.
margins 0,0,0,0 String Usado na configuração de vídeo, modifica marginwidth e marginheight, se presente. O formato é parte superior, parte inferior, esquerda e direita.
contentinsets 0,0,0,0 String Usado na configuração de vídeo. O formato é parte superior, parte inferior, esquerda e direita.
stablecontentinsets 0,0,0,0 String Usado na configuração de vídeo. O padrão é o valor de contentinsets. O formato é parte superior, parte inferior, esquerda e direita.
cropmargins false Booleano Se margins, marginheight ou marginwidth for especificado, um valor true para essa configuração removerá essas margens do vídeo exibido. Isso reflete melhor o que o usuário final vê.
pixelaspectratio 1.0 Ponto flutuante Usado na configuração de vídeo.
Configuração dos sensores

Para simular dados do sensor e enviá-los ao Android Auto, os sensores correspondentes precisam ser ativados usando as opções abaixo. Se um sensor estiver desativado, todos os dados enviados a ele usando os comandos da DHU serão ignorados.

Nome Padrão Tipo Descrição
accelerometer false Booleano Ativa os dados do sensor do acelerômetro.
compass false Booleano Ativa os dados do sensor da bússola.
driving_status false Booleano Ativa os dados do sensor do status de direção.
fuel false Booleano Ativa os dados do sensor de combustível.
gyroscope false Booleano Ativa os dados do sensor do giroscópio.
location false Booleano Ativa os dados do sensor de localização do veículo.
night_mode false Booleano Ativa os dados do sensor de modo noturno.
odometer false Booleano Ativa os dados do sensor do odômetro.
speed false Booleano Ativa os dados do sensor de velocidade.
toll_card false Booleano Ativa os dados do sensor de cartão de pedágio.
Diversos
Nome Padrão Tipo Descrição
instrumentcluster false Booleano Ativa o cluster de instrumentos. Adiciona uma janela à IU para exibir o status da navegação e do telefone.
navcluster false Booleano Ativa o cluster de instrumentos. Adiciona uma janela à IU para exibir o status da navegação.
phonecluster false Booleano Ativa o cluster de instrumentos. Adiciona uma janela à IU para exibir o status do telefone.
playbackstatus false Booleano Ativa o status de reprodução. Adiciona uma janela à IU para exibir mensagens de status de reprodução.
driverposition left String Uma destas: left, center ou right
windowleft Número inteiro Define a posição à esquerda da janela principal.
windowtop Número inteiro Define a posição superior da janela principal.
fueltypes unleaded Strings Um ou mais de (separados por ,):
  • unleaded
  • leaded
  • diesel-1
  • diesel-2
  • biodiesel
  • e85
  • lpg
  • cng
  • lng
  • hydrogen
  • electric
  • other
  • unknown
evconnectors Strings Zero ou mais de (separados por ,):
  • j1772
  • mennekes
  • chademo
  • combo-1
  • combo-2
  • roadster
  • hpwc
  • gbt
  • supercharger
  • other
  • unknown
Só deve ser definido se fueltypes contiver electric.

Solução de problemas

DHU mostrando uma tela em branco quando conectada pela primeira vez

Esse é um problema conhecido em que estamos trabalhando. Você pode solucioná-lo fazendo o seguinte:

  1. Feche a DHU.
  2. Siga a etapa 5 descrita em Executar a DHU para interromper e reiniciar o servidor da unidade principal.
  3. Inicie a DHU novamente.
  4. Podem haver outros pedidos de concessão de permissões na tela do smartphone. Conclua essas etapas, e a DHU poderá ser desligada mais uma vez.
  5. Reinicie a DHU.

Testar seu app para o Android Automotive OS

Use o Android Emulator para testar como seus apps são executados no Android Automotive OS. Esta seção descreve como configurar um Dispositivo virtual Android (AVD) que pode ser usado para testar seu app.

Editar as configurações de execução para apps de música

Apps de música em apps do SO do Android Automotive são diferentes de outros apps Android. O SO do Android Automotive interage com o app de música usando intents explícitas e enviando chamadas para o serviço de navegador de mídia.

Para testar o app, verifique se não há nenhuma atividade de inicialização no manifesto e evite que o módulo automotivo seja iniciado com uma atividade. Siga estas etapas:

  1. No Android Studio, selecione Run > Edit Configurations.

    Caixa de diálogo de configurações "Run/Debug".

  2. Selecione seu módulo automotivo na lista de módulos do seu app.

  3. Em Launch Options > Launch, selecione Nothing.

  4. Clique em Apply e depois clique em OK.

Adicionar imagens do sistema

Antes de criar AVDs que correspondam ao hardware específico do fabricante, é necessário adicionar imagens do sistema para esses dispositivos usando o SDK Manager do Android Studio. Então, ao criar um AVD, você pode fazer o download dessas imagens para usar com ele.

Adicionar imagens do sistema de fabricantes de carros

Atualmente, é possível adicionar imagens de sistema específicas de OEM para o Polestar 2 e o Volvo. Siga estas etapas para adicionar uma imagem do sistema:

  1. No Android Studio, selecione Tools > SDK Manager.
  2. Clique na guia SDK Update Sites.
  3. Clique em Add Ícone de Add.
  4. Digite o seguinte Nome e URL e clique em OK:

    Nome: Polestar 2 System Image

    URL: https://developer.polestar.com/sdk/polestar2-sys-img.xml

    Nome: Volvo System Image

    URL: https://developer.volvocars.com/sdk/volvo-sys-img.xml

  5. Clique em Apply e, em seguida, clique em OK.

Instalar imagens genéricas do sistema

O Android Studio também inclui uma imagem genérica do sistema para o Android Automotive OS que você também pode usar para testar seu app. Essa imagem genérica do sistema inclui o Google Assistente para que você possa testar a integração do seu app.

Siga estas etapas para instalar a imagem genérica do sistema:

  1. No Android Studio, selecione Tools > SDK Manager.
  2. Clique na guia SDK Platforms.
  3. Clique em Show Package Details.
  4. Em Android 9.0 (Pie), selecione Automotive Intel x86 Atom System Image.
  5. Clique em Apply e, em seguida, clique em OK.

    Lista de componentes da plataforma do SDK com imagem genérica do sistema
        selecionada.

Criar um AVD de carro e executar o emulador

Siga as etapas abaixo para criar um Dispositivo virtual Android (AVD, na sigla em inglês) que represente um veículo com Android Automotive OS e use esse AVD para executar o emulador:

  1. No Android Studio, selecione Tools > AVD Manager.
  2. Clique em Create Virtual Device.
  3. Na caixa de diálogo Select Hardware, selecione Automotive, escolha um dispositivo e clique em Next.
  4. Selecione uma imagem do sistema segmentada para o Automotive, por exemplo, Android 9.0 (Automotive), e clique em Next.
  5. Crie um nome para seu AVD, selecione outras opções que quiser personalizar e clique em Finish.
  6. Na barra de ferramentas da janela, selecione seu AVD do Android Automotive OS como destino de implantação.
  7. Clique em Run Ícone de Run.

Requisitos extras de teste para apps de música

Se você estiver testando um app de música, também precisará testar os cenários abordados nesta seção, além de testar o app no Android Auto, no Android Automotive OS ou em ambos.

Testar cenários de inicialização do MediaBrowserService

Para ajudar a manter os motoristas e passageiros seguros, os usuários têm outras restrições sobre como eles podem interagir com os apps enquanto dirigem. Por esse motivo, o Android Auto e o Android Automotive Os têm alguns cenários de inicialização MediaBrowserService que seu app precisa processar para que os usuários possam continuar aproveitando seu conteúdo enquanto estiverem na estrada.

Teste o aplicativo para verificar se ele pode lidar com cada um dos seguintes cenários:

  • O MediaBrowserService é executado antes de qualquer Activity ser aberta.
  • O MediaBrowserService é executado quando nenhuma Activity pode ser exibida.
  • O MediaBrowserService é executado quando o usuário não está conectado.

Ao testar essas situações, teste os seguintes métodos:

  • Force o fechamento do app de música e inicie o Android Auto ou o Android Automotive OS.
  • Limpe os dados do app de música e inicie o Android Auto ou o Android Automotive OS.

Além disso, defina uma mensagem de erro adequada quando necessário.

Ferramentas de teste de mídia

O app de teste do controle de mídia (link em inglês) permite testar as complexidades da reprodução de mídia no Android e ajuda a verificar a implementação da sessão de mídia. Para começar a usar essa ferramenta, consulte Como usar o app de teste do controle de mídia.