← 返回 Skills 市场
openlittlebear

Appium Android Bridge

作者 openlittlebear · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
59
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install appium-android-adb
功能描述
Read and control any Android app via Appium. Provides a persistent bridge daemon (bridge_daemon.py) with dump/tap/scroll/type/wait commands. Use when raw ADB...
使用说明 (SKILL.md)

Appium Android Bridge

Generic Appium bridge for any Android app. Reads screens as structured JSON, executes taps/scrolling/typing via accessibility service clicks (bypasses WebView touch filtering).

Quick Start

# Once per session (28s, starts Appium + daemon):
bash ~/.openclaw/workspace/skills/appium-android-adb/start_bridge.sh

# Then every action (~1-2s each):
python3 ~/.openclaw/workspace/skills/appium-android-adb/bridge_daemon.py dump
python3 ~/.openclaw/workspace/skills/appium-android-adb/bridge_daemon.py tap '{"text": "查询"}'
python3 ~/.openclaw/workspace/skills/appium-android-adb/bridge_daemon.py scroll '{"direction": "down"}'

Commands

All from ~/.openclaw/workspace/skills/appium-android-adb/. All return JSON.

dump — read the screen

python3 bridge_daemon.py dump

Returns:

{
  "ok": true,
  "package": "com.example.app",
  "activity": "...",
  "title": "...",
  "alerts": [{"text": "温馨提示"}],
  "buttons": [{"text": "查询", "id": "btn_search", "bounds": "[99,750][981,882]"}],
  "trains": [{"text": "...", "bounds": "...", "clickable": true}],
  "webview_contexts": ["NATIVE_APP"]
}
  • buttons[] — all clickable elements with text, id, bounds
  • alerts[] — dialogs/popups needing dismissal
  • trains[] — elements containing "次列车" (app-agnostic; rename for other apps)
  • title — page title if present

tap — click an element

python3 bridge_daemon.py tap '{"text": "查询车票"}'       # by text (substring match)
python3 bridge_daemon.py tap '{"text": "预订", "index": 0}' # first match
python3 bridge_daemon.py tap '{"id": "btn_submit"}'         # by resource-id

scroll — swipe the screen

python3 bridge_daemon.py scroll '{"direction": "down"}'               # normal
python3 bridge_daemon.py scroll '{"direction": "down", "distance": "short"}' # fine
python3 bridge_daemon.py scroll '{"direction": "up"}'                 # go back

Uses fast drag (100ms) — works best for WebView content.

type — input text

python3 bridge_daemon.py type '{"text": "上海"}'

wait — poll until element appears

python3 bridge_daemon.py wait '{"text": "提交订单", "timeout": 30}'

When to Use This

Use appium-android-adb when:

  • The app uses WebView (ADB taps are ignored)
  • You need structured screen reading (not screenshot-based)
  • You need reliable element clicking (accessibility service, not raw touch)
  • You're automating a hybrid app (native + WebView)

Do NOT use for:

  • Simple native-only apps where adb shell input tap works fine
  • One-off screenshots (use adb shell screencap)

Troubleshooting

Daemon died: Run start_bridge.sh again to restart. Device not found: Check USB connection: adb devices App not launching: The daemon attaches to the running app. Cold-start the app manually if needed: adb shell monkey -p \x3Cpackage> 1

安全使用建议
Review this carefully before installing. Use it only on a trusted machine and authorized test device, avoid sensitive apps, and do not run it in multi-user or untrusted local environments. The publisher should remove the broad Appium insecure flags, replace /tmp IPC with a private authenticated channel, document the persistent daemon and auto-launch behavior, and either make the bridge truly generic or clearly label it as targeting com.MobileTicket/12306.
能力标签
crypto
能力评估
Purpose & Capability
The stated purpose is a generic Appium bridge for any Android app, but the code hardcodes package com.MobileTicket, auto-launches it, includes 12306-specific comments and parsing, and the startup script references a 12306 skill path.
Instruction Scope
The documentation discloses dump/tap/scroll/type/wait commands, but it does not clearly bound use to authorized devices or sensitive app contexts, and it under-discloses automatic app launching, persistent daemon behavior, and predictable /tmp IPC.
Install Mechanism
There is no package install step or dependency installer; the skill relies on existing adb, Appium, Python Appium/Selenium libraries, and a connected Android device.
Credentials
Launching Appium with --allow-insecure all and --relaxed-security is broader than needed for the documented commands, and predictable /tmp command/response files allow other local processes to inject commands or read returned UI data.
Persistence & Privilege
The bridge starts a long-running daemon and Appium server, writes lock and IPC files in /tmp, auto-starts the daemon from normal command use, and can read UI state and inject taps, scrolls, and typing on a connected device.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install appium-android-adb
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /appium-android-adb 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial release of appium-android-adb skill. - Provides a persistent Appium bridge daemon for controlling any Android app. - Supports structured screen reading (JSON output) and reliable interactions (tap, scroll, type) via accessibility service. - Especially useful for automating WebView and hybrid apps where raw ADB does not work. - Includes commands: dump, tap, scroll, type, wait for robust automation workflows.
元数据
Slug appium-android-adb
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Appium Android Bridge 是什么?

Read and control any Android app via Appium. Provides a persistent bridge daemon (bridge_daemon.py) with dump/tap/scroll/type/wait commands. Use when raw ADB... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 59 次。

如何安装 Appium Android Bridge?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install appium-android-adb」即可一键安装,无需额外配置。

Appium Android Bridge 是免费的吗?

是的,Appium Android Bridge 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Appium Android Bridge 支持哪些平台?

Appium Android Bridge 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Appium Android Bridge?

由 openlittlebear(@openlittlebear)开发并维护,当前版本 v1.0.0。

💬 留言讨论