Solo · MIT · Open-Source Tooling独立 · MIT · 开源工具
gridbot — black-box QA
Python · ADB · PaddleOCR · alpha (from source)
An Android automation toolkit for designers and QA, built to work exactly where the standard tools don't — inside custom rendering engines and third-party games that UIAutomator and Appium can't see into. 一个面向策划与 QA 的 Android 自动化工具包,专门针对标准工具失效的场景——自定义渲染引擎、第三方游戏,那些 UIAutomator 和 Appium 看不进去的地方。
$ pip install -e ".[ocr]" ▸ capture ✓ ▸ input ✓ ▸ ocr ✓ paddle ▸ navigator ✓ ▸ recorder ✓ › ready_state: idle _
The Problem要解决的问题
Game UIs render into a single canvas, so the accessibility tree most automation relies on is empty. UIAutomator and Appium see nothing to click. Designers and QA are left tapping through repetitive checks by hand.
游戏 UI 渲染进一整块 canvas,所以多数自动化依赖的无障碍树是空的。UIAutomator 和 Appium 找不到可点的东西。策划和 QA 只能手动一遍遍点重复的检查。
The Approach解决思路
Drive the device the way a person does — see the screen, read it, act on it. Capture frames over ADB, find elements with OCR instead of the view tree, then navigate and record flows as reusable scripts.
像人一样操作设备——看屏、读屏、再动手。通过 ADB 抓帧,用 OCR 而非视图树找元素,再把流程导航和录制成可复用脚本。
🔧 The Build🔧 程序实现
gridbot is a modular package — capture · input · ocr · navigator · recorder · state — so each piece can be used on its own or composed into a full flow. capture and input talk to the device over ADB; ocr wraps PaddleOCR to locate on-screen text; navigator walks YAML state graphs; recorder captures a session into a replayable script. It ships as an alpha (0.1.x), MIT-licensed, installed from source with pip install -e ".[ocr]" — not yet on PyPI.
gridbot 是一个模块化的包——capture · input · ocr · navigator · recorder · state——每个模块都能单独用,也能组合成完整流程。capture 和 input 通过 ADB 与设备通信;ocr 封装 PaddleOCR 来定位屏上文字;navigator 走 YAML 状态图;recorder 把一次会话录成可回放脚本。目前是 Alpha(0.1.x),MIT 协议,从源码安装(pip install -e ".[ocr]"),暂未发布到 PyPI。
🎯 Why a Designer Built It🎯 为什么是策划来做
The tool comes straight out of the day job: a designer who needs to verify economy and progression behaviour across builds, but can't get engineering time for one-off QA scripts. Packaging it as a clean, importable API was a deliberate choice — the point is that the next designer or tester can pick it up without a build pipeline.
这个工具直接来自日常工作:一个需要在不同版本间验证经济与成长表现、却很难拿到工程排期写一次性 QA 脚本的策划。把它打包成干净、可直接 import 的 API 是刻意的——目的就是让下一个策划或测试不用搭构建环境就能直接用。