Tutorial
在 Android 上运行 Go —— 一次性下载后即可设备本地运行
在你的 Android 手机上运行 Go:一次性添加可选的 Go 包,此后便可在设备本地执行你的代码。 能运行什么、它用来做什么,以及诚实的边界。
Go 的工具链以桌面形态著称,所以在手机上运行它听起来不太可能。PocketCode 用一个可选的 Go 包让它成为现实:
下载一次,从此以后你的 .go 文件就在设备上运行 —— 无需服务器。
添加一次包,之后本地运行
Go 没有内置于应用中,所以它以一个语言包形式到来,你只需下载一次(约 38 MB,在 设置 → 编译器和运行时 → 额外的语言运行时 中)。它通过 Yaegi Go 解释器运行。之后,它就和内置语言
一模一样:打开一个 .go 文件,点击 Run,它就在本地执行。
- 使用标准库的 Go 程序 —— 切片、映射、结构体、
fmt.Println—— 都在设备上运行。 - 输出和错误会流入一个真正的控制台。
- 一旦装好包,执行就在设备上进行,不会有任何东西离开设备。
它擅长什么
- 学习 Go —— 在路上完成官方教程和练习。
- 编写脚本与算法练习 —— 快速的小程序、数据结构、面试刷题。
- 测试代码片段 —— 勾勒一个函数,立即看它运行。
编辑器带来了 Go 语法高亮和内置格式化器(参见**代码编辑器指南**), 让在手机上书写它始终保持舒适。Go 没有语言服务器:gopls 是原生程序,而 Google Play 不允许应用下载原生代码。
诚实的边界
- 通过解释器运行,而非完整的
go build。 这个包非常适合学习、脚本和练习 —— 它不是用来编译大型多包 二进制文件的那套完整生产级 Go 工具链。实际上这意味着:只有标准库,一次一个文件,没有go get,也不支持带go.mod的项目。 - 默认没有网络。 Go 作为 WebAssembly 模块运行:除非你在带参数运行中打开允许 WASM 引擎访问网络,否则它无法建立网络连接。
- 一次性下载。 与内置语言不同,Go 需要先装好它的包;之后就在设备上运行。
- 手机规模。 对小程序很棒;繁重的构建应当放在桌面上。
在这些边界之内,它就是货真价实的 Go,在你的手机上运行。
阵容的一部分
Go 是 PocketCode 在设备上运行的 16 种语言和文件类型之一 —— 应用内置了 JavaScript、 TypeScript、C、 Python、Ruby、 PHP、Java 和 Kotlin —— 外加像这个一样的可选包(Lua 和 Rhai 也是)。查看**完整阵容**。
添加一次包,你的手机就能在设备上运行 Go。
PocketCode 已在 Google Play 上架。获取 PocketCode,在你自己的设备上试用它。
本文背后的工具
代码编辑器