
Minecraft 有两个版本线。Java 版是原汁原味的 PC 版,模组生态最丰富。基岩版(Bedrock)则是跨平台版本,手机和主机上跑的就是这个。两个版本的模组不互通,存档格式也不同。
如果你只有一台安卓手机,但想玩 Java 版的模组,怎么办?
官方的答案是:不行。
PojavLauncher 的答案是:行。
PojavLauncher 是什么
PojavLauncher 是一个在安卓(和越狱 iOS)上运行 Minecraft Java 版的启动器。GitHub 上 9000 多个 star。
它的核心能力是:在 ARM 架构的安卓设备上,跑起来 x86 架构的 Java 虚拟机,然后通过图形 API 转译运行完整的 Minecraft Java 版。
这不是一个「手机版 Minecraft」——它是真的在手机上跑 PC 版 Minecraft。你用的账号、你玩的版本、你装的 mod,和电脑上完全一样。

技术原理:黑魔法三件套
要在安卓上跑 Java 版 MC,PojavLauncher 用了三层技术。
第一层:OpenJDK。Minecraft Java 版需要 Java 运行环境。PojavLauncher 在安卓上运行了一个完整的 OpenJDK,通过 PRoot(用户空间 root 模拟)让 JVM 以为自己在标准 Linux 环境里。v3 版本用的是真 PRoot + BusyBox 环境,比 v2 版本的方案性能好很多。
第二层:gl4es。Minecraft 用的是 OpenGL(准确说是 LWJGL 封装的 OpenGL),但安卓手机的 GPU 只支持 OpenGL ES。gl4es 是一个 OpenGL 到 OpenGL ES 的转译层,把桌面版的 OpenGL 调用翻译成手机能理解的 OpenGL ES 指令。这层转译不是免费的,会带来一些性能损耗,但 gl4es 优化得不错,大部分场景能跑流畅。
第三层:输入映射。手机没有键盘鼠标(除非你连蓝牙的),PojavLauncher 提供了一套屏幕触控方案。屏幕上可以叠加虚拟摇杆和按钮,位置和大小都能自定义。也支持外接键鼠,甚至支持手柄。

这三层叠加在一起,就是在手机上跑 PC 游戏的基本套路。不优雅,但能跑。
实际体验
跑起来到底卡不卡?
这取决于你的手机性能。骁龙 8 系处理器跑 1.16 以下的版本基本能流畅,30-60 帧没问题。更新的版本(1.18+)对内存和 CPU 要求高一些,中端机会掉帧。
内存是关键瓶颈。Minecraft Java 版吃内存是出了名的,手机上分配 2-3GB 给 JVM 就差不多了。所以你最好有一台至少 6GB 内存的手机,不然系统会杀后台。
mod 支持方面,Forge 和 Fabric 都能用。但 mod 越多、越复杂,性能压力越大。建议在手机上玩轻量整合包或者原版+少量优化 mod。

一个实际的使用场景:你在通勤路上想继续玩昨天在电脑上开的世界。PojavLauncher 支持从云盘同步存档,或者直接把电脑上的存档文件夹传到手机上。位置和 PC 版一模一样,因为底层就是同一套文件系统。
支持的版本范围
PojavLauncher 支持的 MC 版本范围非常广——从最古老的 rd-132211(2009 年的早期测试版)到 1.21 的快照版,几乎涵盖 Minecraft Java 版的全部历史。
这也意味着你可以用它来玩一些远古版本。有些老玩家就是想回到 1.7.10 的黄金时代怀旧,PojavLauncher 完全可以满足。
Combat Test(Mojang 的战斗系统实验版本)也支持。
项目现状
这里要说一个不太好的消息。
PojavLauncher 已经被标记为 discontinued(停止维护)。项目的 README 里写着:「PojavLauncher has been discontinued and is no longer supported.」
它的继任者是 Amethyst-Android(AngelAuraMC/Amethyst-Android),由社区成员接手开发,使用了更现代的技术栈。
但 PojavLauncher 本身依然可以下载和使用。Google Play 上的版本还在,GitHub Releases 里的安装包也没下架。只是不会再有新的功能更新和 bug 修复了。

对于一个已经停止维护的项目来说,9000 star 说明了一件事:它在正确的时间做了正确的事。在 2018 到 2024 这几年里,PojavLauncher 是唯一一个真正能在手机上跑 Java 版 MC 的方案。无数玩家通过它第一次在手机上玩到了带有 Java 版 mod 的 Minecraft。
从 Boardwalk 到 PojavLauncher 再到 Amethyst
PojavLauncher 的故事始于另一个项目:Boardwalk。
Boardwalk 是 zhuowei 开发的最早的安卓 MC Java 版启动器,2015 年左右就有了。但 Boardwalk 支持的 MC 版本很有限(最高到 1.11.2),而且性能很差。
PojavLauncher 从 Boardwalk 的基础上发展而来。名字 Pojav 在俄语里是「出现」的意思——项目最初由俄语社区推动。后来国际团队接手,发展出了 v2 和 v3 两个大版本。v3 是目前的主力分支,使用 PRoot 方案,性能远超 v2。
现在接力棒传到了 Amethyst-Android。技术栈更现代,代码结构更清晰,但核心思路和 PojavLauncher 是一脉相承的——在不可能的设备上,运行不打算支持的软件。
社区的力量
PojavLauncher 的 wiki(pojavlauncher.app)是理解这个项目最好的入口。上面有详细的安装教程、常见问题排查、性能优化指南、自定义控制教程。
wiki 里的截图很多都是社区用户自己拍的——手机屏幕上运行 Minecraft 的实机画面,虚拟按键叠加在游戏画面上。你能看到不同手机型号上的实际效果,包括一些很冷门的国产手机。
Discord 社区有几千人活跃,新用户进去问问题,总有人帮忙。Crowdin 上有多语言翻译,覆盖了几十种语言。
一个纯社区驱动的项目,能做到这个程度,已经很了不起了。
手机游戏 PC 的边界
PojavLauncher 代表了一种很硬核的技术路线:不去重新适配,而是直接把整个 PC 运行环境搬到手机上。
这条路线的好处是兼容性极高——PC 版能干的手机就能干,因为底层就是 PC 版。坏处是性能损耗不可避免,对硬件要求高。
但这条路线的意义不在于让每个人都用手机玩 MC。它的意义在于证明了:通过软件层面的翻译和适配,ARM 设备运行 x86 生态的软件是完全可行的。这个思路在苹果的 Rosetta 2 上也有体现(把 x86 Mac 应用翻译成 ARM 版),只不过苹果用的是硬件级方案,PojavLauncher 用的是纯软件方案。
从技术角度来说,PojavLauncher 是一个令人尊敬的工程实践。它用一堆开源组件拼出了一个看起来不可能的东西,然后在几年内服务了上百万用户。
即使项目已经停止维护,它的代码和文档依然是学习移动端虚拟化和图形 API 转译的宝贵资料。
项目地址:https://github.com/PojavLauncherTeam/PojavLauncher
夜雨聆风