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)などのシステム オン チップ(SoC)ベンダーは、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 Runtime |
Android |
ネイティブの Vulkan API を提供するネイティブ ライブラリ、libvulkan.so 。
Vulkan Runtime の機能の大部分は、GPU ベンダーが提供するドライバによって実装されます。Vulkan Runtime はドライバをラップして、デバッグや他のデベロッパー ツール用の API インターセプト機能を提供し、ドライバとプラットフォームの依存関係の間のインタラクションを管理します。 |
Vulkan Driver |
SoC |
Vulkan API を、ハードウェア固有の GPU コマンドと、カーネル グラフィックのドライバとのインタラクションにマッピングします。 |
変更されたコンポーネント
BufferQueue と Gralloc が Vulkan に対応するようになりました。
- BufferQueue。BufferQueue にある追加の列挙値およびメソッドと、
ANativeWindow
インターフェースを使用することで、Vulkan Runtime は ANativeWindow
を介して BufferQueue に接続できます。
- Gralloc。任意のインターフェースで、Gralloc がバッファを割り当てることなく特定のプロデューサーやコンシューマーの組み合わせに所定のフォーマットを使用できるかどうかを特定できます。
これらのコンポーネントの詳細については、BufferQueue と gralloc をご覧ください。ANativeWindow
の詳細については、EGLSurface と OpenGL ES をご覧ください。
リソース
Vulkan の詳細については、次のリソースをご利用ください。
-
platform/frameworks/native/vulkan
にある Vulkan ローダー(libvulkan.so
)。Android の Vulkan ローダーだけでなく、プラットフォーム デベロッパーに役立つ Vulkan 関連のツールも含まれています。
- Vulkan の実装。Android 用 Vulkan ドライバを作成する GPU IHV と、特定のデバイスに対し Vulkan ドライバを統合する OEM を対象としています。Vulkan ドライバとシステムの相互作用、GPU 固有のツールのインストール方法、Android 固有の実装要件について説明します。
- Vulkan Graphics API ガイド。Android アプリでの Vulkan の使用開始、Android の Vulkan の設計ガイドライン プラットフォーム、Vulkan のシェーダー コンパイラの使用、Vulkan を使用したアプリの安定性確保に役立つ検証レイヤの使用に関する情報が記載されています。
- Vulkan ニュース。イベント、パッチ、チュートリアル、Vulkan 関連のニュース記事などを網羅しています。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-02 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-03-02 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."]]