Skip to main content

SMA AutoUI

智能移动自动化 UI 框架 —— 面向社交媒体平台的 Android 设备自动化,融合 ADB 直达、视觉识别与 LLM 认知自愈能力。

📦 PyPI:https://pypi.org/project/sma-autoui/


🚀 快速开始

# 从 PyPI 安装
pip install sma-autoui

# 或从源码安装
pip install .

🌟 核心特性

特性 说明
✅ 多平台适配 10 个社交平台业务抽象(TikTok / 抖音 / 小红书 / 微博 / X / Threads / Instagram / Facebook / WhatsApp / 酷安)
✅ Session 复用 跨任务会话持久化与保活架构
✅ 视觉匹配 模板匹配下沉 Appium images-plugin(服务端 OpenCV + 自动缩放)+ OCR 文字定位,文字优先、图标兜底
✅ ADB 直达 困难页面(直播间 / SurfaceView)直接注入事件,绕开 W3C 限制
✅ 拟人化行为 点击抖动(jitter)、连点、随机等待、概率化交互
✅ AI 驱动 基于 pydantic-ai 的 Agent 编排 + 结构化输出 + 双通道模型(生成 / 判定)
✅ 自愈能力 UI 异常自动诊断与恢复,规则注册 / 淘汰闭环
✅ 离线诊断回放 回放夹具(ReplayHarness)复现线上 AI 调用 + 调用轨迹汇总(telemetry)

完整项目结构与各层模块职责,详见 🏗️ 系统架构。


📖 文档

全部文档位于 docs/ 目录。

文档 描述 目标读者
🏗️ architecture.md 系统架构、六层模块职责与依赖关系 开发者、架构师
🛣️ roadmap.md 演进路径与未来规划 管理者、开发者
⚠️ pitfalls.md 项目开发中的常见问题与解决方案 开发者
🛠️ appium-setup-guide.md Appium + ADB 完整环境搭建与验证 新成员、运维
💡 click-mechanisms.md ADB / Appium / W3C Actions 三种点击机制差异与选型 开发者
🤖 behavior-humanization.md 拟人化行为设计(jitter、随机等待、概率交互) 开发者
📋 scrcpy-server-guide.md scrcpy-server 服务启动 / 剪贴板获取 / 控制协议中文指南 开发者
📝 changelog/ 各版本变更日志与回归测试清单 全体

快速导航


💻 使用示例

from appium.webdriver.common.appiumby import AppiumBy
from sma_autoui.driver import Device, Driver
from sma_autoui.engine import TaskRunner

# 1. 初始化设备(ADB 连接 + 环境准备)
device = Device(device_name="172.25.2.20:5555", adb_port=5002)
device.initialize_env()

# 2. 创建驱动实例(门面,聚合 actions / locator / inspector / vision / browser)
driver = Driver(
    device=device,
    appium_url="http://localhost:4723",
    job_id="example_job",
    desired_caps={...},
    app_name="xhs",
    app_version="1.0.0",
    task_name="example_task",
)

# 3. 使用高级 API
element = driver.smart_find(
    locators=[(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().text("Follow")')],
    timeout=10,
    ai_recovery=True,          # 定位失败时触发 AI 诊断自愈
)
driver.tap_by_adb(x=500, y=800, jitter=8)   # ADB 直达 + 坐标抖动
driver.smart_swipe(direction="UP", degree="MIDDLE")

# 4. 任务重试、异常自愈与保活由 TaskRunner 统一处理
TaskRunner(driver=driver).run(task_func=my_flow, task_name="example_task")

🔧 从源码安装

git clone https://github.com/Fun-Fox/sma_autoui.git
cd sma_autoui
pip install -r requirements.txt
pip install -e .

📄 开源协议

MIT License


Built with ❤️ by FunFox

Metadata

Release files for sma-autoui 0.6.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sma-autoui 0.6.2
File Size Uploaded
sma_autoui-0.6.2.tar.gz 3.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for sma-autoui 0.6.2
File Interpreter ABI Platform
sma_autoui-0.6.2-py3-none-any.whl Python 3 none any Details

Total release size: 6.6 MB

Release files / sma_autoui-0.6.2.tar.gz

Download URL sma_autoui-0.6.2.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
5f3debb8677161adca4df04f75ea833b0869ede5e9602f9d61bfcb06654508ae
BLAKE2b-256 checksum
How to use checksums
5c1039f223d8a9086284fdc2ee8e155456aa1ce8bc6a44bc280d316f0ab75ff3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.9

Release files / sma_autoui-0.6.2-py3-none-any.whl

Download URL sma_autoui-0.6.2-py3-none-any.whl
Size 3.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
a8ec4b54f47a99a457d49eac976cacb1bacfad35c64b0455fa7ab5c96963a3b8
BLAKE2b-256 checksum
How to use checksums
b2c6178da6666e96346d826582b269691b0d1afe5a996331bd7c4438468fff6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.9

Release history Release notifications | RSS feed

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.9

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

This release

0.6.2 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page