В этом документе описана структура объекта интерфейса поставщика (VINTF), который собирает информацию об устройстве и предоставляет ее через API с возможностью запросов.
Проектирование объектов VINTF
Объект VINTF собирает часть необходимой информации непосредственно с устройства. Другие аспекты, например манифесты, описываются статически в XML.
Рисунок 1. Манифесты, матрицы совместимости и информация, собираемая во время выполнения.
Объект VINTF предоставляет следующие возможности для компонентов устройства и фреймворка:
| Для устройства | Для Framework |
|---|---|
|
|
Объект VINTF должен быть надежным и предоставлять одну и ту же полную информацию независимо от того, когда запрашивается объект (см. Предостережения).
Манифесты и матрицы
Начиная с Android 8.0 API среды выполнения запрашивает информацию о том, что находится на устройстве, и отправляет ее на сервер беспроводных обновлений и другим заинтересованным сторонам (например, CTS DeviceInfo). Часть информации извлекается во время выполнения, а часть определяется статически.
- Манифест устройства описывает статический компонент того, что устройство может предоставить фреймворку.
- В матрице совместимости фреймворков описано, что фреймворк Android ожидает от определенного устройства. Матрица – это статический объект, состав которого определяется вручную при разработке следующего выпуска платформы Android.
- Манифест фреймворка описывает сервисы высокого уровня, которые фреймворк может предоставлять устройству.
- Матрица совместимости устройств описывает сервисы, которые образ поставщика запрашивает у фреймворка. Его состав определяется вручную во время разработки устройства.
Эти две пары манифестов и матриц должны быть согласованы во время беспроводного обновления, чтобы устройство могло получать обновления фреймворка, совместимые с его возможностями. В общем случае манифест описывает, что предоставляется, а матрица совместимости – что требуется.
В этом разделе приведены следующие сведения о манифестах и матрицах:
- В разделе Манифесты описаны манифест устройства, манифест фреймворка и схема файла манифеста.
- Матрицы совместимости определяют схему для матрицы совместимости.
- В разделе Жизненный цикл FCM рассказывается, как прекращается поддержка и удаляются HIDL HAL и как изменяются файлы FCM, чтобы отразить статус версии HAL.
- В разделе Разработка манифеста устройства описывается, как поставщики могут определять и объявлять целевую версию FCM в манифесте устройства для новых устройств или реализовывать новые версии HAL и увеличивать целевую версию FCM при обновлении образа поставщика для старых устройств.
- Правила сопоставления определяют правила успешного сопоставления матрицы совместимости и манифеста.