Gomaton
用 Go 编写、真机运行的安卓 GUI 自动化 SDK
就是普通 Go
在 GoLand 里像写任何 Go 一样,自由混写标准库 / 第三方库 + 我们的 SDK,F7 一键编译、部署、运行到安卓真机,零环境折腾。
找图 · 控件 · OCR · YOLO
找色找图、控件树(UI 树)、文字识别(OCR)、目标检测(YOLO),一套 API 覆盖屏幕上看得见的任意 App。
跨机型 · 低延迟
走 injectInputEvent 低延迟多指注入,跨 ROM;识别与控制混合,不绑单一方案,自研薄栈。
端上推理 · 不联网
OCR(PP-OCRv5)与 YOLO 都是 ncnn 端上推理,识别在设备本地完成,不上传截图、不依赖网络。
单个原生二进制
SDK、标准库、第三方库、原生算法库全部编进同一个二进制、单运行时 —— 泛型 / 反射 / cgo 随你用,没有跨边界的别扭。
发布可混淆
一个开关经 garble 混淆:重命名标识符、加密字符串字面量(运行时解密),功能不变,逆向门槛显著提高。
一段代码看全貌
package main
import (
"log"
"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") // 按包名打开 App
// 控件:等到「WLAN」出现再点它
if o := uiacc.New().Text("WLAN").WaitFor(3000); o != nil {
o.Click()
}
// 找图 / 截图 / 取像素
log.Println("像素:", images.Pixel(10, 10))
motion.Home() // 回主页
}
写你自己的 Go,调用我们的能力 —— 编译成单个原生二进制,推到真机直接跑。