2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
Vulkan
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Android는 고성능 3D 그래픽을 위한 오버헤드가 낮은 크로스 플랫폼 API인 Vulkan을 지원합니다. OpenGL ES(GLES)와 마찬가지로 Vulkan은 앱에서 고품질의 실시간 그래픽을 만들 수 있는 도구를 제공합니다. Vulkan을 사용하면 CPU 오버헤드를 줄이고 SPIR-V 바이너리 중간 언어를 지원하는 등의 이점을 얻을 수 있습니다.
GPU IHV(GPU independent hardware vendors)와 같은 SoCs(system on chip vendor)는 Android용 Vulkan 드라이버를 작성할 수 있습니다. OEM은 구체적인 기기에 이러한 드라이버를 통합해야 합니다. Vulkan 드라이버가 시스템과 상호작용하는 방식, GPU 관련 도구의 설치 방법과 Android 관련 요구사항은 Vulkan 구현을 참고하세요.
애플리케이션 개발자는 Vulkan을 사용하여 GPU에서 명령어를 실행하고 오버헤드를 크게 줄여주는 앱을 만듭니다. 또한 Vulkan은 EGL 및 GLES보다 최신인 그래픽 하드웨어에서 볼 수 있는 기능에 관한 좀 더 직접적인 매핑을 제공하여 드라이버 버그 발생 확률을 최소화하고 개발자의 테스트 시간을 단축합니다.
Vulkan에 관한 일반 정보는 Vulkan 개요 또는 리소스 목록을 참고하세요.
Vulkan 구성요소
Vulkan은 다음과 같은 구성요소를 지원합니다.

그림 1. Vulkan 구성요소
구성요소 이름 |
제공업체 |
설명 |
Vulkan 유효성 검사 계층 |
Android(NDK) |
Vulkan 앱 개발 도중 앱의 Vulkan API 사용에 따른 오류를 찾기 위해 사용되는 라이브러리입니다. API 사용 오류를 찾아낸 후에는 이러한 라이브러리를 제거해야 합니다. |
Vulkan 런타임 |
Android |
네이티브 Vulkan API를 제공하는 네이티브 라이브러리, libvulkan.so 입니다.
Vulkan 런타임의 기능 대부분은 GPU 공급업체가 제공하는 드라이브로 구현됩니다. Vulkan 런타임은 드라이버를 래핑하고 API 가로채기 기능(디버깅 및 기타 개발자 도구용)을 제공하고 드라이버와 플랫폼 종속 항목 간의 상호작용을 관리합니다. |
Vulkan 드라이버 |
SoC |
커널 그래픽 드라이버를 사용하여 Vulkan API를 하드웨어별 GPU 명령어 및 상호작용에 매핑합니다. |
수정된 구성요소
BufferQueue 및 Gralloc이 Vulkan을 지원:
- BufferQueue. BufferQueue의 추가적인 enum 값 및 메서드와
ANativeWindow
인터페이스는 ANativeWindow
를 통해 Vulkan 런타임을 BufferQueue에 연결할 수 있게 해줍니다.
- Gralloc. 버퍼를 할당하지 않고 지정된 형식을 특정 생산자/소비자 조합에 사용할 수 있는지를 Gralloc이 탐색할 수 있게 해주는 선택적 인터페이스입니다.
이러한 구성요소에 관한 자세한 내용은 BufferQueue 및 gralloc을 참고하세요. ANativeWindow
에 관한 자세한 내용은 EGLSurfaces 및 OpenGL ES를 참고하세요.
리소스
Vulkan에 관한 자세한 내용은 다음 리소스를 참고하세요.
-
platform/frameworks/native/vulkan
의 Vulkan 로더(libvulkan.so
). Android의 Vulkan 로더는 물론 플랫폼 개발자에게 유용한 Vulkan 관련 도구까지 포함되어 있습니다.
- Vulkan 구현.
이러한 드라이버를 구체적인 기기에 통합하는 Android 및 OEM용 Vulkan 드라이버를 작성하는 GPU IHV를 대상으로 합니다. Vulkan 드라이버가 시스템과 상호작용하는 방식, GPU 관련 도구를 설치하는 방법과 Android 관련 구현 요구사항에 관해 설명합니다.
- Vulkan Graphics API 가이드. Android 앱에서 처음 Vulkan을 사용하는 방법, Android의 Vulkan 설계 가이드라인 플랫폼, Vulkan의 셰이더 컴파일러 사용, 그리고 유효성 검사 계층을 사용하여 Vulkan을 사용하는 앱의 안정성을 보장하는 방법에 관한 정보가 포함되어 있습니다.
- Vulkan 뉴스. 이벤트, 패치, 가이드 및 Vulkan 관련 뉴스 기사에 관해 다룹니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","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"]],["최종 업데이트: 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."]]