Testar apps Android para carros

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 para o 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 seu app para Android Auto conectando seu smartphone a ele por meio do encaminhamento do adb.

Para relatar bugs ou solicitar recursos relacionados à DHU, use este rastreador de problemas.

Instalar a DHU

A versão mais recente disponível da DHU é a 2.0 rc2. Essa versão inclui recursos que não estão disponíveis na anterior (1.1) e é a versão recomendada para instalação e uso. Caso você tenha problemas com a versão 2.0 rc2, instale a 1.1.

Instalar a DHU versão 2.0 rc2

Siga estas etapas para instalar a DHU 2.0 rc2 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 Ativar opções do desenvolvedor no dispositivo.
  2. Compile e instale seu aplicativo 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 Android Studio e mude o Android Studio para usar o canal Beta. Se for solicitada a atualização para uma versão mais recente do Android Studio, ignore isso.
  5. Abra o SDK Manager, navegue até a guia SDK Tools e faça o download da versão 2.0 rc2 do pacote Android Auto Desktop Head Unit Emulator.

    O SDK Manager mostrando a DHU 2.0 rc2.

    A DHU será instalada no diretório SDK_LOCATION/extras/google/auto/. Após a conclusão do download, você poderá mudar o Android Studio de volta para o Canal estável se não quiser usar a versão do Canal Beta de outras ferramentas.

  6. Em sistemas Linux ou macOS, execute o seguinte comando 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 rc2 em um sistema Linux, 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 a DHU versão 1.1

Se você encontrar problemas na versão 2.0 rc2, siga estas etapas para instalar a DHU 1.1 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 Ativar opções do desenvolvedor no dispositivo.
  2. Compile e instale seu aplicativo 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 Android Studio e verifique se ele está usando o Canal estável.
  5. Abra o SDK Manager, navegue até a guia SDK Tools e faça o download da versão 1.1 do pacote Android Auto Desktop Head Unit Emulator.

    A DHU será instalada no diretório SDK_LOCATION/extras/google/auto/. Após a conclusão do download, você poderá mudar o Android Studio de volta para outro canal de atualização se não quiser usar a versão de Canal estável de outras ferramentas.

  6. Em sistemas Linux ou macOS, execute o seguinte comando 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 1.1 em um sistema Linux, precisará instalar algumas outras bibliotecas. Instale as bibliotecas portaudio, libpng, sdl2, e sdl2_ttf. 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 libsdl2-2.0-0 libsdl2-ttf-2.0-0 libportaudio2 libpng12-0

Executar a DHU

Depois de instalar a DHU, teste seus apps para Android Auto conectando o smartphone e a estação de trabalho via USB. Para executar a DHU, conecte o dispositivo móvel a uma máquina de desenvolvimento e configure uma conexão com o servidor da unidade principal pelo Android Debug Bridge (ADB).

Siga estas etapas 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 Config. > Apps e notificações > Ver todos os apps > Android Auto > Avançado > Configurações adicionais 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 inferior, 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 o modo de desenvolvedor 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 superior 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 a seguir para encaminhar as conexões de soquete da porta 5277 da máquina de desenvolvimento 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 a seguir:

./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.

O conjunto completo de opções de linha de comando compatíveis com a DHU varia conforme o uso da versão 2.0 rc2 ou 1.1.

Versão 2.0 rc2
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 opcional). O padrão é a porta 5277.
v, --version Mostre informações da versão.
l, --licenses Mostre licenças de código aberto.
h, --headless Execute no modo headless (sem IU).
?, --help Mostre esta listagem de ajuda.
Versão 1.1
Opção Descrição
i, --input=INPUT Use o modo de entrada especificado, que pode ser touch ou rotary.
-a, --adb=HOSTPORT Use o transporte ADB (host:port ou port opcional). O padrão é a porta 5277.
v, --version Mostre informações da versão.
l, --licenses Mostre licenças de código aberto.
h, --headless Execute no modo headless (sem IU).

Guia do usuário da DHU (2.0 rc2)

Esta seção descreve os recursos compatíveis com a versão 2.0 rc2 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 chave.

Toque e touchpad

Quando o toque ou o touchpad estiverem ativados, o clique na janela de exibição (para toque) ou na janela do touchpad (para touchpad) será registrado 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 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 tem compatibilidade com o 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 é compatível com o uso de microfone para entrada de texto por voz ou com 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 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 é compatível com 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 rolamento, 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 transmitir 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 rumo (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 é compatível com 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 é compatível com 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 é compatível com 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 configurações do 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 é compatível com a emulação de um cluster de instrumentos, normalmente localizado atrás do volante, que mostra informações básicas, durante a navegação, sobre a próxima curva (como o nome da próxima via, distância/hora ou uma seta para virar) e sobre uma chamada telefônica em andamento.

Para ativar isso, use a entrada instrumentcluster no arquivo de configuração ou as entradas navcluster ou phonecluster para controlar cada recurso separadamente.

Status de reprodução de mídia

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

Isso pode ser ativado usando a entrada playbackstatus no arquivo de configuração.

Códigos de tecla

A DHU fornece um conjunto de códigos de tecla padrão que simula o conjunto de botões de atalho normalmente disponíveis em diferentes 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 é compatível com um arquivo de configuração .ini para mudar os modos de entrada disponíveis (toque, controle), a taxa de frames, a resolução e o 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 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 é compatível com três resoluções de vídeo:

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

Para oferecer compatibilidade com 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 os 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.

Guia do usuário da DHU (1.1)

Os comandos da DHU permitem testar seu app com os recursos do Android Auto, como usar a entrada de texto por voz ou alternar entre os modos de exibição noturno e diurno. É possível emitir comandos para a DHU na janela do terminal em que você iniciou a DHU. Você também pode emitir comandos ao selecionar a janela DHU e usar atalhos de teclado. Os comandos e atalhos de teclas da DHU para todos os controles estão listados na seção Comandos e atalhos de teclas da DHU.

Alternar entre os modos diurno e noturno

O Android Auto é compatível com esquemas de cores diferentes para dia e noite. Teste seu app no modo diurno e noturno. Você pode alternar entre os dois modos de uma das seguintes maneiras:

  • Execute o comando daynight no terminal em que você iniciou a DHU.
  • Selecione a janela DHU e pressione a tecla N.

Teste de microfone

A DHU é compatível com o uso de microfone para entrada de voz. Você também pode instruir a DHU a tratar uma faixa de voz pré-gravada como entrada, como se a DHU tivesse ouvido a faixa pelo microfone.

Para usar um arquivo de som pré-gravado como entrada, insira o seguinte comando:

mic play <sound_file_path>/<sound_file>.wav

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>/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?
Comandos e teclas de atalho da DHU

A DHU é compatível com os comandos a seguir.

Tabela 1. Comandos e teclas de atalho

Categoria Comando Subcomando Argumentos Atalhos do teclado Descrição
Sistema help [comando] Mostra o conjunto completo de comandos. A especificação do nome de um comando (por exemplo, help day) faz com que o sistema mostre ajuda para esse comando.
quit Alt+q Sai da unidade principal.
sleep [segundos] Coloca em suspensão por um segundo. A especificação de um argumento (por exemplo, sleep 30) faz com que o sistema fique suspenso pelo número especificado de segundos. Esse comando é útil se você estiver escrevendo scripts para a DHU. Você pode executar um script usando o redirecionamento de E/S na linha de comando: ./desktop-head-unit < script.txt carrega comandos do arquivo script.txt.
screenshot filename.png Salva uma captura de tela em filename.png.
Microfone mic begin m Ativa o microfone (equivalente a pressionar o botão do microfone no volante) e aguarda a entrada do microfone do computador.
play filename.wav Faz com que a DHU trate filename.wav como entrada de voz, como se esse som fosse redirecionado pelo microfone. Você não ouve o arquivo de som sendo reproduzido, mas sim a resposta do Android Auto.
repeat Repete o último comando mic play, como se você tivesse chamado mic play novamente com o mesmo parâmetro de arquivo de som.
Entrada dpad Para cima
, para baixo
, para esquerda
, para direita
Teclas de seta Simula a movimentação do controle giratório.
tecla para a esquerda
tecla para a direita
Shift + Teclas de setas Simula o pressionamento dos botões laterais disponíveis em alguns controladores rotativos.
click Enter Simula o pressionamento do controle giratório.
back Backspace Simula o pressionamento do botão Voltar, disponível abaixo de alguns controles giratórios.
girar para a esquerda
girar para a direita
1
2
Simula a rotação do controle giratório para a esquerda (sentido anti-horário) ou direita (sentido horário).
deslizar para a esquerda
deslizar para a direita
Shift+1
Shift+2
Simula uma rotação rápida do controle giratório para a esquerda (sentido anti-horário) ou direita (sentido horário).
tap x y Simula um evento de toque nas coordenadas especificadas. Por exemplo, tap 50 100
Dia/Noite day Shift+N Ativa o modo diurno (alto brilho, colorido).
night Control+N Ativa o modo noturno (baixo brilho, alto contraste).
daynight n Alterna entre o modo dia/noite atual.

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 Android Automotive OS

Use o Android Emulator para testar como seu app otimizado para motoristas é executado em uma tela de veículo com o 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 &quot;Run/Debug&quot;.

  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 por meio do 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 do SDK Platform com imagem genérica do sistema selecionada.

Criar um AVD de carro e executar o emulador

Siga as etapas a seguir 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, como 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.

Testar seu app para telas de smartphone

Siga as etapas abaixo para carregar seu app para um smartphone e testá-lo.

Etapa 1. No app Android Auto, ative o modo de desenvolvedor e fontes desconhecidas

  1. Instale o app Android Auto, disponível no Google Play, no smartphone. Se o Android Auto já estiver instalado, verifique se você está usando a versão mais recente.
  2. No app Android Auto, toque no menu de navegação e em Configurações.
  3. Role até a seção Sobre, na parte inferior, e toque em Versão para exibir todas as informações de versão e permissões.
  4. 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.

  5. Toque em Ok.
  6. Toque nos três pontos no canto superior direito da tela para abrir o menu flutuante e depois toque em Configurações do desenvolvedor.
  7. Toque em Modo de aplicativo e selecione Desenvolvedor.

    O app retorna à lista de configurações do desenvolvedor.

  8. Role para baixo até ver Fontes desconhecidas e toque na caixa de seleção.
  9. Reinicie o Android Auto.

Etapa 2. Ative a depuração USB no seu smartphone

  1. Em Configurações > Sobre o telefone, toque em Número da build sete vezes para ativar as Opções do desenvolvedor.
  2. Volte para Configurações > Opções do desenvolvedor, ative a Depuração USB.

Etapa 3. Instale seu app no smartphone e teste-o

  1. Conecte o smartphone à sua máquina via USB para poder instalar apps diretamente nele à medida que os desenvolve. Use o comando adb devices para garantir que seu computador de desenvolvimento possa detectar seu dispositivo quando ele estiver conectado via USB.
  2. Depois que seu dispositivo estiver configurado e conectado via USB, navegue até o diretório platform-tools/ do SDK e instale o .apk no dispositivo executando o seguinte comando:

    adb -d install path/to/your/app.apk
    

    Agora, você pode testar seu app e verificar se tudo funciona.

Requisitos extras de teste para apps de música

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

Testar cenários de inicialização do MediaBrowseService

Para ajudar a manter os motoristas e passageiros seguros, os usuários têm restrições adicionais sobre como eles podem interagir com os aplicativos 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 suas 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 etapas, tente 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 permite testar as complexidades da reprodução de mídia no Android e ajuda a verificar a implementação da sua sessão de mídia. Para começar a usar essa ferramenta, consulte Como usar o app de teste do controle de mídia.