Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Vulkan
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Android obsługuje Vulkan, czyli interfejs API o niskim obciążeniu, który umożliwia tworzenie wydajnej grafiki 3D na różnych platformach. Podobnie jak OpenGL ES (GLES), Vulkan udostępnia narzędzia do tworzenia wysokiej jakości grafiki w czasie rzeczywistym w aplikacjach. Zalety korzystania z Vulkana to m.in. zmniejszenie obciążenia procesora i obsługa języka SPIR-V Binary Intermediate.
Dostawcy systemów na chipie (SoC), np. niezależni dostawcy sprzętu z procesorem graficznym, mogą pisać sterowniki Vulkana na Androida. Producenci OEM muszą zintegrować te sterowniki z poszczególnymi urządzeniami. Szczegółowe informacje o tym, jak sterownik Vulkan współpracuje z systemem, jak instalować narzędzia związane z GPU oraz jakie są wymagania dotyczące Androida, znajdziesz w artykule Wdrażanie Vulkana.
Deweloperzy aplikacji używają Vulkana do tworzenia aplikacji, które wykonują polecenia na karcie graficznej z znacznie zmniejszonym obciążeniem. Vulkan zapewnia też bardziej bezpośrednie mapowanie możliwości obecnego sprzętu do przetwarzania grafiki w porównaniu z EGL i GLES, co minimalizuje ryzyko wystąpienia błędów w sterowniku i skraca czas testowania przez programistów.
Ogólne informacje o Vulkan znajdziesz w artykule Vulkan – omówienie lub na liście Materiały dodatkowe.
Komponenty Vulkan
Obsługa Vulkan obejmuje te komponenty:

Rysunek 1. Komponenty Vulkan
Nazwa komponentu |
Dostawca |
Opis |
Warstwy walidacji Vulkan |
Android (w NDK) |
Biblioteki używane podczas tworzenia aplikacji Vulkan do znajdowania błędów w używaniu interfejsu Vulkan API przez aplikację. Po wykryciu błędów związanych z używaniem interfejsu API należy usunąć te biblioteki. |
Środowisko wykonawcze Vulkan |
Android |
Natywna biblioteka libvulkan.so , która udostępnia natywny interfejs Vulkan API.
Większość funkcji Vulkan Runtime jest implementowana przez sterownik dostarczony przez dostawcę GPU. Vulkan Runtime otacza sterownik, zapewnia funkcje przechwytywania interfejsu API (do debugowania i innych narzędzi dla deweloperów) oraz zarządza interakcją między sterownikiem a zależnościami platformy. |
Sterownik Vulkan |
SOC |
Mapuje interfejs Vulkan API na polecenia i interakcje procesora graficznego związane ze sprzętem za pomocą sterownika jądra. |
Zmodyfikowane komponenty
BufferQueue i Gralloc obsługują Vulkan:
- BufferQueue. Dodatkowe wartości i metody w interfejsie BufferQueue oraz
ANativeWindow
umożliwiają środowisku wykonawczemu Vulkan nawiązywanie połączenia z BufferQueue za pomocą interfejsu ANativeWindow
.
- Gralloc. Opcjonalny interfejs pozwala Grallocowi wykryć, czy dany format może być używany w przypadku konkretnej kombinacji producenta/konsumenta bez przydzielania bufora.
Szczegółowe informacje o tych komponentach znajdziesz w artykule BufferQueue i gralloc. Szczegółowe informacje o ANativeWindow
znajdziesz w artykule (EGLSurfaces i OpenGL ES).
Materiały
Aby dowiedzieć się więcej o Vulkan, skorzystaj z tych materiałów:
-
Vulkan Loader (
libvulkan.so
) na stronie platform/frameworks/native/vulkan
. Zawiera ładowarkę Vulkana na Androida, a także niektóre narzędzia związane z Vulkanem, które są przydatne dla deweloperów platform.
- Wdrażanie Vulkana.
Przeznaczone dla IHV dostawców GPU, którzy piszą sterowniki Vulkana na Androida, oraz dla producentów OEM, którzy integrują te sterowniki na konkretnych urządzeniach. Opisuje on sposób interakcji sterownika Vulkan z systemem, sposób instalowania narzędzi związanych z procesorem graficznym oraz wymagania dotyczące implementacji na Androidzie.
- Przewodnik po interfejsie Vulkan Graphics API. Zawiera informacje o tym, jak zacząć korzystać z platformy Vulkan w aplikacjach na Androida, jak używać kompilatorów shaderów Vulkan oraz jak stosować warstwy weryfikacji, aby zapewnić stabilność aplikacji korzystających z platformy Vulkan.
- Vulkan News. Zawiera wydarzenia, poprawki, samouczki i inne artykuły dotyczące Vulkana.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]