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
A versão mais recente disponível da DHU é a 2.0. 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, instale a 1.1.
Instalar a DHU versão 2.0
Siga estas etapas para instalar a DHU 2.0 na sua máquina de desenvolvimento:
- 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.
- Compile e instale seu aplicativo no dispositivo.
- Instale o Android Auto no dispositivo. Se o Android Auto já estiver instalado, verifique se você está usando a versão mais recente.
- Abra o Android Studio e configure-o para usar o canal Beta. Se for solicitada a atualização para uma versão mais recente do Android Studio, ignore o aviso.
Abra o SDK Manager, navegue até a guia SDK Tools (Ferramentas do SDK) e faça o download da versão 2.0 do pacote Android Auto Desktop Head Unit Emulator.
A DHU vai 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.Em sistemas Linux ou macOS, execute o comando abaixo 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, vai 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, siga estas etapas para instalar a DHU 1.1 na sua máquina de desenvolvimento:
- 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.
- Compile e instale seu aplicativo no dispositivo.
- Instale o Android Auto no dispositivo. Se o Android Auto já estiver instalado, verifique se você está usando a versão mais recente.
- Abra o Android Studio e verifique se ele está usando o Canal estável.
Abra o SDK Manager, navegue até a guia SDK Tools (Ferramentas do SDK) e faça o download da versão 1.1 do pacote Android Auto Desktop Head Unit Emulator.
A DHU vai 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.Em sistemas Linux ou macOS, execute o comando abaixo 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, vai 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 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 do dispositivo 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:
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.
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.
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.
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.
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).
Figura 1. Menu de contexto com opções do desenvolvedor.
Figura 2. Notificação de que o servidor da unidade principal está em execução.
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.
Conecte o dispositivo móvel à máquina de desenvolvimento via USB.
Verifique se o dispositivo móvel está com a tela desbloqueada. Caso contrário, não será possível iniciar a DHU.
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
Inicie a DHU executando o comando
desktop-head-unit.exe
(no Windows) ou./desktop-head-unit
(no Mac ou Linux) no diretórioSDK_LOCATION/extras/google/auto/
.cd SDK_LOCATION/extras/google/auto
desktop-head-unit.exe # Windows
./desktop-head-unit # macOS or Linux
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.
O conjunto completo de opções de linha de comando com suporte da DHU varia conforme o uso da versão 2.0 ou 1.1.
Versão 2.0
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 |
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 opcionais). 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)
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 chave. |
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 é 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 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 é 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 oferece suporte para 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 oferece suporte para 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 |
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:
- 480p (800x480 - padrão)
- 720p (1280x720)
- 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 ,):
|
evconnectors |
|
Strings | Zero ou mais de (separados por ,):
fueltypes contiver electric .
|
Guia do usuário da DHU (1.1)
Os comandos da DHU permitem testar o app com os recursos do Android Auto, por exemplo, 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 oferece suporte a 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 maneiras abaixo:
-
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 oferece suporte ao 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ê está 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:
- Feche a DHU.
- Siga a etapa 5 descrita em Executar a DHU para interromper e reiniciar o servidor da unidade principal.
- Inicie a DHU novamente.
- 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.
- Reinicie a DHU.
Testar seu app para Android Automotive OS
Use o Android Emulator para testar como o 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:
No Android Studio, selecione Run > Edit Configurations.
Selecione seu módulo automotivo na lista de módulos do seu app.
Em Launch Options > Launch, selecione Nothing.
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:
- No Android Studio, selecione Tools > SDK Manager.
- Clique na guia SDK Update Sites.
- Clique em Add
.
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
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:
- No Android Studio, selecione Tools > SDK Manager.
- Clique na guia SDK Platforms.
- Clique em Show Package Details.
- Em Android 9.0 (Pie), selecione Automotive Intel x86 Atom System Image.
Clique em Apply e, em seguida, clique em OK.
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:
- No Android Studio, selecione Tools > AVD Manager.
- Clique em Create Virtual Device.
- Na caixa de diálogo Select Hardware, selecione Automotive, escolha um dispositivo e clique em Next.
- Selecione uma imagem do sistema segmentada para o Automotive, por exemplo, Android 9.0 (Automotive), e clique em Next.
- Crie um nome para seu AVD, selecione outras opções que quiser personalizar e clique em Finish.
- Na barra de ferramentas da janela, selecione seu AVD do Android Automotive OS como destino de implantação.
- Clique em 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
- 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.
- No app Android Auto, toque no menu de navegação e em Configurações.
- Role até a seção Sobre, na parte de baixo, e toque em Versão para exibir todas as informações de versão e permissões.
- 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.
- Toque em Ok.
- Toque nos três pontos no canto superior direito da tela para abrir o menu flutuante e depois toque em Configurações do desenvolvedor.
- Toque em Modo de aplicativo e selecione Desenvolvedor.
O app retorna à lista de configurações do desenvolvedor.
- Role para baixo até ver Fontes desconhecidas e toque na caixa de seleção.
- Reinicie o Android Auto.
Etapa 2. Ativar a depuração USB no smartphone
- Em Configurações > Sobre o telefone, toque em Número da build sete vezes para ativar as Opções do desenvolvedor.
- Volte para Configurações > Opções do desenvolvedor, ative a Depuração USB.
Etapa 3. Instale seu app no smartphone e teste-o
- 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 o computador de desenvolvimento possa detectar o dispositivo quando ele estiver conectado por USB. Depois que o dispositivo estiver configurado e conectado por USB, navegue até o diretório
platform-tools/
do SDK e instale o.apk
no dispositivo executando o comando abaixo: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 o 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 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 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 qualquerActivity
ser aberta. - O
MediaBrowserService
é executado quando nenhumaActivity
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 (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.