A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Vulkan
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Android admite Vulkan, una API multiplataforma de baja sobrecarga para gráficos 3D de alto rendimiento. Al igual que OpenGL ES (GLES), Vulkan proporciona herramientas para crear gráficos de alta calidad y en tiempo real en apps. Las ventajas de usar Vulkan incluyen reducciones en la sobrecarga de la CPU y compatibilidad con el lenguaje SPIR-V Intermedio Binario.
Los proveedores de sistemas en chip (SoC), como los proveedores de hardware independientes de GPU (IHV), pueden escribir controladores de Vulkan para Android. Los OEMs deben integrar estos
controladores para dispositivos específicos. Para obtener detalles sobre cómo un controlador de Vulkan interactúa con el sistema, cómo se deben instalar las herramientas específicas de la GPU y los requisitos específicos de Android, consulta Cómo implementar Vulkan.
Los desarrolladores de aplicaciones usan Vulkan para crear apps que ejecutan comandos en la GPU con una sobrecarga significativamente reducida. Vulkan también proporciona una asignación más directa a las capacidades que se encuentran en el hardware gráfico actual en comparación con EGL y GLES, lo que minimiza las oportunidades de errores del controlador y reduce el tiempo de prueba de los desarrolladores.
Para obtener información general sobre Vulkan, consulta la descripción general de Vulkan o la lista de Recursos.
Componentes de Vulkan
La compatibilidad con Vulkan incluye los siguientes componentes.

Figura 1: Componentes de Vulkan
Nombre del componente |
Proveedor |
Descripción |
Capas de validación de Vulkan |
Android (en el NDK) |
Son bibliotecas que se usan durante el desarrollo de apps para Vulkan para encontrar errores en el uso de la API de Vulkan por parte de una app. Después de que se encuentren errores de uso de la API, se deben quitar estas bibliotecas. |
Entorno de ejecución de Vulkan |
Android |
Una biblioteca nativa, libvulkan.so , que proporciona una API de Vulkan nativa
La mayoría de las funciones del entorno de ejecución de Vulkan se implementan con un controlador
proporcionado por el proveedor de la GPU. El entorno de ejecución de Vulkan une el controlador, proporciona capacidades de intercepción de API (para depuración y otras herramientas para desarrolladores) y administra la interacción entre el controlador y las dependencias de la plataforma. |
Controlador de Vulkan |
SoC |
Asigna la API de Vulkan a interacciones y comandos de GPU específicos del hardware con el controlador de gráficos del kernel. |
Componentes modificados
BufferQueue y Gralloc admiten Vulkan:
- BufferQueue: Los valores y métodos de enumeración adicionales en BufferQueue y la interfaz
ANativeWindow
permiten que el entorno de ejecución de Vulkan se conecte a BufferQueue a través de ANativeWindow
.
- Gralloc. Una interfaz opcional permite que Gralloc descubra si se puede usar un formato determinado para una combinación particular de productor/consumidor sin asignar un búfer.
Para obtener detalles sobre estos componentes, consulta BufferQueue y gralloc. Para obtener más información sobre ANativeWindow
, consulta EGLSurfaces y OpenGL ES.
Recursos
Usa los siguientes recursos para obtener más información sobre Vulkan:
-
Cargador de Vulkan (
libvulkan.so
) en platform/frameworks/native/vulkan
. Contiene el cargador de Vulkan de Android, así como algunas herramientas relacionadas con Vulkan que son útiles para los desarrolladores de plataformas.
- Implementa Vulkan.
Se diseñó para los IHV de GPU que escriben controladores de Vulkan para Android y los OEMs que integran esos controladores para dispositivos específicos. En él, se describe cómo un controlador de Vulkan interactúa con el sistema, cómo se deben instalar las herramientas específicas de la GPU y los requisitos de implementación específicos de Android.
- Guía de la API de Vulkan Graphics. Incluye información para comenzar a usar Vulkan en apps para Android, la plataforma de lineamientos de diseño de Vulkan de Android, el uso de los compiladores de sombreadores de Vulkan y el uso de capas de validación para ayudar a garantizar la estabilidad en las apps que usan Vulkan.
- Vulkan News. Abarca eventos, parches, instructivos y más artículos de noticias relacionados con Vulkan.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-27 (UTC)"],[],[],null,["# Vulkan\n\nAndroid supports\n[Vulkan](https://www.khronos.org/vulkan/), a\nlow-overhead, cross-platform API for high-performance 3D graphics. Like\n[OpenGL ES (GLES)](https://www.khronos.org/opengles/),\nVulkan provides tools for creating high-quality, real-time graphics\nin apps. Advantages of using Vulkan include reductions in CPU overhead and\nsupport for the [SPIR-V\nBinary Intermediate](https://www.khronos.org/spir) language.\n\nSystem on chip vendors (SoCs) such as GPU independent hardware vendors (IHVs)\ncan write Vulkan drivers for Android. OEMs need to integrate these\ndrivers for specific devices. For details on how a Vulkan driver interacts with\nthe system, how GPU-specific tools should be installed, and Android-specific\nrequirements, see [Implementing\nVulkan.](/docs/core/graphics/implement-vulkan)\n\nApplication developers use Vulkan to create apps that\nexecute commands on the GPU with significantly reduced overhead. Vulkan also\nprovides a more direct mapping to the capabilities found in current graphics\nhardware compared to [EGL](https://www.khronos.org/egl) and GLES,\nminimizing opportunities for driver bugs and reducing developer testing time.\n\nFor general information on Vulkan, refer to the\n[Vulkan\nOverview](http://khr.io/vulkanlaunchoverview) or see the list of [Resources](#resources).\n\nVulkan components\n-----------------\n\nVulkan support includes the following components.\n\n**Figure 1.** Vulkan components\n\n| Component name | Provider | Description |\n|--------------------------|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Vulkan Validation Layers | Android (in the NDK) | Libraries used during the development of Vulkan apps to find errors in an app's use of the Vulkan API. After API usage errors are found, these libraries should be removed. |\n| Vulkan Runtime | Android | A native library, `libvulkan.so`, that provides a native Vulkan API. Most of Vulkan Runtime's functionality is implemented by a driver provided by the GPU vendor. Vulkan Runtime wraps the driver, provides API interception capabilities (for debugging and other developer tools), and manages the interaction between the driver and the platform dependencies. |\n| Vulkan Driver | SoC | Maps the Vulkan API onto hardware-specific GPU commands and interactions with the kernel graphics driver. |\n\nModified components\n-------------------\n\nBufferQueue and Gralloc support Vulkan:\n\n- **BufferQueue.** Additional enum values and methods in BufferQueue and the `ANativeWindow` interface enable Vulkan Runtime to connect to BufferQueue through `ANativeWindow`.\n- **Gralloc.** An optional interface lets Gralloc discover whether a given format can be used for a particular producer/consumer combination without allocating a buffer.\n\nFor details on these components, see\n[BufferQueue and\ngralloc](/docs/core/graphics/arch-bq-gralloc). For details on `ANativeWindow`, see\n[EGLSurfaces and OpenGL\nES](/docs/core/graphics/arch-egl-opengl)).\n\nResources\n---------\n\nUse the following resources to learn more about Vulkan:\n\n- [Vulkan Loader](https://android.googlesource.com/platform/frameworks/native/+/android16-release/vulkan/#) (`libvulkan.so`) at `platform/frameworks/native/vulkan`. Contains Android's Vulkan loader, as well as some Vulkan-related tools useful to platform developers.\n- [Implementing Vulkan](/docs/core/graphics/implement-vulkan). Intended for GPU IHVs writing Vulkan drivers for Android and OEMs integrating those drivers for specific devices. It describes how a Vulkan driver interacts with the system, how GPU-specific tools should be installed, and Android-specific implementation requirements.\n- [Vulkan Graphics API Guide](https://developer.android.com/ndk/guides/graphics/index.html). Includes information on getting started with using Vulkan in Android apps, Android's Vulkan design guidelines platform, using Vulkan's shader compilers, and using validation layers to help ensure stability in apps using Vulkan.\n- [Vulkan News](https://www.khronos.org/#slider_vulkan). Covers events, patches, tutorials, and more Vulkan-related news articles."]]