最近 Bun 官方正式宣布,下个版本 Bun 将正式支持 Android ,当然官方也说了,不要别把「能在 Android 手机上跑 Bun」误解成「能用 Bun 开发 Android App」,用 Bun 开发 Android App 毫无意义,它的定位更多是和 Node.js 的 Android 支持类似,本质是官方把 Bun 这个 JS 运行时移植到了 Android 平台

打开网易新闻 查看精彩图片

也就是,你可以在 Android 的 Termux 里直接装 Bun,然后在手机上跑各种 JS 项目了,包括 Claude Code ,因为 Bun 就是被 Anthropic 收购,而 Claude Code 现在就是基于 Bun 的 CLI Agent 。

❝ 其实在官方支持之前就有人干了这事,比如是 Termux 社区做的 bun-termux-loader ,通过在 proot-distro 里装 Ubuntu 再跑 Bun,然后通过各种 patch 让 Claude Code、OpenCode、Amp 等 Bun 打包的 AI Agent 在手机上跑。

另外,Claude Code 从 v2.1.113 版本开始就切换到原生可执行二进制,不再是纯 Node.js,这样导致之前 Node.js 的 Termux/Android 上支持 Claude Code 无法正常工作

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

而官方在 #50270 也表示了, Android 场景需要 bun 的后续支持

打开网易新闻 查看精彩图片

❝ 你说停留在旧版本 Claude Code 就可以了?NO 兄弟,旧版本有好几个大坑,覆盖了从 3 月到 4 月的版本:。

所以,全村的希望又回到了 Bun,而现在 Bun 官方开始支持 Android 后,前面这些麻烦步骤就都不需要了,官方 Android 支持落地后,你可以在 Termux 里安装 Bun,就可以更轻松地运行 Claude Code ,然后允许手机通过 adb 控制(比如第一次用电脑开启 adb tcpip 5555 + 无线调试,后续手机自己就能连 localhost ),之后 Claude Code 就可以通过 adb 控制你的手机,做到类似手机 Agnet 的场景。

打开网易新闻 查看精彩图片

当然,其他支持 Bun 的项目都可以跑,官方支持后,你只需要在 Termux 里直接 pkg install bun ,就是直接在手机跑比 Node.js 更快的 JS/TS 脚步或者服务。

另一个就是可以通过动态库的形式,直接把 Bun 运行时加载到你的 App 里,这时候你就可以在 Android App 里直接内置更高性能的 JS/TS 脚本和服务能力。

打开网易新闻 查看精彩图片

而这次 Bun 的 PR 实现是通过交叉编译来完成,具体就是新增 aarch64-linux-androidcode> 和 x86_64-linux-android Target :

  • 用主机 clang 21 + Android NDK r27c(API 28) 的 sysroot

  • Zig 负责处理 Bionic libc(Android 的 libc)头文件

  • 强制输出 PIE(Position Independent Executable),因为 Android 不允许非 PIE 二进制

❝ 类似于 bun build --compile --target=bun-linux-arm64-android your-script.ts

所以可以看出来,Bun 把 Android 当成一个特殊的 Linux(Bionic libc + SELinux 限制),用 NDK sysroot 交叉编译配合大量兼容 Patch 来让 Bun 可以跑在 Android 上,事实上其实就是一个特殊 Linux 场景支持。

不管怎么说,这都是一个好事,至少可用的骚操作支持多了,并且作为 Runtime ,Bun 的性能还是可以的,如果作为官方支持,用来本地替代 Node.js 也是一个不错的选择,至少速度上就会好不少,一些 TS Agent 也可以直接挪过来用。

链接

https://github.com/oven-sh/bun/pull/29675

https://github.com/oven-sh/bun/pull/29676