Apêndice C, versão mínima compatível para a API Car UI Plugin

Os OEMs precisam mudar para a versão mais recente de car-ui-lib-plugin-apis (1.2.0 ou mais recente) o mais rápido possível. O ideal é que os OEMs não enviem nenhum plug-in que use uma versão mais antiga.

Por que essa atualização?

As APIs Java 8+ têm suporte para versões anteriores do Android usando o suporte à simplificação de APIs Java 8+ support. As implementações de APIs ausentes são compiladas em apps, e o código de bytes dos APKs é reescrito para referenciar as implementações em vez das bibliotecas na plataforma.

O carregamento de implementações de componentes de interface do usuário do OEM de um plug-in da biblioteca Car UI exige a referência de métodos definidos pelas interfaces car-ui-lib-plugin-apis. Essas referências de método são feitas de apps para plug-ins da biblioteca Car UI no momento da execução, com a expectativa de que as assinaturas de método sejam idênticas nas implementações de apps e plug-ins.

Alguns sistemas de build ativam a simplificação da API em todos os momentos devido aos requisitos de um nível mínimo específico do SDK. As assinaturas de método simplificadas para interfaces car-ui-lib-plugin-apis podem não corresponder às de uma implementação de plug-in do OEM que não foi simplificada, o que resulta na falha do carregamento de plug-ins.

Como resultado, alguns apps do GAS compilados com o sistema de build interno do Google são incompatíveis com o plug-in da biblioteca Car UI. Portanto, removemos todas as dependências das APIs Java 8 (e mais recentes) que exigem simplificação. Essa mudança exige atualizações na API das interfaces definidas por car-ui-lib-plugin-apis.

Etapas necessárias para plug-ins do OEM

Siga estas etapas para atualizar sua API:

  1. Atualize a implementação do plug-in para usar a versão mais recente de car-ui-lib-plugin-apis. Para acessar a versão mais recente (1.2.0 ou mais recente), consulte o Repositório Maven do Google.

  2. Atualize a implementação do plug-in para implementar a interface PluginFactoryOEMV4. Essa mudança exige as seguintes etapas quando um componente é implementado pelo plug-in do OEM. Atualize a implementação do OEM de:

    1. Barra de ferramentas, para implementar ToolbarControllerOEMV2.

    2. Itens da lista de conteúdo, para estender ContentListItemOEMV2.

    3. Processamento de resultados de pesquisa do IME, para estender ImeSearchInterfaceOEMV2.

  3. Atualize o app para usar a versão mais recente da biblioteca Car UI.

O que acontece se essa atualização não for aplicada?

Se as etapas fornecidas nesta página não forem concluídas para um plug-in do OEM, os apps simplificados, como os Serviços Automotivos do Google (GAS), não vão carregar implementações do plug-in da biblioteca Car UI, e nenhuma personalização do OEM será aplicada pelo mecanismo de plug-in.

As personalizações de RRO atuais da biblioteca Car UI não são afetadas por esse problema e continuam funcionando normalmente.