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.7.5

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.7.5
File Size Uploaded
sma_autoui-0.7.5.tar.gz 3.3 MB Details

Built distribution (wheel)

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

Total release size: 6.6 MB

Release files / sma_autoui-0.7.5.tar.gz

Download URL sma_autoui-0.7.5.tar.gz
Size 3.3 MB
Tags Source
SHA-256 checksum
How to use checksums
5ce2fe1fac8484e19c9060257c154291127d6924d5534a8fda1f34c1a1778856
BLAKE2b-256 checksum
How to use checksums
7367b64599881a7d1614dcaa50d404c77214051d2418f7b7670993c6b8c7da4f
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.7.5-py3-none-any.whl

Download URL sma_autoui-0.7.5-py3-none-any.whl
Size 3.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6dc5de184ce3d7831fad0714a215bdc61bd91e071d34b52912f1efcbed5a5ad1
BLAKE2b-256 checksum
How to use checksums
64db6b209aba0512b4a40fff3464a2ef44f2b89e985f0c8f607ce935c157da1c
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

This release

0.7.5 This release

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

0.6.2

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