在 Android 上运行十来种语言的代码 —— 设备端运行、离线可用
PocketCode 在你的 Android 设备上运行真正的编程语言,而不是在远程服务器上。安装后即刻可离线使用五种语言 —— Python、JavaScript、C、Ruby、PHP —— 另有约六种可作为可选语言包获取。
大多数在手机上"运行代码"的方式,其实都悄悄把代码送到了别处 —— 云端运行器、远程沙箱、某个网站的服务器。在信号中断之前,或者在你并不介意代码离开设备之前,这都没什么问题。PocketCode 反其道而行:它在设备本身上执行真正的语言,所以运行一个脚本就像打开一条笔记一样本地。
下面是完整的全貌:哪些能运行、哪些即刻可用、哪些需要一次性下载。
五种语言,安装后即刻就绪
这些语言随应用一起打包。无需下载、无需账户、无需联网 —— 安装 PocketCode,打开一个文件,点击 Run:
| 语言 | 在设备端运行的内容 |
|---|---|
| Python | 完整的 CPython 3.11,附带完整标准库 |
| JavaScript | 真正打包的 Node.js 运行时 |
| C | 设备端的 C 编译器,编译并运行你的代码 |
| Ruby | 真正的 Ruby 解释器 |
| PHP | 真正的 PHP 解释器 |
在这之上,HTML、Markdown 和 JSON 可获得即时的本地预览和渲染 —— 无需运行时。于是"写一个脚本、搭一个页面、看一些数据"这套日常三件套,在你打开应用的那一刻就能用,无论是在飞机上还是在没有网络的地方。
想深入了解其中某一种?我们写了一篇完整指南,讲**在 Android 上运行 Python** —— CPython 如何在本地执行、标准库涵盖了哪些内容,以及它诚实的局限(没有 pip,所以它是一个用于编写脚本和学习的环境,而不是数据科学工具栈)。
更多语言,只需一次下载
除了打包的五种之外,PocketCode 还提供可选的语言包。你只需下载某个包一次,从此这门语言就会像内置语言一样在设备端离线运行。目前可用的语言包:
Go · TypeScript · C# · C++ · Lua —— 外加 Rhai,一种 Rust 风格的脚本语言(不是 rustc)。
这样一来,你能在同一个编辑器、同一部手机上、无需服务器介入而执行的语言总数达到了大约十一种。有些包是解释器(Go 通过 Yaegi 运行,而不是完整的 go build),有些是完整的编译器(C++ 通过 Clang),因此针对每种语言的指南会精确说明每一种究竟能运行什么。还有几种 —— 包括真正的 Rust 工具链、Swift 和 Dart —— 已在路线图上,但尚不可用;在它们正式发布之前,我们不会把它们计算在内。
为什么"设备端运行"才是关键所在
在本地运行并不是一个技术上的注脚 —— 它改变了一部手机能成为什么:
- 无需联网即可使用。 每一种打包的语言,以及每一个安装后的语言包,都能完全离线运行。这一点在移动设备最闪光的场景里尤为重要:通勤路上、飞行途中、信号时断时续、新兴市场的网络环境。
- 你的代码归你所有。 没有任何东西被送到第三方运行器上去执行。网络访问默认关闭,并由一个设置项来控制。
- 没有什么需要组装。 无需引导一个终端环境,无需手动编译工具链。运行时已经在那里;你只管按下 Run。
- 它是即时的。 没有远程容器的冷启动 —— 执行在设备上立即开始。
环绕它的编辑器
运行器只是故事的一半;你还想把代码写好。每一种语言都接入同一个**桌面级编辑器:由 LSP 支持的自动补全与 IntelliSense、TextMate 语法高亮、设备端格式化、多光标编辑、编程符号栏,以及真正的代码导航。输出会流入一个真正的控制台 —— print/console.log、堆栈跟踪、退出码,一应俱全 —— 而对于任何偏向命令行的场景,旁边还有一个内置终端**。
它是什么,不是什么
坦白地界定范围,能让期待保持诚实:
- 非常适合编写脚本、学习一门语言、算法练习、自动化、原型开发,以及在远离办公桌时运行真正的代码。
- 它不是一个完整的原生构建集群。繁重的计算以解释器的速度运行,而依赖庞大原生生态的运行时(想想 Python 的 C 扩展包)只能停留在每种语言随设备打包提供的范围之内。
在这些界限之内,它确实是一个装进口袋的多语言运行时 —— 而在 Android 上,很少有别的东西能如此本地地运行这么多种语言。
一部手机,十来种语言,全部在你手中的设备上执行。
在 Android 上运行代码:快速解答
可以在 Android 上运行代码吗? 可以——真正的语言,就在手机本身上。其中五种是内置的,从一开始就可离线使用(Python、JavaScript、C、Ruby、PHP)。
可以运行哪些语言? 内置的这五种,外加作为可选包的 Go、TypeScript、C#、C++ 和 Lua——总共约十一种。
需要电脑或服务器吗? 不需要——一切都在设备端离线运行,不上传任何东西。
需要 Termux 吗? 不需要——运行时是内置的;无需安装或手动编译。
可以在手机上编译吗? 可以——C 在设备端编译并运行;C++ 通过一个可选的 Clang 包。
运行代码能离线工作吗? 能。每一种内置语言,以及每一个下载后的语言包,都能完全离线运行,网络访问默认关闭。
PocketCode 即将登陆 Google Play。加入预注册,在你自己的设备上运行你所选择的语言。
代码编辑器