Klepton 项目实现了在 Apple Vision Pro 上运行 Android ARM64 VR 应用程序的技术方案。[1] 该项目通过 klepton-ld 工具将 Android 本地库(.so 文件)转译为 Apple 兼容的库文件(.dylib 和 .framework),并配合运行时支持库(libklepton_bionic、libklepton_ndk 等)为应用提供 Android 系统接口映射。[1]
图形渲染方面,Klepton 项目采用了多层转译方案。[1] GLES 3.2 图形接口被转译至 ANGLE GLES 3.0 的 Metal 后端,而 Vulkan 则通过 MoltenVK 进行适配。[1] 该解决方案目前仅支持 Java-thin 应用类型,不支持包含 ART 虚拟机或 JVM 的应用。[1]
项目已克服技术难题,例如通过为每个库分配独立 TLS 槽位解决了 x18 寄存器冲突问题。[1] Beat Saber 应用已在 macOS 和 visionOS 上可用,而 Steam VR Link 功能目前仍在开发中。[1]
The Klepton project has developed a technical solution enabling Android ARM64 VR applications to run on Apple Vision Pro.[1] The approach translates Android native libraries (.so files) into Apple libraries (.dylib and .framework formats) through klepton-ld, while runtime support libraries such as libklepton_bionic and libklepton_ndk provide mappings for Android system interfaces.[1] Graphics APIs are converted to Metal backends, with GLES 3.2 translated to ANGLE GLES 3.0 and Vulkan translated through MoltenVK.[1]
The implementation currently supports only Java-thin applications, which do not use the Android Runtime (ART) or Java Virtual Machine (JVM).[1] A technical challenge involving x18 register conflicts has been resolved through per-library TLS slot patching.[1] The Beat Saber application is already functional on both macOS and visionOS, while Steam VR Link remains under development.[1]