Android поддерживает Vulkan — кроссплатформенный API с низкими накладными расходами для высокопроизводительной 3D-графики. Подобно OpenGL ES (GLES) , Vulkan предоставляет инструменты для создания высококачественной графики в реальном времени в приложениях. Преимущества использования Vulkan включают снижение нагрузки на ЦП и поддержку промежуточного языка бинарных данных SPIR-V .
Производители систем на кристалле (SoC), такие как независимые от графических процессоров поставщики оборудования (IHV), разрабатывают драйверы Vulkan для Android. OEM-производители интегрируют эти драйверы для конкретных устройств. Подробную информацию о том, как драйвер Vulkan взаимодействует с системой, как устанавливаются инструменты, специфичные для графического процессора, и требованиях, специфичных для Android, см. в разделе «Реализация Vulkan» .
Разработчики приложений используют Vulkan для создания приложений, которые выполняют команды на графическом процессоре со значительно меньшими накладными расходами. Vulkan также обеспечивает более прямое сопоставление с возможностями современного графического оборудования по сравнению с EGL и GLES, сводя к минимуму вероятность ошибок в драйверах и сокращая время тестирования разработчиками.
Общую информацию о Vulkan можно найти в разделе «Обзор Vulkan» или в списке ресурсов .
Компоненты Vulkan
Поддержка Vulkan включает следующие компоненты.

Рисунок 1. Компоненты Vulkan
| Название компонента | Поставщик | Описание |
|---|---|---|
| Слои проверки Vulkan | Android (в NDK) | Библиотеки, используемые в процессе разработки приложений Vulkan для поиска ошибок в использовании API Vulkan. После обнаружения ошибок использования API эти библиотеки удаляются. |
| Среда выполнения Vulkan | Android | Нативная библиотека libvulkan.so , предоставляющая собственный API Vulkan.Большая часть функциональности Vulkan Runtime реализуется драйвером, предоставляемым производителем графического процессора. Vulkan Runtime является оберткой над драйвером, обеспечивает возможности перехвата API (для отладки и других инструментов разработчика) и управляет взаимодействием между драйвером и зависимостями платформы. |
| Драйвер Вулкан | SoC | Преобразует API Vulkan в команды GPU, специфичные для конкретного оборудования, и обеспечивает взаимодействие с драйвером графики ядра. |
Модифицированные компоненты
BufferQueue и Gralloc поддерживают Vulkan:
- BufferQueue. Дополнительные значения перечислений и методы в BufferQueue и интерфейсе
ANativeWindowпозволяют среде выполнения Vulkan подключаться к BufferQueue черезANativeWindow. - Gralloc. Дополнительный интерфейс позволяет Gralloc определить, можно ли использовать данный формат для конкретной комбинации производителя/потребителя без выделения буфера.
Подробную информацию об этих компонентах см. в разделах BufferQueue и gralloc . Подробную информацию об ANativeWindow см. в разделах EGLSurfaces и OpenGL ES .
Ресурсы
Воспользуйтесь следующими ресурсами, чтобы узнать больше о Vulkan:
- Загрузчик Vulkan (
libvulkan.so) находится вplatform/frameworks/native/vulkan. Содержит загрузчик Vulkan для Android, а также некоторые инструменты, связанные с Vulkan, полезные для разработчиков платформы. - Реализация Vulkan . Предназначено для производителей графических процессоров, разрабатывающих драйверы Vulkan для Android, и OEM-производителей, интегрирующих эти драйверы для конкретных устройств. В нем описывается, как драйвер Vulkan взаимодействует с системой, как следует устанавливать инструменты, специфичные для графического процессора, и требования к реализации, специфичные для Android.
- Руководство по графическому API Vulkan . Содержит информацию о начале работы с Vulkan в приложениях Android, платформе рекомендаций по проектированию Vulkan для Android, использовании компиляторов шейдеров Vulkan и использовании слоев проверки для обеспечения стабильности приложений, использующих Vulkan.
- Новости Vulkan . Здесь вы найдете информацию о событиях, обновлениях, обучающих материалах и других новостях, связанных с Vulkan.