Visão geral do HMI

O Android Automotive é uma solução de plataforma de infoentretenimento para carros fornecida com o Android Open Source Project (AOSP) Os artigos deste tópico apresentam os principais conceitos e componentes fornecidos pela interface do sistema Android Automotive e pelos principais apps necessários para criar um corpo humano eficaz Sistema de interface de máquina (HMI, na sigla em inglês) para OEMs, desenvolvedores terceirizados e usuários finais.

  • Guia de integração do host do AOSP. O App Host permite que apps de terceiros para carros renderizem componentes de interface do usuário (interface) com estilo de OEM no próprio nome de usuário.
  • Estrutura das configurações do carro. O "Car Settings" oferece uma interface do usuário visual centrada no carro, com distração básica do motorista. e outros pontos de entrada de personalização para OEMs.
  • Guia de integração da biblioteca da interface do carro. A biblioteca Car UI oferece um framework de desenvolvimento de interface para habilitar todos os apps presentes na para alcançar consistência e personalização.
  • Personalizar ícones do sistema da barra de status A barra de status é um componente da interface do sistema Android usado para exibir constantemente informações importantes para os usuários. Saiba como personalizar os ícones de sistema da barra de status.
  • Notificações de alerta. Saiba como personalizar as Notificações de alerta.
  • Telefone. Use este app do sistema Android para implementar uma experiência otimizada contra distrações (DO, na sigla em inglês) para Bluetooth chamadas, navegação de contatos e gerenciamento de chamadas.
  • Mídia. Com apenas algumas configurações e um serviço, os desenvolvedores podem ampliar os apps de mídia existentes. Embora os apps precisem aderir à Modelo de mídia automotiva, os desenvolvedores podem personalizar cores, fontes, ícones e muito mais para o modelo criar uma experiência de marca.
  • Notificações. Saiba como alterar a aparência e as configurações das notificações.

Terminologia

Estes termos são usados no HMI e em artigos relacionados:

Termo Definição
Principais apps O conjunto principal de apps essenciais para a funcionalidade do sistema, incluindo configurações, rádio, AVAC (aquecimento, ventilação e ar-condicionado), mídia, discador e teclado.
Documento de definição de compatibilidade (CDD) Enumera os requisitos que precisam ser atendidos para que os dispositivos sejam compatíveis com a versão mais recente do Android.
Conjunto de teste de compatibilidade (CTS) Pacote de testes de nível comercial sem custo financeiro, disponível para download em Downloads do conjunto de teste de compatibilidade.
Personalização O exercício de modificar uma implementação do AOSP para atender aos requisitos de um OEM. Normalmente, isso envolve o uso de sobreposições de recursos para aplicar alterações estéticas e, ao mesmo tempo, garantindo a conformidade com o CDD, o CTS e todas as diretrizes relevantes de experiência do usuário.
Apps hero Um conjunto dos principais apps essenciais para todos os aspectos do Android, incluindo funcionalidade, atualização, ecossistema de desenvolvedores terceirizados e usuários finais. Os apps hero incluem Notificações, Configurações, Mídia e a Central de Comunicação/Telefone. AOSP correspondente e implementações devem ser de qualidade de produção.
Sobreposições de recursos Para afetar a renderização da interface do usuário, use este mecanismo para substituir cores, alterar dimensões, ativar desenhos e aplicar recursos de layout em tempo de compilação (mais comum) ou durante a execução (sobreposições de recursos no ambiente de execução (RRO, na sigla em inglês).
IU do sistema A interface do usuário fora de um app que pertence ao sistema, como barra de navegação, barra de status, tela de bloqueio e caixa de diálogo de volume.
Tema Coleção de cores e estilos usados para determinar a aparência dos componentes e os apps que herdam o tema.
Experiência do usuário (UX) O campo do design da interface do usuário (IU) e a usabilidade dele.

Personalização

A implementação do AOSP da interface do sistema e de outros apps essenciais do sistema serve como um sistema base para iniciar o processo de desenvolvimento do HMI. O exercício de modificar o AOSP implementação (principalmente pelo uso de sobreposições de recursos) para atender à marca, aos negócios, e os requisitos legais são chamados de personalização.

Embora o sistema geral tenha sido projetado e construído para ser flexível, espera-se que haja componentes diferentes personalizados em diferentes graus:

  • IU do sistema. O OEM pode personalizar ou substituir a implementação do AOSP no do CDD e do CTS e quaisquer outras diretrizes de UX aplicáveis.

  • Apps do sistema que não são principais (também conhecidos como referência). OEMs podem personalizar ou substituir a implementação do AOSP.

  • Apps Hero. Cada app vem com um conjunto de diretrizes detalhadas de personalização. Recomendamos que os OEMs usem a implementação do AOSP e a personalizem no dos limites impostos por essas diretrizes.

Configuração de densidade

Para garantir que os elementos da interface do usuário sejam renderizados corretamente com base na configuração de exibição física, a densidade deve ser definida para o bucket (Métricas de display) que corresponde melhor à densidade física, como esta entrada no arquivo de compilação:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

Mecanismo de restrições de UX

CarUxRestrictionsManager (link em inglês) fornece um gancho para que os apps detectem as mudanças relacionadas ao estado de condução para modificar adequadamente a experiência do usuário. OEMs podem sobrepor arquivo de configuração em packages/services/Car/service/res/xml/car_ux_restrictions_map.xml para afetar o comportamento do sistema.

Tema do sistema

O tema que prescreve o conjunto padrão de itens do sistema, como cores e estilos de texto, é DeviceDefault. Os OEMs são incentivados a iniciar o processo geral de personalização modificando o tema DeviceDefault. Por padrão, a interface do sistema e todos os apps do sistema no AOSP herdam de esse tema. Os apps do sistema desenvolvidos pelo OEM também são incentivados a herdar o DeviceDefault. Terceiros Não se espera que os apps desenvolvidos herdem o DeviceDefault, mas usem Theme.Car. fornecidos na biblioteca androidx.car. Os arquivos são localizados da seguinte forma:

  • Principal. /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Cores. /frameworks/base/core/res/res/values/colors_car.xml
  • Estilos. /frameworks/base/core/res/res/values/styles_car.xml
  • Sobreposição de carro.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Os OEMs precisam ter uma estrutura de sobreposição paralela com o diretório car_product. no diretório de fornecedores, estendendo ainda mais a sobreposição car_product.

App Playground de tema

Esse app simplifica o processo de personalização do tema DeviceDefault visualizando todos os atributos de tema em um só lugar. Além disso, ao comparar como certos estilos em comparação com outros apps do sistema, os desenvolvedores podem depurar problemas de temas rapidamente. Este app é disponível em:

  /packages/services/Car/tests/ThemePlayground

IU do sistema

A interface do sistema inclui toda a interface em /frameworks/base, principalmente em /frameworks/base/packages/CarSystemUI. Isso inclui a barra de navegação, a barra de status, tela de bloqueio, caixa de diálogo de volume, avisos, seletor de usuário e caixas de diálogo de permissão. OEMs podem personalizar componentes de IU do sistema extensivamente por meio de sobreposições de recursos e temas, desde que cada um esteja dentro do do CDD, do CTS e de outras diretrizes de UX aplicáveis.

Apps do sistema

O Android Automotive inclui um conjunto dos principais apps do sistema essenciais para o sistema em geral funcionalidade de armazenamento. As opções "Central de comunicação", "Mídia", "Notificações" e "Configurações" estão considerados principais.

  • Central de comunicação
  • AVAC (aquecimento, ventilação e ar-condicionado)
  • IME (teclado)
  • Tela de início (tela inicial)
  • Player de mídia local
  • Mídia
  • Messenger
  • Notificações
  • Rádio
  • Configurações

Tela inicial

A tela inicial, conhecida como tela de início do carro, é a página de destino da experiência do HMI. A implementação do AOSP serve apenas como referência, e os OEMs devem substituir os implementação de vídeo com os próprios recursos, que geralmente combinam navegação, reprodução de mídia, comunicação e outros estados do sistema, conforme necessário. Geralmente, o app Tela de início do carro mostra os apps disponíveis no sistema. Para saber como processar eventos como recentes, alterações de pacotes e headless (sem atividade na tela de início), consulte a implementação de referência.

Notificações

As notificações são um componente integral do SO Android e as mesmas construções (incluindo notificação de alerta, lista/central de notificações, APIs de notificação, classificação e ações em linha) foram incluídos no Android Automotive. Para mais detalhes, consulte Notificações Visão geral. Para otimizar casos de uso automotivos, as seguintes modificações foram feitas (em comparação com o pilha de notificações portátil):

  • Redução no conteúdo geral de notificações visível para os usuários. Remoção de reprodução contínua de mídia, navegação contínua e itens "não importantes" (importância de LOW e abaixo) notificações de serviço em primeiro plano dos apps do sistema na lista/centro de notificações, com a entender que essas notificações são redundantes (por exemplo, cluster que mostra o estado da mídia); ou não são úteis.

  • Remoção de controles contextuais complexos (por exemplo, tocar e manter pressionado e com base no tamanho do deslize .

  • Respeito à configuração do mecanismo de restrições de UX.

    • A visualização do conteúdo de notificação de mensagens pode ficar oculta com base no estado da unidade.
    • Todas as strings limitadas ao tamanho máximo.
  • Adição de novas categorias de notificação especificamente para carros em Android 9, disponível apenas para apps do sistema em pacote que funcionam como android.uid.system:

  • CATEGORY_CAR_EMERGENCY: Classificação na parte superior da lista de notificações. Ignorar Controles de Não perturbe.

  • CATEGORY_CAR_WARNING: Classificação abaixo de "Emergência" e acima dos outros (ignora o Não perturbe).
  • CATEGORY_CAR_INFORMATION: Classificação com o restante das notificações com base em "importância" e recência.

A implementação completa da pilha de notificações, desde as APIs de notificação até a interface, é considerado um app hero. Para garantir a interoperabilidade consistente das APIs em todas as UOs e para maximizar a capacidade de atualização, os OEMs são altamente incentivados a fazer a implementação do AOSP e depois personalizar levemente.

Personalização

As sobreposições de recursos e os temas padrão do DeviceDefault são aplicados. Um número muito limitado de botões de personalização comportamental estão disponíveis em:

packages/apps/Car/Notification/res/values/config.xml

Configurações

O app Configurações (Configurações do carro) é um dos apps hero que expõem botões, que o usuário pode usar para configurar aspectos do SO Android e o restante do carro. Configurações de nuvem expõe mais de 200 recursos no SO, que estão fortemente acoplados a cada uma versão do Android. Para permitir a atualização e evitar a fragmentação, é altamente recomendável que os OEMs para personalizar a implementação do AOSP (em vez de bifurcar a implementação).

Personalização

O aplicativo Configurações leva a personalização em consideração e expõe vários caminhos para e personalização.

  • Temas. Permite a personalização visual de como cada tipo de objeto Preference devem ser renderizados, incluindo:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Personalização de hierarquia. Para ativar:

    • Inicie em um fragmento raiz arbitrário, sobreponha o valor de config_settings_hierarchy_root_fragment no arquivo chamado Settings/res/values/config.xml

    • Personalização de itens, como pedido, agrupamento, texto e ícones, sobreposição Settings/res/xml/*.xml

  • Injeção estática. Ao configurar um projeto de sobreposição, os OEMs podem adicionar telas proprietárias, definindo e, em seguida, adicionando as classes Fragment e Controller extras. à hierarquia.

  • Injeção dinâmica: Se um app separado (apk) hospedar um tela de configurações que deve ser vinculada ao aplicativo de configurações principal. O aplicativo separado pode ser injetada dinamicamente. Para mais informações, consulte Preferências dinâmicas.

Mídia

Mídia é um app hero que fornece a experiência do usuário front-end em nome da mídia aplicativos que implementam MediaSession e MediaBrowser APIs de terceiros. Os aplicativos de mídia podem ser aplicativos de terceiros (como Spotify e Pandora), bem como outros fontes de mídia, como streaming Bluetooth (BT) e mídia local.

Centenas de apps de mídia estão disponíveis no Android Auto (Projeção), todos eles implementar essas APIs de mídia, conforme descrito nas Como fornecer a reprodução de áudio para automática. As APIs de mídia evoluem com cada versão principal do Android e com as versões do Biblioteca do Androidx. Para garantir a interoperabilidade da API em todos os apps de mídia e em versões futuras do Android, os OEMs estão é altamente recomendável personalizar a implementação do AOSP.

Personalização

A aplicação de temas padrão com o tema DeviceDefault também se aplica à mídia. Além disso, a personalização da aparência é possível com sobreposições de recursos, desde que a personalização seja dentro dos limites das diretrizes de UX.

Mídia USB e fontes de mídia

Na medida do possível, é altamente recomendável que essas fontes de mídia sejam conectadas à mídia com a implementação do MediaSession. e MediaBrowser APIs. Isso é válido para qualquer app de mídia de terceiros. Consulte o app LocalMediaPlayer no AOSP. Esse app mostra arquivos de mídia locais e é mostrado como uma fonte em "Mídia".