Objeto de interfaz de proveedor

Este documento describe el diseño del objeto de interfaz de proveedor (objeto VINTF), que agrega información relevante sobre un dispositivo y hace que esa información esté disponible a través de una API consultable .

diseño de objetos VINTF

Un objeto VINTF recopila parte de la información que necesita directamente del dispositivo. Otros aspectos, como los manifiestos, se describen de forma estática en XML.

Figura 1. Manifiestos, matrices de compatibilidad e información recopilable en tiempo de ejecución

El diseño de objetos VINTF proporciona lo siguiente para los componentes del dispositivo y del marco:

para el dispositivo para el marco
  • Define un esquema para el componente estático (el archivo de manifiesto del dispositivo ).
  • Agrega soporte de tiempo de compilación para definir el archivo de manifiesto del dispositivo para un dispositivo determinado.
  • Define la API consultable en tiempo de ejecución que recupera el archivo de manifiesto del dispositivo (junto con la otra información recopilable en tiempo de ejecución) y los empaqueta en el resultado de la consulta.
  • Define un esquema para el componente estático (el archivo de manifiesto del marco ).
  • Define la API consultable en tiempo de ejecución que recupera el archivo de manifiesto del marco y lo empaqueta en el resultado de la consulta.

El objeto VINTF debe ser confiable y proporcionar la misma información completa, independientemente de cuándo se solicite el objeto (ver Advertencias ).

Manifiestos y matrices

A partir de Android 8.0, una API en tiempo de ejecución consulta qué hay en el dispositivo y envía esa información al servidor de actualización Over-the-Air (OTA) y otras partes interesadas (como CTS DeviceInfo ). Parte de la información se recupera en tiempo de ejecución y otra parte está definida estáticamente.

  • El manifiesto del dispositivo describe el componente estático de lo que el dispositivo puede proporcionar al marco.
  • La matriz de compatibilidad del marco describe lo que el marco de Android espera de un dispositivo determinado. La matriz es una entidad estática cuya composición se determina manualmente durante el desarrollo de la próxima versión del marco de Android.
  • El manifiesto del marco describe los servicios de alto nivel que el marco puede proporcionar al dispositivo.
  • La matriz de compatibilidad de dispositivos describe los servicios que la imagen del proveedor requiere del marco. Su composición se determina manualmente durante el desarrollo del dispositivo.

Estos dos pares de manifiestos y matrices deben conciliarse en el momento de OTA para garantizar que un dispositivo pueda obtener actualizaciones de marco que sean compatibles con las capacidades del dispositivo. En general, un manifiesto describe lo que se proporciona y una matriz de compatibilidad describe lo que se requiere.

Esta sección incluye los siguientes detalles sobre manifiestos y matrices:

  • Manifiestos define el manifiesto del dispositivo, el manifiesto del marco y el esquema del archivo de manifiesto.
  • Matrices de compatibilidad define el esquema de la matriz de compatibilidad.
  • El ciclo de vida de FCM detalla cómo las HAL de HIDL quedan obsoletas y eliminadas y cómo se modifican los archivos de FCM para reflejar el estado de la versión HAL.
  • DM Development describe cómo los proveedores pueden definir y declarar la versión de FCM de destino en el manifiesto del dispositivo para dispositivos nuevos o implementar nuevas versiones de HAL e incrementar la versión de FCM de destino al actualizar la imagen del proveedor para dispositivos antiguos.
  • Reglas de coincidencia define las reglas para una coincidencia exitosa entre una matriz de compatibilidad y un manifiesto.