Tokens de design do OEM

Os tokens de design do OEM são uma implementação do Android Automotive OS (AAOS) do Material Design (link em inglês) sistema. Ao contrário da abordagem algorítmica ou de seleção de usuário para valores de token em dispositivos móveis, os OEMs designam os valores de token de design. Os tokens de design representam as decisões de design pequenas e repetidas que compõem uma o estilo visual do sistema de design e substituir valores estáticos por nomes autoexplicativos. Os tokens são análogos àqueles definidos pelo sistema do Material Design.

Biblioteca de tokens do OEM

Os tokens de design do OEM são referenciados por meio da biblioteca de tokens do OEM, que consiste nos três e componentes ilustrados na figura 1.

Figura 1. Componentes da biblioteca de tokens do OEM.

Biblioteca estática

O componente de biblioteca estática da biblioteca de tokens do OEM facilita o acesso a valores de token como segue.

  • Fornece APIs para acessar valores de OEM para tokens.
  • Permite a substituição de referências de token no tema com valores de OEM.

Biblioteca compartilhada

O componente da biblioteca compartilhada é responsável por definir o seguinte:

  • Nome da biblioteca
  • Opção booleana para ativação de valores de token OEM.
  • Estilo que fornece valores de token de OEM.

Para acomodar a propriedade de OEM desse componente de biblioteca compartilhada, incluindo um pacote definido pelo OEM. os OEMs poderão criar uma substituição da implementação da biblioteca compartilhada.

Figura 2. Substituir a implementação de uma biblioteca compartilhada.

Biblioteca compartilhada do OEM

As substituições de OEM do componente da biblioteca compartilhada permitem a propriedade do OEM da biblioteca, enquanto manter a compatibilidade com outros componentes na biblioteca de tokens do OEM, fornecendo um meio para o nome do pacote e a assinatura a serem definidos pelos OEMs, deixando a implementação do sem modificações.

As substituições para uma biblioteca compartilhada podem ser definidas conforme mostrado abaixo:

override_android_app {
    name: "[OEM]-token-shared-lib",
    base: "token-shared-lib",
    package_name: "com.[OEM].sharedlib",
    rename_resources_package: false,
    certificate: …
}

Para definir valores de token, consulte Especificar valores de token de OEM.

Personalizações da biblioteca compartilhada do OEM

Para oferecer suporte a esquemas variados para valores de token (por exemplo, diferenciação de modelo ou modo carro), OEMs podem fornecer valores dinâmicos para tokens segmentando a biblioteca compartilhada do OEM com o ambiente de execução Sobreposições de recursos (RROs, na sigla em inglês). Para saber mais, consulte Mudar o valor dos recursos de um app no momento da execução.

Para definir valores de token, consulte Especificar valores de token de OEM.

Especificar valores de token de OEM

Para especificar valores de token, defina o atributo correspondente no estilo OemStyle como o valor obrigatório.

<resources>
    <style name="OemStyle">
        <item name="colorPrimary">#B0C5FF</item>
        <item name="colorOnPrimary">#002B76</item>
        <item name="colorPrimaryContainer">#003FA4</item>
        <item name="colorOnPrimaryContainer">#D9E2FF</item>
        …
    </style>
</resources>

Ativar os valores de OEM

Para que os apps possam acessar os valores de token fornecidos pelo OEM, os OEMs precisam primeiro ativar a substituição do padrão valores de token ao configurar o booleano enable_oem_tokens como true.

Valores de token RRO

Da mesma forma que os valores de token são definidos no OemStyle, as RROs podem ser usadas para modificar os para fornecer valores de token alternativos.

<resources>
    <style name="OemStyle">
        <item name="com.android.oem.tokens:colorPrimary">#B0C5FF</item>
        <item name="com.android.oem.tokens:colorOnPrimary">#002B76</item>
        <item name="com.android.oem.tokens:colorPrimaryContainer">#003FA4</item>
        <item name="com.android.oem.tokens:colorOnPrimaryContainer">#D9E2FF</item>
        …
    </style>
</resources>

As RROs precisam definir os atributos da biblioteca compartilhada no estilo especificando a biblioteca compartilhada nome.

Configurar a última carga

Sistemas que incluem uma implementação de OEM de uma biblioteca compartilhada de token precisam configurar o sistema para carregar a biblioteca compartilhada após as classes do app. Para isso, inclua o nome da biblioteca (com.android.oem.tokens) em config_sharedLibrariesLoadedAfterApp no sistema. Se você tiver acesso aos Serviços Automotivos do Google (GAS), isso será aplicado como uma requisito fundamental.

<!-- The OEM token shared library will be loaded after app classes -->
<string-array name="config_sharedLibrariesLoadedAfterApp" translatable="false">
    <item>com.android.oem.tokens</item>
</string-array>

Práticas recomendadas

As práticas recomendadas para a biblioteca de tokens do OEM estão descritas abaixo.

Ativar uma estratégia de atualização flexível

Confira as estratégias abaixo para criar flexibilidade em relação às atualizações.

Biblioteca compartilhada do OEM

Como as bibliotecas compartilhadas pelo sistema precisam ser pré-instaladas nas imagens do sistema, os dispositivos precisam: com a biblioteca ou a biblioteca precisa ser adicionada como parte de uma atualização over the air (OTA) para saber consulte Atualizações OTA). No entanto, incluir uma implementação de stub de uma substituição de OEM de uma biblioteca compartilhada de token OEM em uma imagem do sistema permite que uma atualização para uma implementação completa em funcionamento seja enviada aos dispositivos em um mais tarde sem precisar de uma OTA.

RROs da biblioteca compartilhada

Embora não seja necessário instalar RROs como apps do sistema, isso dá alguns atualizar o comportamento desejado.

  • Atualizações automáticas de apps quando os usuários não estão conectados.
  • não podem ser desinstalados pelo usuário (eles só podem desinstalar atualizações);