自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
Vulkan
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Android 支持 Vulkan,这是一套适用于高性能 3D 图形的低开销、跨平台 API。与 OpenGL ES (GLES) 一样,Vulkan 也提供用于在应用中创建高品质实时图形的工具。使用 Vulkan 的优势包括降低 CPU 开销以及支持 SPIR-V 二进制中间语言。
系统芯片 (SoC) 供应商(例如 GPU 独立硬件供应商 (IHV))可以编写适用于 Android 的 Vulkan 驱动程序。原始设备制造商 (OEM) 只需为特定设备集成这些驱动程序即可。如需详细了解 Vulkan 驱动程序如何与系统进行交互、应如何安装特定于 GPU 的工具以及特定于 Android 的要求,请参阅实现 Vulkan。
应用开发者可以使用 Vulkan 来打造在 GPU 上执行命令的应用,大幅降低开销。与 EGL 和 GLES 相比,Vulkan 还可以更直接地映射到当前图形硬件中的功能,最大限度地降低驱动程序的出错概率,并减少开发者的测试时间。
如需了解 Vulkan 的常规信息,请参阅 Vulkan 概览或查看资源列表。
Vulkan 组件
对 Vulkan 的支持包含以下组件。

图 1. Vulkan 组件
组件名称 |
提供商 |
说明 |
Vulkan 验证层 |
Android(在 NDK 中) |
在 Vulkan 应用开发期间使用的库,用于查找应用在 Vulkan API 的使用方面的错误。在找出此类错误后,应移除这些库。 |
Vulkan 运行时 |
Android |
原生库 libvulkan.so 提供原生 Vulkan API。
Vulkan 运行时的大部分功能由 GPU 供应商提供的驱动程序实现。Vulkan 运行时会封装驱动程序、提供 API 拦截功能(针对调试和其他开发者工具)以及管理驱动程序与平台依赖项之间的交互。 |
Vulkan 驱动程序 |
SoC |
将 Vulkan API 映射到特定于硬件的 GPU 命令以及与内核图形驱动程序的交互。 |
有修改的组件
BufferQueue 和 Gralloc 支持 Vulkan:
- BufferQueue。BufferQueue 中的额外枚举值和方法以及
ANativeWindow
接口可让 Vulkan 运行时通过 ANativeWindow
连接到 BufferQueue。
- Gralloc。可选接口。通过它,Gralloc 可以了解是否能够将某种指定格式用于特定生产方/消费方组合,而无需分配缓冲区。
如需详细了解这些组件,请参阅 BufferQueue 和 gralloc。如需详细了解 ANativeWindow
,请参阅 EGLSurface 和 OpenGL ES。
资源
通过以下资源详细了解 Vulkan:
-
Vulkan 加载程序 (
libvulkan.so
),位于 platform/frameworks/native/vulkan
。其中包含 Android 的 Vulkan 加载程序,以及一些对平台开发者十分有用的 Vulkan 相关工具。
- 实现 Vulkan。旨在帮助 GPU IHV 编写适用于 Android 的 Vulkan 驱动程序,以及指导原始设备制造商 (OEM) 为特定设备集成这些驱动程序。该指南介绍了 Vulkan 驱动程序如何与系统进行交互、应该如何安装特定于 GPU 的工具以及特定于 Android 的实现要求。
- Vulkan Graphics API 指南。介绍了如何开始在 Android 应用中使用 Vulkan、Android 平台上的 Vulkan 设计指南、如何使用 Vulkan 的着色程序编译器以及如何使用验证层来帮助确保使用 Vulkan 的应用的稳定性。
- Vulkan 新闻:包含事件、补丁程序、教程以及更多与 Vulkan 相关的新闻报道。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-03-04。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-03-04。"],[],[],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."]]