Gomaton
指南
API
GitHub
指南
API
GitHub
  • 前言

    • 快速开始
    • 能力速查
    • 工作原理
    • 硬件输入后端(ESP32 HID)
  • API 参考

    • motion - 触控 / 输入
    • images - 找图找色 / 截图
    • uiacc - 控件(UI 树)
    • device - 设备
    • app - 应用
    • ime - 输入法
    • ocr - 文字识别
    • yolo - 目标检测
    • files - 文件
    • storages - 键值存储
    • https - 网络
    • media - 媒体
    • system - 系统
    • utils - 工具

快速开始

Gomaton 让你在 GoLand 里用普通 Go 写脚本,一键编译、部署、运行到安卓真机。

前置

  • GoLand(或 IntelliJ IDEA)。
  • 一台安卓设备或模拟器,已开 USB 调试并授权(部分能力需 root 或激活的 shell 身份)。
  • 其余工具链(Go / NDK / garble)首次编译时 agov 会自动下载,无需手动装。

1. 安装插件

下载 agov-jetbrains-x.y.z.zip,在 GoLand:

设置 → 插件 → ⚙ → Install Plugin from Disk → 选中 zip → 重启

重启后底部会出现 Gomaton 工具窗,编辑器右键和 Tools 菜单里也有 Gomaton 子菜单。

2. 初始化项目

打开(或新建)一个空目录作为工程,右键 → Gomaton → 初始项目(等价于 agov init)。它会就地:

  • 生成 go.mod(引入 gomaton.dev/sdk);
  • 释放 SDK 空壳(供 IDE 补全);
  • 建好 resources/ 布局。

3. 写你的逻辑

编辑 main.go —— 这就是普通 Go,可以自由混写标准库 / 第三方库 + 我们的 SDK:

package main

import (
    "log"
    "time"

    "gomaton.dev/sdk/app"
    "gomaton.dev/sdk/images"
    "gomaton.dev/sdk/motion"
    "gomaton.dev/sdk/uiacc"
)

func main() {
    motion.Init()

    app.Launch("com.android.settings") // 打开设置
    time.Sleep(time.Second)

    if o := uiacc.New().Text("WLAN").WaitFor(3000); o != nil {
        o.Click() // 等到「WLAN」出现再点
    }

    log.Println("像素(10,10) =", images.Pixel(10, 10))

    motion.Home()
}

4. 运行

操作快捷键作用
运行F7编译 + 部署 + 运行,日志打到 Gomaton 工具窗
停止F8停止设备上的脚本
同步资源F10只推 libs / resources / 二进制,不重跑

按 F7,工具窗里会看到编译、部署、以及设备上脚本的实时日志,结尾 EXIT=0 表示正常结束。

设置

右键 → Gomaton → 其他设置:

  • adb 路径 —— 指定 adb 可执行文件(不填则自动探测)。
  • 目标 ABI —— 多选(arm64-v8a / x86_64 / x86);运行时也会自动按设备探测。
  • 设备序列号 —— 多设备时指定目标(不填则自动锁定唯一在线设备)。
  • 代码混淆(garble) —— 勾上后产物经 garble 混淆(标识符 + 字符串字面量),用于发布。

常见问题

  • 提示"设备离线,自动恢复 adb" —— 正常,agov 在自愈,几秒内会恢复继续跑。
  • 新电脑第一次编译很慢 —— 在自动下载 NDK(约 700MB)/ Go / garble,仅首次。
  • 编译报错点不动 —— 工具窗里的 文件.go:行 可点击跳转到源码。
上次更新: 2026/9/2 06:21
贡献者: hb
Next
能力速查