Klepton: JITなしでAndroid VR APKをApple Vision Proで実行
新しい互換レイヤーがAndroid ARM64 VRアプリをネイティブのAppleバイナリに変換し、Beat SaberをVision ProとmacOSで実行可能に——JITは不要。

Kleptonは、Android ARM64 VRアプリケーションをApple Vision ProとmacOSで実行することを目指す新しいオープンソースプロジェクトです。これは、Androidの.soライブラリをロード可能なAppleの.dylibおよび.frameworkライブラリに変換し、それをKleptonランタイムにリンクすることで実現します。このプロジェクトは現在、Javaシンなアプリケーションのみに焦点を当てています——ARTもJVMもありません。
グラフィックスについては、GLES 3.2はベンダー版のANGLE GLES 3.0(Metalバックエンド付き)に変換され、VulkanはMoltenVKに変換されます。ランタイムは、Androidシステムライブラリ(bionic、NDK、JNI)とOculus VR Platform(ovrp)関数の再実装を提供し、すべてARKit、GameController、AVAudioEngineなどのAppleフレームワークで支えられています。
最も厄介な部分の1つは、x18レジスタの処理です。AndroidとmacOSの両方がx18を予約していますが、多くの古いAndroidアプリは依然としてそれを使用しており、macOSはコンテキストスイッチ時にx18をゼロにします。Kleptonはすべてのx18使用をパッチし、代わりにライブラリごとのTLSスロットを使用するようにします。
Kleptonはまた、mmapを使用して.soファイルをランタイムでロードおよびパッチできますが、これはJITが許可されているmacOSでのみ実際に役立ちます。一部のアプリケーションは、LuaJITやV8などのスクリプトランタイムを使用する場合、JITを必要とします。
現在、Beat SaberはmacOSとvisionOSで軽微なグラフィック問題を伴いながら動作しています。Steam VR Linkと一般化/ビルドツールの改善はまだ進行中です。
JIT不要でAndroid ARM64 VR APKをApple Vision Proで実行!
ディスカッション
0 件のコメント
最初のコメントを投稿しましょう。