Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

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 的支持包含以下组件。

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 相关的新闻报道。