Объект интерфейса поставщика

В этом документе описана структура объекта интерфейса поставщика (VINTF), который собирает информацию об устройстве и предоставляет ее через API с возможностью запросов.

Проектирование объектов VINTF

Объект VINTF собирает часть необходимой информации непосредственно с устройства. Другие аспекты, например манифесты, описываются статически в XML.

Рисунок 1. Манифесты, матрицы совместимости и информация, собираемая во время выполнения.

Объект VINTF предоставляет следующие возможности для компонентов устройства и фреймворка:

Для устройства Для Framework
  • Определяет схему для статического компонента (файл манифеста устройства).
  • Добавляет поддержку определения файла манифеста устройства для заданного устройства во время сборки.
  • Определяет API, доступный для запросов во время выполнения, который извлекает файл манифеста устройства (вместе с другой информацией, собираемой во время выполнения) и упаковывает их в результат запроса.

Объект VINTF должен быть надежным и предоставлять одну и ту же полную информацию независимо от того, когда запрашивается объект (см. Предостережения).

Манифесты и матрицы

Начиная с Android 8.0 API среды выполнения запрашивает информацию о том, что находится на устройстве, и отправляет ее на сервер беспроводных обновлений и другим заинтересованным сторонам (например, CTS DeviceInfo). Часть информации извлекается во время выполнения, а часть определяется статически.

  • Манифест устройства описывает статический компонент того, что устройство может предоставить фреймворку.
  • В матрице совместимости фреймворков описано, что фреймворк Android ожидает от определенного устройства. Матрица – это статический объект, состав которого определяется вручную при разработке следующего выпуска платформы Android.
  • Манифест фреймворка описывает сервисы высокого уровня, которые фреймворк может предоставлять устройству.
  • Матрица совместимости устройств описывает сервисы, которые образ поставщика запрашивает у фреймворка. Его состав определяется вручную во время разработки устройства.

Эти две пары манифестов и матриц должны быть согласованы во время беспроводного обновления, чтобы устройство могло получать обновления фреймворка, совместимые с его возможностями. В общем случае манифест описывает, что предоставляется, а матрица совместимости – что требуется.

В этом разделе приведены следующие сведения о манифестах и матрицах:

  • В разделе Манифесты описаны манифест устройства, манифест фреймворка и схема файла манифеста.
  • Матрицы совместимости определяют схему для матрицы совместимости.
  • В разделе Жизненный цикл FCM рассказывается, как прекращается поддержка и удаляются HIDL HAL и как изменяются файлы FCM, чтобы отразить статус версии HAL.
  • В разделе Разработка манифеста устройства описывается, как поставщики могут определять и объявлять целевую версию FCM в манифесте устройства для новых устройств или реализовывать новые версии HAL и увеличивать целевую версию FCM при обновлении образа поставщика для старых устройств.
  • Правила сопоставления определяют правила успешного сопоставления матрицы совместимости и манифеста.