Apêndice C, Versão Mínima Compatível para a API do Plugin de IU do Carro

Espera-se que os OEMs mudem para a versão mais recente do car-ui-lib-plugin-apis (1.2.0 ou superior) o mais rápido possível. Idealmente, os OEMs não devem enviar nenhum plug-in que use uma versão mais antiga.

Por que essa atualização?

As APIs do Java 8+ são compatíveis com versões anteriores do Android por meio do suporte à remoção de açúcar da API do Java 8+ . As implementações de APIs ausentes são compiladas em aplicativos e o código de bytes dos APKs é reescrito para fazer referência às implementações em vez das bibliotecas na plataforma.

O carregamento de implementações OEM de componentes de interface do usuário de um plug-in Car UI Library requer a referência de métodos definidos pelas car-ui-lib-plugin-apis . Essas referências de método são feitas de aplicativos para plug-ins Car UI Library em tempo de execução com a expectativa de que as assinaturas de método sejam idênticas em implementações de aplicativos e plug-ins.

Alguns sistemas de compilação permitem a remoção de açúcar da API o tempo todo devido aos requisitos de um nível mínimo específico do SDK. As assinaturas de método sem açúcar para car-ui-lib-plugin-apis podem não corresponder àquelas em uma implementação de plug-in OEM que não foi sem açúcar, o que resulta na falha de carregamento dos plug-ins.

Como resultado, alguns aplicativos GAS compilados com o sistema de compilação interno do Google são incompatíveis com o plug-in Car UI Library. Portanto, removemos todas as dependências das APIs do Java 8 (e superior) que exigem remoção de açúcar. Essa mudança requer atualizações na API das interfaces definidas por car-ui-lib-plugin-apis .

Etapas necessárias para plug-ins OEM

As etapas abaixo descrevem como atualizar sua API.

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

  2. Atualize a implementação do plug-in para implementar a interface PluginFactoryOEMV4 . Essa alteração requer as seguintes etapas quando um componente é implementado pelo plug-in 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. Entrega de resultados de pesquisa IME, para estender ImeSearchInterfaceOEMV2 .

  3. Atualize o aplicativo para usar a versão mais recente da Car UI Library.

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

Se as etapas fornecidas acima não forem concluídas para um plug-in OEM, os aplicativos sem açúcar, como o Google Automotive Services (GAS), não carregarão as implementações do plug-in Car UI Library e nenhuma personalização do OEM será aplicada por meio do mecanismo do plug-in.

As personalizações de RRO existentes para a Car UI Library não são afetadas por esse problema e continuam funcionando normalmente.