HN 日本語サマリー

← 一覧へ戻る
プログラミング

Apple Vision ProでAndroid ARM64 VR APKを実行する

Run Android ARM64 VR APKs on Apple Vision Pro (github.com)

156 pointsby LorenDB51 コメント

要約

このプロジェクト「Klepton」は、Apple Vision Pro上でAndroid ARM64 VR APKを実行可能にするものです。JIT(Just-In-Timeコンパイル)は不要で、AndroidのライブラリをAppleのdylibおよびframeworkライブラリに変換してKleptonランタイムにリンクします。グラフィックスはGLES 3.2をANGLE GLES 3.0に、VulkanをMoltenVKに翻訳します。現在、Beat SaberはmacOSとvisionOSで動作し、Steam VR Linkは開発中です。

全文翻訳

Apple Vision ProでAndroid ARM64 VR APKを実行する、JIT不要! klepton-ldはAndroidの.soライブラリをロード可能なAppleの.dylibおよび.frameworkライブラリに変換し、Kleptonランタイムにリンクします。Kleptonは現在、Javaベースのアプリケーションのみ(ART、JVMなし)に焦点を当てています。グラフィックスでは、GLES 3.2はベンダー提供のANGLE GLES 3.0(Metalバックエンド付き)に翻訳され、VulkanはMoltenVKに翻訳されます。 ┌─────────────────────────────────────────────────────────────────┐ │ GUEST (翻訳されたMach-O、命令バイトはほとんど変更なし) │ │ libil2cpp · libunity · libunityopus · libmain · burst · ... │ └─────────────────────────────────────────────────────────────────┘ ↕ klepton-ld内のKleptonランタイムに解決されたインポート ┌─────────────────────────────────────────────────────────────────┐ │ libklepton_bionic libc/libm/libdl/pthread/liblog → libSystem │ │ libklepton_ndk ALooper · ANativeWindow · ASensor · AAsset │ │ libklepton_jni 仮想JavaVM / JNIEnv │ │ libklepton_ovrp ovrp_* 再実装 │ │ ... │ └─────────────────────────────────────────────────────────────────┘ ↕ フロントエンドプラットフォーム(`mains`)とOS固有機能 ┌─────────────────────────────────────────────────────────────────┐ │ MoltenVK (Vulkan → Metal) ANGLE (GLES 3.0) │ │ Compositor Services · ARKit · GameController · AVAudioEngine │ └─────────────────────────────────────────────────────────────────┘ AndroidとmacOSはどちらもx18を予約していますが、古いAndroidアプリケーションの多く(多数)は依然としてx18を使用しており、macOSはコンテキストスイッチ時にx18をゼロクリアします。x18の使用はすべてklepton-ldによってパッチされ、代わりにライブラリごとのTLSスロットが使用されるようになります。Kleptonはmmapを使用して実行時に.soファイルをロードしてパッチする機能も持っていますが、これはJITが実際に許可されているmacOSでのみ非常に役立ちます。スクリプティングランタイム(LuaJIT、V8、その他)が期待するものを利用する場合、一部のアプリケーションはJITを必要とする可能性が高いです。 ビルド 完全なガイドについてはBUILDING.mdを参照してください。簡単なバージョン: brew install pkg-config sdl3 apktool # ホスト依存関係 apktool d -f -o beatsaber beatsaber.apk # APKを提供します。BUILDING.mdを参照してください make check # 完全な回帰テスト クイック実行スクリプト: ./build_run_viewer.sh # macOS Beat Saberフロントエンドをビルドして実行 ./build_run_vpro.sh # Vision Pro Beat Saberフロントエンドをビルドして実行 ./build_run_slink.sh --shell --view # macOS Steam VR Linkフロントエンド(WIP) ステータス Beat SaberはmacOSとvisionOSで軽微なグラフィックの問題とともに動作しており、Steam VR Linkと一般的な汎用性/ビルドツールの改善はまだWIPです。