Material Design · Android Green

安卓自动化助手

基于 Rust + ADB + OpenCV 的安卓设备自动化学习框架。通过视觉模板匹配与流程编排,理解移动端自动化测试核心原理——仅限合法教育场景。

⚙️
系统设置
自动化测试入口
🌐
浏览器
页面元素定位
📷
相机
截图采集
📁
文件管理
模板资源

用途

面向学生、测试工程师与自动化爱好者的开源教育项目:在不改 APK 的前提下,用 ADB + 计算机视觉演示安卓设备的程序化操控。

学习目标

理解 ADB 指令、截图流水线、模板匹配置信度,以及多步骤流程的状态机设计。

适用场景

UI 自动化测试教学、毕业设计演示、自有设备效率脚本、OpenCV 图像识别实验。

不适用

商业外挂、灰产刷单、批量养号、破解应用、窃取数据——本项目明确拒绝支持。

使用边界

技术中立,用途决定合法性。仅在自有或书面授权的测试设备上运行;不收集隐私、不改第三方 APK、不为违法需求提供技术支持。

核心能力

分层架构:流程引擎调度「截图 → 匹配 → 点击 → 等待」,与设备层 / 视觉层解耦。

交互演示实验室

以下演示均为浏览器内纯前端模拟,帮助理解自动化流程逻辑。不会连接真实设备,不会执行任何 ADB 命令。

演示 1:手机 UI 自动点击流程

模拟按预设顺序自动点击应用图标,展示 tap 动画与步骤高亮。

⚙️
设置
🌐
浏览器
📷
相机
📁
文件
等待开始...
演示 2:模板匹配置信度仪表

点击「扫描屏幕」模拟 OpenCV matchTemplate 过程,观察置信度变化。

屏幕截图预览区
匹配置信度0.00%

模板: btn_confirm.png · 方法: TM_CCOEFF_NORMED · 阈值: 0.85

演示 3:多步骤流程编辑器执行

编辑自动化步骤列表,点击执行观察状态机逐步推进。

    就绪
    演示 4(进阶):ADB 日志 · ROI 选区 · 重试配置

    ADB 命令日志模拟

    $ 等待命令...

    ROI 区域选择器

    拖拽绘制 ROI 矩形 · 当前: 未选择

    重试与超时配置

    技术栈

    三大支柱协同,构成完整的安卓自动化流水线。

    Rust ADB OpenCV tokio TOML / YAML 流程配置
    // 简化流水线
    loop {
        let frame = adb.screencap()?;
        let (x, y, conf) = opencv.match_template(&frame, &template)?;
        if conf >= threshold { adb.tap(x, y)?; flow.advance()?; }
    }

    快速上手

    前置:Rust toolchain、Android SDK Platform Tools(adb)、OpenCV 4.x;设备开启 USB 调试。

    git clone https://github.com/Cuishaoyang99/Android-auto.git
    cd Android-auto
    cargo build --release
    ./target/release/android-auto --config flows/demo.toml
    1. USB 连接手机,执行 adb devices 确认在线
    2. 截取目标按钮小图,保存为模板(如 templates/btn_ok.png
    3. 编写流程配置,设置匹配阈值(建议 0.85+)后运行并查看日志

    常见问题

    Q: 可以用于游戏自动化吗?

    不可以。游戏自动化属于外挂范畴,违反服务协议且可能违法。本项目仅面向合法测试与教育场景。

    Q: 需要 root 权限吗?

    不需要。标准 USB 调试权限即可。本项目不依赖也不鼓励 root。

    Q: 为什么选 Rust 而不是 Python?

    Python 生态更易上手,但 Rust 在性能、部署体积与类型安全方面更适合作为系统编程教学案例。两者原理相通。

    Q: 模板匹配和 OCR 哪个更好?

    模板匹配对固定图标高效;OCR 适合文字按钮但更慢。本项目聚焦模板匹配以控制教学复杂度。

    Q: 如何报告安全问题?

    请通过 GitHub Security Advisory 私下联系维护者,勿公开披露可被滥用的细节。

    开始探索

    源码与文档开源,欢迎用于合法教育与测试实践。