Vulkan 是新型的跨平台 3D 圖形 API,旨在盡可能減少裝置圖形處理硬體與遊戲間的抽象化情形。雖說 Vulkan 是 Android 的主要低階圖形 API,可取代 OpenGL ES,但 Android 仍支援 OpenGL ES,只是我們不再積極開發相關功能。與 OpenGL ES 相較,Vulkan 具有下列優點:
- 更有效率的架構,圖形驅動程式的 CPU 負擔較小
- 全新的最佳化策略,可提升 CPU 效能
- OpenGL ES 未提供的全新圖形處理功能,例如無繫結 API 和光線追蹤
Vulkan 適用於 Android 7 (API 級別 24) 以上版本。此外,凡是搭載 Android 10 (API 級別 29) 以上版本的 64 位元 Android 裝置,皆可支援 Vulkan 1.1。就目前使用中的 Android 裝置而言,有 85% 都支援 Vulkan。Android 基準設定檔會為支援 Vulkan 的裝置定義最低需求的功能組合。
Vulkan 有助於打造外觀與效能俱佳的遊戲,而且能夠完整發揮新型圖形處理硬體的潛力。在相容的裝置上,Vulkan 可供 Android UI 轉譯架構使用。Unity 和 Unreal 遊戲引擎的現行版本都選擇 Vulkan 做為相容 Android 裝置的預設轉譯器。ANGLE 專案也以 Vulkan 為基礎,導入與 OpenGL ES API 相容的實作項目。
開始使用
C/C++
如要瞭解如何在 Android 上的 C/C++ 遊戲引擎中使用 Vulkan,請參閱開始在 Android 上使用 Vulkan。
此外,原生開發套件 (NDK) 說明文件也提供一般 Vulkan 章節,供非遊戲開發人員參考,內容涵蓋下列主題:
- 可提升效能的著色器編譯器
- 用於 Vulkan 程式碼偵錯的驗證層
- 可自訂功能的 Vulkan 擴充功能
- 定義裝置需求的 Android 基準設定檔
遊戲引擎
關於 ANGLE
Vulkan 是 Android 與 GPU 互動的首選介面。Android 15 以上版本包含 ANGLE,可做為在 Vulkan 上執行 OpenGL ES 的選用層。改用 ANGLE 可將 Android OpenGL 實作項目標準化,提升相容性,在某些情況下還能提升效能。
如要使用各種 Android 15 以上裝置,透過 ANGLE 測試 OpenGL ES 應用程式的穩定性和效能,請使用下列兩個 adb 指令為套件啟用 ANGLE。將「package-name」替換為要測試的套件。
adb shell settings put global angle_gl_driver_selection_pkgs package-name
adb shell settings put global angle_gl_driver_selection_values angle
這些設定會在裝置重新啟動後保留。如要停用 ANGLE,請使用下列指令:
adb shell settings delete global angle_gl_driver_selection_pkgs
adb shell settings delete global angle_gl_driver_selection_values
透過應用程式資訊清單選擇使用 ANGLE
在 Android 17 以上版本中,開發人員可以在應用程式的資訊清單中新增中繼資料標記,要求 ANGLE 做為 GLES 驅動程式。這無法保證系統會使用 ANGLE,但會發出「偏好」使用 ANGLE 做為 GLES 驅動程式的信號。如果無法使用 ANGLE,系統會改用 GPU 供應商的 GLES 驅動程式。
<application android:appCategory="game">
<meta-data android:name="com.android.graphics.driver.prefer_angle" android:value="true" />
</application>
Android ANGLE on Vulkan 時程說明

回報 ANGLE 問題
如果您遇到任何 ANGLE 問題,請透過問題追蹤工具回報。