Objeto da interface do fornecedor

Este documento descreve o design do objeto da interface do fornecedor (objeto VINTF, na sigla em inglês), que agrega informações relevantes sobre um dispositivo e as disponibiliza por meio de uma API pesquisável.

Design do objeto VINTF

Um objeto VINTF coleta algumas das informações necessárias diretamente do dispositivo. Outros aspectos, como os manifestos, são descritos de forma estática no XML.

Figura 1. Manifestos, matrizes de compatibilidade e informações coletadas no tempo de execução.

O design de objeto do VINTF fornece o seguinte para componentes de dispositivo e framework:

Para o dispositivo Para o framework
  • Define um esquema para o componente estático (o arquivo de manifesto do dispositivo).
  • Adiciona suporte ao tempo de build para definir o arquivo de manifesto do dispositivo para um determinado dispositivo.
  • Define a API consultável no momento da execução que recupera o arquivo de manifesto do dispositivo (junto com as outras informações coletáveis no momento da execução) e as empacota no resultado da consulta.

O objeto VINTF precisa ser confiável e fornecer as mesmas informações completas independentemente de quando o objeto é solicitado (consulte Observações).

Manifestos e matrizes

A partir do Android 8.0, uma API de execução consulta o que está no dispositivo e envia essas informações para o servidor de atualização over-the-air (OTA) e outras partes interessadas (como o CTS DeviceInfo). Algumas informações são recuperadas no momento da execução e outras são definidas de forma estática.

  • O manifesto do dispositivo descreve o componente estático do que o dispositivo pode fornecer ao framework.
  • A matriz de compatibilidade do framework descreve o que o framework do Android espera de um determinado dispositivo. A matriz é uma entidade estática cuja composição é determinada manualmente durante o desenvolvimento da próxima versão do framework do Android.
  • O manifesto do framework descreve serviços de alto nível que o framework pode fornecer ao dispositivo.
  • A matriz de compatibilidade de dispositivos descreve os serviços que a imagem do fornecedor exige da estrutura. A composição dele é determinada manualmente durante o desenvolvimento do dispositivo.

Esses dois pares de manifestos e matrizes precisam ser reconciliados no momento da OTA para garantir que um dispositivo possa receber atualizações de framework compatíveis com os recursos dele. Em geral, um manifesto descreve o que é fornecido, e uma matriz de compatibilidade descreve o que é necessário.

Esta seção inclui os seguintes detalhes sobre manifestos e matrizes:

  • Manifestos definem o manifesto do dispositivo, o manifesto do framework e o esquema do arquivo de manifesto.
  • Matrizes de compatibilidade define o esquema da matriz de compatibilidade.
  • A página Ciclo de vida do FCM detalha como as HALs HIDL são descontinuadas e removidas e como os arquivos do FCM são modificados para refletir o status da versão da HAL.
  • O artigo Desenvolvimento de DM descreve como os fornecedores podem definir e declarar a versão do FCM de destino no manifesto do dispositivo para novos dispositivos ou implementar novas versões do HAL e incrementar a versão do FCM de destino ao atualizar a imagem do fornecedor para dispositivos antigos.
  • Regras de correspondência define as regras para uma correspondência bem-sucedida entre uma matriz de compatibilidade e um manifesto.