Objeto de interfaz de proveedor

Este documento describe el diseño del objeto de interfaz del 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 estáticamente 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 en 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 el resto de 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 solicita el objeto (consulte Advertencias ).

Manifiestos y matrices

A partir de Android 8.0, una API de tiempo de ejecución consulta qué hay en el dispositivo y envía esa información al servidor de actualización inalámbrica (OTA) y a otras partes interesadas (como CTS DeviceInfo ). Parte de la información se recupera en tiempo de ejecución y otra parte se define 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 la OTA para garantizar que un dispositivo pueda obtener actualizaciones del 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:

  • Los manifiestos definen 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.
  • FCM Lifecycle detalla cómo los HIDL HAL quedan obsoletos y eliminados y cómo se modifican los archivos 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.
  • Las reglas de coincidencia definen las reglas para una coincidencia exitosa entre una matriz de compatibilidad y un manifiesto.