跳转到内容
返回首页
Tutorial

在 Android 上运行 Go —— 一次性下载后即可设备本地运行

在你的 Android 手机上运行 Go:一次性添加可选的 Go 包,此后便可在设备本地执行你的代码。 能运行什么、它用来做什么,以及诚实的边界。

更新于:
1 min
作者 Pelayo Naredo
在 Android 上运行 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,在你自己的设备上试用它。

本文背后的工具

代码编辑器

准备好试用 PocketCode 了吗?

下载应用,开始用手机编程。