El nivel de API del proveedor hace referencia a la versión de la interfaz compatible con la en la partición de proveedor. La interfaz es bidireccional. describe la API que la partición del proveedor proporciona a la partición del sistema (la capa de abstracción o interfaz de HAL), y también la API que la partición del proveedor los requisitos de la partición del sistema (el kit de desarrollo nativo de bajo nivel o LLNDK).
El nivel de API del proveedor también se usa para determinar los requisitos de software del proveedor. (VSR), un conjunto de requisitos funcionales y no funcionales que el software en la partición del proveedor debe cumplir.
En el resto de esta página, se explica cómo el sistema se usan, según tu versión de Android, para determinar Nivel de API.
Suspensión del proveedor
Android permite a un proveedor inmovilizar la partición del proveedor en una versión específica de la VSR. El conjunto de las funciones que Android espera de la partición del proveedor está determinada por el nivel de API del proveedor asociado con la partición del proveedor. En el tiempo de ejecución, el comportamiento del software que se ejecuta en la partición del sistema se ajusta para adaptarse a las nivel de API del proveedor de la partición de proveedor. Por ejemplo, el software del partición del sistema podría no ejecutar funciones nuevas si no son compatibles con el nivel de API de la partición del proveedor.
La suspensión de los proveedores solo está disponible si creas una Dispositivo compatible con Android.
Determina el nivel de API del proveedor (Android 14-QPR3 y versiones posteriores)
Para Android 14-QPR3 y versiones posteriores, el nivel de API del proveedor es se lanza por separado, es decir, el nivel de API del SDK y el proveedor El nivel de API no está sincronizado.
Debido a los programas de lanzamientos independientes, para Android 14-QPR3 y posteriores, el nivel de API del proveedor es completamente desvinculada del nivel de API del SDK. Para garantizar que esta separación sea clara, el El formato del nivel de API del proveedor es una fecha con formato AAAAMM (año y mes) mientras que el nivel del SDK es un número entero.
Android 14-QPR3 y las versiones posteriores incluyen el siguiente sistema
Propiedades relacionadas con el nivel de API del proveedor (ro.vendor.api_level
):
Propiedad del sistema | Formato | Descripción | Configuración inicial |
---|---|---|---|
ro.board.api_level |
AAAAMM | Es el nivel de API del proveedor que admite el software de un conjunto de chips. Esta propiedad se establece para todos los chipsets. | El sistema de compilación lo establece automáticamente. |
ro.board.first_api_level |
AAAAMM | Es el nivel de API del proveedor con el que se lanzó por primera vez el software de un conjunto de chips. Esta propiedad es una función solo del chipset y la establecen los proveedores de SoC si este se califica para la inmovilización de proveedores. Después de la configuración inicial, no se debe modificar. | Los proveedores de SoC establecen esta configuración con BOARD_SHIPPING_API_LEVEL . |
ro.product.first_api_level |
Entero | Es el nivel de API del SDK con el que se lanzó el dispositivo por primera vez. | El OEM establece esta propiedad y nunca se actualiza, incluso después de las actualizaciones del SO. |
ro.vendor.api_level |
AAAAMM | Nivel de API del proveedor al que debe cumplir todo el dispositivo. | Se describe después de esta tabla. |
ro.board.api_frozen |
boolean | Esta propiedad se establece en true si el nivel de API del proveedor que representa ro.board.api_level está finalizado. |
Si no se configura esta propiedad, el valor predeterminado es false . |
ro.llndk.api_level |
AAAAMM | El nivel de API del proveedor en formato AAAAMM que proporciona el LLNDK actual en la partición del sistema. LLNDK es retrocompatible, por lo que cualquier imagen de proveedor que sea inferior o igual a este nivel de API puede escribirse en la memoria flash con esta imagen del sistema. | La partición del sistema establece esta propiedad. |
La propiedad ro.vendor.api_level
se deriva de una de las siguientes dos maneras:
Si el chipset cumplió con los requisitos para la suspensión del proveedor, haz lo siguiente:
ro.vendor.api_level = min( ro.board.api_level, AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
Si el chipset no está inmovilizado por el proveedor, haz lo siguiente:
ro.vendor.api_level = AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
El método AVendorSupport_getVendorApiLevelOf()
determina el valor
del proveedor a partir del nivel de API del SDK. Por ejemplo:
AVendorSupport_getVendorApiLevelOf(35)
, donde 35
es el nivel de API del SDK de la
lanzamiento principal de Android en 2024 devuelve 202404
, que es la fecha aproximada
Android 14-QPR3 cuando el nivel de API del proveedor actual era
automático.
Determina el nivel de API del proveedor (Android 13)
El nivel de API del proveedor sigue el nivel de API del SDK, que es para el SO de la app. y se actualiza una vez al año cuando se lanza la nueva plataforma de Android al AOSP.
Android 13 incluye el siguiente sistema:
Propiedades relacionadas con el nivel de API del proveedor (ro.vendor.api_level
):
Propiedad del sistema | Formato | Descripción | Configuración inicial |
---|---|---|---|
ro.board.first_api_level |
Entero | Es el nivel de API del proveedor con el que se lanzó por primera vez el software de un conjunto de chips. Esta es una función solo de chipset, y ni los proveedores de SoC ni los OEM pueden modificarla. Esta propiedad solo se establece para los chipsets que cumplen con los requisitos de la suspensión de proveedores. | El valor se establece mediante la configuración de BOARD_SHIPPING_API_LEVEL en el archivo device.mk . |
ro.board.api_level |
Entero | Es el nivel de API del proveedor que admite el software de un conjunto de chips. Esta propiedad se establece solo para los chipsets que cumplen con los requisitos para la suspensión de proveedores. Esta propiedad se establece para todos los chipsets. | Al principio, el sistema de compilación establece el valor de esta propiedad con el mismo valor que ro.board.first_api_level , pero se puede actualizar si se actualiza la partición del proveedor. |
ro.product.first_api_level |
Entero | Es el nivel de API del SDK con el que se lanzó el dispositivo por primera vez. | El OEM establece esta propiedad y nunca se actualiza, incluso después de las actualizaciones del SO. |
ro.vendor.api_level |
Entero | Nivel de API del proveedor al que debe cumplir todo el dispositivo. | Se describe después de esta tabla. |
ro.vndk.version |
Entero | Es la versión de VNDK con la que se compila la partición del proveedor. | La partición del sistema establece esta propiedad. |
ro.vendor.build.version.sdk |
Entero | El nivel de API del SDK del árbol de fuentes en el que se compiló la partición del proveedor. | |
ro.vendor.build.version.release |
Entero | Es la versión de la plataforma del árbol de fuentes en el que se compiló la partición del proveedor. | |
ro.vendor.build.version.release_or_codename |
Entero | El nombre interno del árbol de fuentes en el que se compiló la partición del proveedor. |
La propiedad ro.vendor.api_level
se establece automáticamente en el mínimo de ro.board.api_level
(o ro.board.first_api_level
si no se define ro.board.api_level
).
ro.product.first_api_level