Horizon Android Vulkan Ports & APK Guide

Unlike PojavLauncher or Zalith, which run a full Java Virtual Machine + ANGLE/Zink OpenGL wrapper on your phone, Android ports of Horizon execute native aarch64 Rust machine code directly on Android's Vulkan API. Three MIT-licensed community repositories lead mobile development: Starling, Rayan-XOO/horizon, and GoyDevv/Horizon-Android.

Zero JVMCompiled aarch64/armv7 Rust + Vulkan
~2.2 GB RAMTypical active world footprint on 4 GB+ phones
3 Active ForksStarling, Rayan-XOO & GoyDevv compared
Backbone One 2nd Generation USB-C telescopic mobile controller for Android smartphones
All three Android Horizon ports detect USB-C telescopic controllers (Backbone One, GameSir, Razer Kishi) and Bluetooth X-Input pads, hiding touch buttons automatically.

Starling vs Rayan-XOO vs GoyDevv feature matrix

Pick the port that matches your setup workflow, target server version, and phone chipset.

CapabilityStarling (starling-client)Rayan-XOO/horizonGoyDevv/Horizon-Android
Package ID & Repostarling-client/starling (formerly Vasysik/horizon-android + JuanLuci/starling)dev.horizonlab.horizon (Rayan-XOO/horizon, active 4PDA community)com.goydevv.horizon (GoyDevv/Horizon-Android)
Latest Verified APKv0.8.0 (32.85 MB) + test-0.8.1-2 Preview (48.16 MB)horizon-0.4.7.apk (65.62 MB)Horizon-Android-v1.0.1 (39.43 MB)
Supported CPU ABIsarm64-v8a, armeabi-v7a, x86_64, x86arm64-v8aarm64-v8a, armeabi-v7a, x86_64, x86
PC Required for Setup?No PC required. Downloads temporary JVM on phone and prepares 26.3 registries in ~79sYes (once). Downloads ~525 MB in-app + requires ~4 MB PC-built horizon-derived.zipImports prepared game folders or .zip packs via built-in SAF file manager
Multiplayer VersionsJava Edition 26.3 servers (Microsoft, Ely.by & offline accounts; GrimAC movement modes)1.20.2 through 26.2 via bundled ViaHorizon + 26.3 nativeJava Edition 26.3 servers
Shaders & ModsIris/OptiFine shader translator, StarlingVisuals.zip, .hmod + on-phone .hnmod CompilePrebuilt Android .hnmod ABI 4 (entity_culling.hnmod, orbital.hnmod) + .hmod.hmod mods, 260 FPS ceiling mode, PowerVR Rogue 32-bit GL fallback
Touch & Input ExtrasEditable HUD, Free Direction / D-pad / Analog joystick, gyro, mouse captureMCPE/Bedrock touch layout, sneak tap toggle, Android TV horizon-keypad.jsonGoyControl 4-slot sequential macro buttons + full SAF read/write provider

Mobile GPU guide: Adreno, Mali, Xclipse & PowerVR

Mobile Vulkan drivers vary widely across SoC vendors. Match your phone's GPU to the right APK build and renderer toggle.

Mobile GPU FamilyRecommended Build & ModeVerified Behavior & Tuning
Qualcomm Snapdragon Adreno (610-830)Vulkan + Fast Opaque Pass ONBest mobile driver maturity. POCO F6 Pro (SD 8 Gen 2 / Adreno 740) prepares 26.3 in 79s and runs Complementary Shaders (Voxel Profile) at 59 FPS or MakeUp Ultra Fast at 87 FPS.
ARM Mali (G52, G57, G68, G77, G78, Immortalis)Starling test-0.8.1-2 or Vulkan CompatibilityInstall starling-preview-0.8.1-test2-arm64-v8a.apk if Mali-G57 crashes when switching apps (underlying handle is not available fixed in test2). Keep render scale at 75%-85% with shaders.
Samsung Exynos Xclipse (920 / 940 - S22/S24 FE/A55/A57)Rayan-XOO 0.4.6+ or Starling v0.8.0Rayan-XOO 0.4.6 and 0.4.7 resolve the Xclipse Vulkan pipeline startup crash reported on Galaxy S24 FE and A55/A57.
Imagination PowerVR (GE8320 / BXM) & 32-bit LegacyStarling test-0.8.1-2 or GoyDevv armeabi-v7aPowerVR GE8320/BXM hits strict Vulkan descriptor/shader slot limits; Starling test-0.8.1-2 trims shader bindings, while GoyDevv v1.0.1 includes a 32-bit GL fallback path.
Samsung Galaxy S24 Ultra smartphone displaying slim aluminum chassis for mobile Vulkan benchmarks
Phones with 8 GB to 12 GB RAM comfortably sustain 12-20 chunk view distances; on 4 GB RAM devices, cap view distance at 4-6 chunks so Android's low-memory killer leaves the ~2.2 GB engine intact.
Dual-fan Radeon graphics hardware illustrating modern Vulkan render pass architecture
Starling's Fast Opaque Pass batches terrain draw calls into fewer Vulkan command buffers, cutting CPU submission overhead on mid-range Helio G99 and Snapdragon 680 chips.

Interactive Android path & ADB command generator

Select your port, GPU, and storage layout to generate exact scoped-storage paths, SAF tips, and adb push commands.

Verified Android paths & GPU profile
# Verified Android Target Profile
Port & Package: dev.horizonlab.horizon (Rayan-XOO/horizon 0.4.7)
Active Folder:  /storage/emulated/0/Android/data/dev.horizonlab.horizon/files/
Saves Path:     /storage/emulated/0/Android/data/dev.horizonlab.horizon/files/saves/
Mods Path:      /storage/emulated/0/Android/data/dev.horizonlab.horizon/files/mods/
Shaders Path:   /storage/emulated/0/Android/data/dev.horizonlab.horizon/files/shaderpacks/
Mod Formats:    .hnmod (prebuilt aarch64 cdylib) + .hmod

# Recommended GPU Settings
Renderer Mode:  Vulkan + Fast Opaque Pass (ON)
Render Scale:   100% (or Auto shader profile in Starling)
Chunk Distance: 12-16 chunks (Adreno 650-830) / 8 chunks (Adreno 610)
Terminal & ADB commands
# 1. On PC (JDK 25 + Rust): generate horizon-derived.zip once from 26.3 server.jar
git clone -b android-port https://github.com/Rayan-XOO/horizon.git
cd horizon
cargo run --release -p horizon-prepare -- --prepare --server-jar ~/Downloads/server.jar
bash packaging/android/make_derived_pack.sh

# 2. Push horizon-derived.zip (~4 MB) to phone after launching app once
adb push target/android/horizon-derived.zip /sdcard/Android/data/dev.horizonlab.horizon/files/

Fixes 'No derived pack: put horizon-derived.zip in the app folder'. Rayan-XOO downloads ~525 MB in-app over Wi-Fi, then merges your 4 MB derived pack.

Gamepads for desktop and Android ports

Horizon desktop, Starling v0.8.0, and Rayan-XOO 0.3.7+ support Bluetooth and USB X-Input/D-Input controllers, automatically hiding touch buttons while you play.

8BitDo Ultimate 2C Wireless Controller

Hall-effect sticks and triggers with low-latency 2.4G dongle and Bluetooth for desktop Horizon and Android phones.

View on Amazon

GameSir Super Nova Hall-Effect Gamepad

Drift-free Hall sensors, swappable ABXY layout, and quiet face buttons tested across Windows, Linux, and Android.

View on Amazon

8BitDo Pro 2 Bluetooth Gamepad

Symmetrical dual-stick layout with X-Input, D-Input, and Android modes plus programmable rear hotbar paddles.

View on Amazon

GuliKit KK3 Max Wireless Controller

TMR electromagnetic sticks and 1000 Hz polling rate for high-refresh chunk exploration on desktop and mobile.

View on Amazon

Affiliate disclosure: As an Amazon Associate, horizonrust.wiki earns from qualifying purchases at no added cost to you.

Android Vulkan APK questions

ABI selection, RAM budgets, anticheat safety, and Android 14/15 storage rules.

Should I download arm64-v8a or armeabi-v7a for my Android phone?

Choose arm64-v8a on almost every phone or tablet with 4 GB+ RAM made since 2018. Only install armeabi-v7a on ultra-budget phones running a 32-bit Android OS build (common on entry-level 2 GB/3 GB MediaTek or Unisoc devices) where the arm64 APK reports 'App not installed as package appears to be invalid'.

How much free storage and RAM do Horizon Android ports need?

Keep at least 2.5 GB of free internal storage during initial asset extraction (~525 MB to 900 MB of prepared 26.3 assets plus shader caches) and at least 4 GB of total device RAM. Active worlds use roughly 2.2 GB of RAM at 6-8 chunks.

Can I play with a physical keyboard and mouse on Android tablets or DeX?

Yes. Both Starling and Rayan-XOO support Android pointer capture for physical USB/Bluetooth mice and full WASD + hotbar keyboard bindings. Rayan-XOO 0.4.7 also ensures the soft keyboard only opens when you explicitly tap a text box.

Does Horizon Android work on Android TV boxes?

Yes. Rayan-XOO/horizon supports Android TV d-pad navigation and custom key remapping through a horizon-keypad.json file placed inside the app's files directory.

Why do multiplayer servers with GrimAC flag some mobile clients, and how does Starling avoid it?

Strict Java Edition anticheats like GrimAC validate 8-direction WASD movement vectors and reject unconstrained analog thumbstick angles unless handled properly. Starling v0.8.0 provides explicit movement modes (Free Direction, D-pad, and Analog) so you can lock movement to vanilla-legal vectors on competitive servers.

How do I access /Android/data/ on Android 13, 14, or 15 without root?

Either switch Storage Location to /storage/emulated/0/Starling (default in Starling) or /storage/emulated/0/Horizon (added in Rayan-XOO 0.4.7), use GoyDevv's built-in DocumentsUI SAF provider in the system Files app, or push files from a PC over USB Debugging with adb push.