mcpField
O
Oh My Android

Oh My Android

本地服务
royan.se开发工具731 周前更新

关于 Oh My Android

Oh My Android 是用于在 Android 模拟器和手机上测试应用的原生 macOS 配套工具。它提供常驻控制面板、基于 dp 的布局检查和可选 MCP 服务,支持手动测试与 Agent 操作。

主要功能

  1. 01一键控制设备与显示设置
  2. 02布局测量和 TalkBack 审计
  3. 03检查应用数据与 SQLite
  4. 04截图、录屏和模拟器快照
  5. 05用于 UI 与设备控制的 18 个 MCP 工具

适用场景

  1. 01测试深色模式、大字体或 RTL 布局
  2. 02将 Compose 和 Views 布局与设计稿对照测量
  3. 03检查应用偏好设置或 SQLite 数据
  4. 04让编码 Agent 操作模拟器并查看日志

MCP 相关

内置 MCP 服务,向 AI Agent 提供截图、UI 树、点击、输入、设备设置、应用、日志和数据等工具。访问权限可设为关闭、只读或完全控制。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpboh-my-android-0.4.6.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Oh My Android 应用图标:一只惊讶的 Android 机器人

Oh My Android

测试 Android 应用在深色模式、大字体、RTL 和 TalkBack 下的表现:每项只需点击一次,无需运行 adb 命令。
一款免费的 Mac 原生 ADB GUI,停靠在 Android Emulator 旁边。也支持真机。

最新版本 Homebrew cask macOS 26 或更高版本,Apple 芯片 入选 Android Weekly #747 MIT 许可证 GitHub 星标

演示:Android Emulator 旁的 Oh My Android 面板切换深色模式、字体大小和阿拉伯语 RTL,随后模拟收到短信和来电
深色模式、字体大小、阿拉伯语 RTL、收到短信和来电。每项只需点击一次。

## 安装
brew install --cask ateymoori/tap/oh-my-android

或者下载来自 Releases 的已签名、经过公证的 zip · macOS 26 Tahoe+ · Apple silicon · 使用你已有的 Android SDK(详情)· ⭐ 点星支持,让更多 Android 开发者发现它

  • 🎛️ 近 50 项测试操作,始终可见。 深色模式、字体和显示大小、语言和区域设置(包括 RTL 和伪区域设置)、TalkBack、粗体文本、布局边界、显示点击、关闭动画、网络速度、GPS、来电和短信。每个图标都会显示设备的实际状态。
  • 📐 适用于任何应用的 dp 布局检查器。 将鼠标悬停在视图上,即可查看其大小和周围间距(单位为 dp),Compose 和 Views 均适用。将 Figma 导出文件拖放到上方,对比设计与实现。⇧⌘A 可为 TalkBack 停靠项编号,并标记缺失的标签以及小于 48 dp 的触控目标。
  • 🗄️ 无需 adb 即可检查调试版本。 读取 SharedPreferences 和 SQLite、清除数据、打开深层链接、拖放 APK 进行安装、重置权限。
  • 🪶 原生且轻量。 使用 SwiftUI,由事件驱动,不含 Electron,也不收集遥测数据。免费且开源(MIT)。

为什么不直接用 Android Studio? Studio 的设备 UI 快捷操作已支持一键切换深色模式、字体大小、 应用语言和 TalkBack(API 33+)。Studio 开启时可使用这些功能。Oh My Android 额外提供一个始终可见的面板, 适用于模拟器和手机,即使 Studio 关闭也能使用;还提供快捷操作不支持的切换项(粗体文本、 伪区域设置、布局边界、显示点击、动画),并可测量任何应用的 dp,而 Studio 的 布局检查器需要应用可调试。与 Studio、scrcpy 和 mobile-mcp 的比较:docs/COMPARISON.md。

🤖 正在使用 Claude Code、Codex 或 Cursor? 此应用内置 MCP 服务(18 个工具),让你的 Agent 可以 以 dp 为单位截取模拟器画面、点击,以及切换深色模式或 RTL。开始设置 →

Oh My Android 控制面板,包含外观、应用、截屏和网络操作布局检查器,显示 dp 测量结果和 TalkBack 顺序审查
控制面板布局检查器 + TalkBack 审查

功能 · adb 速查表 · 布局检查器 · AI Agent(MCP) · 故障排除 · 常见问题 · 参与贡献 · 网站

## 功能
你可以做什么
🎨 外观深色模式 · 字体大小(0.85× → 2×)· 显示大小 · 语言和区域设置,包括 RTL 和伪本地化 · 旋转
📦 你的应用(屏幕上显示的任何应用)重启 · 清除数据 · 打开深层链接 · 安装 APK(或将其拖到面板上)· 应用信息 · 重置权限 · 强行停止 · 卸载
📸 捕获截图并保存到剪贴板 · 录制带音频的屏幕 · 质量预设
🌐 网络模拟 LTE、HSDPA、3G、EDGE、GPRS 或 GSM 的速度和延迟 · 飞行模式 · Wi‑Fi · 移动数据
📐 布局和性能布局检查器 · 显示布局边界 · GPU 过度绘制 · GPU 性能分析条 · 显示点击 · 指针位置 · 关闭动画(用于 Espresso / Maestro)· 开发者选项
♿ 无障碍开启/关闭 TalkBack · 粗体文本 · 反转颜色 · TalkBack 顺序审核
🧭 导航和输入返回 · 主屏幕 · 最近任务 · 在当前焦点字段中输入文本 · 隐藏键盘
🛰️ 模拟(模拟器)GPS 位置:城市预设或纬度/经度 · 电池电量 · 充电状态 · 指纹 · 来电 · 收到短信
💾 快照(模拟器)保存干净状态,并在几秒内恢复

执行破坏性操作(清除数据、卸载、重置权限)前会先询问。

更新和要求

除了 Homebrew,你也可以从最新版本下载 zip 文件,解压后将 Oh My Android.app 移至 Applications。此应用已由 Apple 签名并公证。

**更新:**有新版本时,菜单栏图标上会显示一个圆点。点击菜单中的 更新至 …,查看更新内容,然后一键安装。应用绝不会未经询问就自行更新。应用每天检查一次;可在 设置 → 更新 中关闭。也可以使用 brew upgrade --cask oh-my-android。

**要求:**macOS 26 Tahoe 或更高版本、Apple 芯片,以及来自 Android Studio 的 Android SDK(或 brew install --cask android-commandlinetools)。应用会自动查找 SDK。如果你的 SDK 位于不常见的文件夹中,可在 设置 → Android SDK 中选择。

不用再输入 adb 命令

每个图标都能替代你原本需要输入或查找的命令:

任务adb 操作Oh My Android
在模拟器上开启深色模式adb shell cmd uimode night yes🌙 一键操作
增大字体adb shell settings put system font_scale 1.3Aa − / +
更改设备语言adb shell cmd locale set-device-locale sv-SE🌐 从菜单中选择
测试 RTL 布局adb shell cmd locale set-device-locale ar-EG🌐 “العربية (RTL)”
降低网络速度(3G / EDGE)adb emu network speed edge + adb emu network delay edge选择配置
模拟 GPS 位置adb emu geo fix 18.0686 59.3293选择城市
为 UI 测试关闭动画3 × adb shell settings put global …_scale 0一键操作
显示布局边界adb shell setprop debug.layout true + 一次系统刷新调用一键操作
清除应用数据找到软件包,然后执行 adb shell pm clear <package>🗑 一键操作
截图adb exec-out screencap -p > shot.png📷 已保存并复制
开启 TalkBackadb shell settings put secure enabled_accessibility_services …一键操作
打开深层链接adb shell am start -a android.intent.action.VIEW -d "myapp://…"粘贴并打开

布局检查器

冻结屏幕,像在 Figma 中一样测量。支持 Jetpack Compose 和传统 Views。

布局检查器:悬停在视图上可查看其 dp 尺寸和彼此之间的距离

  • 将鼠标悬停在任意元素上,即可查看其 dp 尺寸。点击一个元素,再悬停在另一个元素上,即可查看两者之间的距离 (同级元素之间的间距,以及父元素内部的内边距)。
  • 8 dp 网格、取色器(十六进制值,按 ⇧⌘C 复制)和估算的 sp 字号。
  • 设计稿叠加层:将 Figma PNG 导出文件拖到窗口中,选择 1× / 2× / 3× 或适合宽度,设置 不透明度或使用差值混合,并用方向键微调位置。逐像素比较设计稿和实现效果。
无障碍审计

在布局检查器中按 ⇧⌘A。每个屏幕阅读器焦点停留点都会按近似的 TalkBack 顺序标上编号,并显示 TalkBack 播报的内容以及问题列表:未标注的按钮、没有内容描述的图像,以及小于 48 × 48 dp 的触控目标。

数据检查器

浏览任意可调试应用的 SharedPreferences(键、类型、值)和 SQLite 数据库(表、前 500 行), 并进行搜索。它使用 adb shell run-as,与 Android Studio 使用的访问方式相同,因此发布构建仍保持封闭。此工具为只读,不会更改设备上的任何内容。

AI Agent(MCP)

Oh My Android 内置了一个 MCP 服务,因此你的 AI 编码 Agent 可以查看并操控模拟器:截屏、读取以 dp 为单位的 UI 树、点击和输入文字、切换深色模式或 RTL、读取 logcat 和应用数据库。Agent 可以构建界面、运行应用、查看结果,并自行修复问题。

AI Agent 设置:关闭、只读或完全控制,以及每个 Agent 的设置命令

将 Oh My Android MCP 服务添加到 Cursor 在 VS Code 中安装 Oh My Android MCP 服务

这些按钮使用 Homebrew 路径 /opt/homebrew/bin/ohmyandroid-mcp。如果通过 zip 安装,请使用下方菜单栏中的设置方式。

**一步完成设置:**菜单栏图标 → AI Agents → Set Up…,选择你的 Agent,然后点击 Copy(或 Add to Cursor / Add to VS Code)。也可以手动设置:

claude mcp add --scope user oh-my-android -- ohmyandroid-mcp   # Claude Code
codex mcp add oh-my-android -- ohmyandroid-mcp                 # Codex CLI
gemini mcp add --scope user oh-my-android ohmyandroid-mcp      # Gemini CLI
{ "mcpServers": { "oh-my-android": { "command": "/Applications/Oh My Android.app/Contents/MacOS/ohmyandroid-mcp" } } }

此 JSON 可用于 Cursor、Claude Desktop、Windsurf、Gemini CLI 和其他 Agent(VS Code 使用 "servers")。 Homebrew 会将 ohmyandroid-mcp 添加到你的 PATH。如果通过 zip 安装,请使用上方的完整路径。

其他添加方式:

  • Claude Code 插件: /plugin marketplace add ateymoori/oh-my-android,然后运行 /plugin install oh-my-android@oh-my-android
  • **Claude Desktop 扩展:**从最新版本打开 oh-my-android-<version>.mcpb
  • **MCP Registry:**登记为 io.github.ateymoori/oh-my-android

**由你掌控:**菜单栏图标 → AI Agents → Off、Read only 或 Full control。服务会在每次调用时检查权限,因此更改会立即生效。可能导致数据丢失的工具会标记为破坏性操作,Agent 会先征求你的同意。

分组工具
👀 查看screenshot(缩放至 1 px = 1 dp)· get_ui(含引用标识的精简 UI 树)· accessibility_audit
👆 操作tap(按引用标识、文本或 x,y 点击)· swipe · type_text · press_key
📱 设备list_devices · get_device_state · set_device_settings:深色模式、字体缩放、显示大小、区域设置 / RTL、屏幕方向、TalkBack、动画、Wi‑Fi、飞行模式、网络速度、GPS、电池
📦 应用list_apps · open_app(包名或深层链接,并报告冷启动时间)· manage_app · install_apk · logcat
🗄️ 数据read_preferences · query_database(在副本上执行只读 SQL)
🧪 模拟器emulator_action:指纹、来电、短信、保存 / 加载快照

现成的提示词:accessibility_review、ui_matrix(深色模式、大字体、RTL、伪区域设置)和 debug_crash。

试着这样询问你的 Agent:

  • “截取模拟器屏幕,并检查此界面在深色模式下的效果。”
  • “打开应用,进入设置,在深色模式、字体缩放 2 和阿拉伯语下检查界面。修复出现的问题。”
  • “点击保存时应用会崩溃。重现问题、读取崩溃信息并修复。”
  • “检查登录界面的 TalkBack 无障碍支持,并在代码中修复问题。”

**专为模型打造:**所有位置都以 dp 为单位,与布局代码一致。输出是精简文本:UI 树比原始 uiautomator XML 小约 10 倍,全部 18 个工具定义总共约占 3k 个 token。此服务通过 stdio 支持 MCP 2026-07-28 及更早版本(2024-11-05 至 2025-11-25),无需依赖,也不需要网络。

隐私与安全

  • 🔒 无分析、无遥测、无需账户。 应用自身唯一的网络请求是检查更新:每天一次,从此仓库的 GitHub releases 读取一份小型动态。不会发送任何关于你或设备的信息。可在 Settings → Updates 中关闭。
  • 只有在你选择安装时,更新(Sparkle)才会安装;且更新必须使用此项目的 EdDSA 密钥和相同的 Developer ID 签名。
  • 只与自己的 Android SDK 中的 adb 通信。你输入的文本在传到设备前会进行 shell 引号转义。
  • 重新加载和退出应用时,Data Inspector 中的数据库副本都会被删除。
  • MCP 服务仅在 AI Agent 启动时运行,且只具有你允许的访问权限。它读取的内容(屏幕、UI、日志、应用数据)会发送给你的 Agent,再由 Agent 发送给其模型提供商。
  • 使用 Developer ID 签名,启用强化运行时,并经 Apple 公证。

发现漏洞?请参阅 SECURITY.md。

故障排除

  • 找不到 adb: 在 Settings → Android SDK 中选择你的 SDK,或设置 ANDROID_HOME。
  • Agent 提示没有设备: 启动模拟器或连接手机,然后让 Agent 运行 list_devices。
  • Agent 无法启动 ohmyandroid-mcp(zip 安装): 只有 Homebrew 会将其添加到 PATH。请使用完整路径 /Applications/Oh My Android.app/Contents/MacOS/ohmyandroid-mcp。
  • Homebrew 提示 tap 不受信任: Homebrew 6 及更高版本会要求你信任第三方 tap。完整命令 brew install --cask ateymoori/tap/oh-my-android 只会信任此 cask。若要使用短名称,请先运行 brew trust --cask ateymoori/tap/oh-my-android。
  • Agent 提示“Access is Off”: 菜单栏图标 → AI Agents → Read only 或 Full control。

常见问题

Oh My Android 免费吗?

是的。它基于 MIT 许可证免费开源。

它能取代 Android Emulator 或 Android Studio 吗?

不能。它是一个配套工具,通过你已有的 Android SDK 控制 Google 的模拟器和手机。它不包含模拟器或 SDK。

它能用于真实的 Android 手机吗?

可以,通过 USB 或 Wi‑Fi adb 连接。只有仅适用于模拟器的功能(GPS、电池、通话、SMS、快照、网络速度、屏幕录制)需要模拟器。

它支持 Jetpack Compose 吗?

支持。布局检查器和无障碍审计会通过 uiautomator 读取 Compose 语义树,与读取 Views 的方式相同。

它适用于哪些 AI Agent?

任何支持通过 stdio 使用 MCP 的 Agent:Claude Code、Claude Desktop、Codex CLI、Cursor、VS Code (GitHub Copilot)、Windsurf、Gemini CLI、JetBrains AI、Zed 等。应用无需保持打开;Agent 需要时会启动服务。

如何在 Android Emulator 中开启深色模式?

点击面板中的 🌙 图标。也可以通过 adb 执行 adb shell cmd uimode night yes(执行 no 可关闭)。

如何在 Android Emulator 中测试 RTL 布局?

从 🌐 菜单中选择“العربية (RTL)”或其他 RTL 语言,也可以选择伪区域设置(ar-XB、en-XA),以发现硬编码字符串和镜像错误。也可以通过 adb 执行 adb shell cmd locale set-device-locale ar-EG。

如何在 Android Emulator 中模拟慢速网络?

从网络菜单中选择一个配置(LTE、HSDPA、3G、EDGE、GPRS、GSM)。面板会同时设置速度和延迟,效果与 adb emu network speed edge 和 adb emu network delay edge 相同。

有没有适用于 Claude Code、Codex 或 Cursor 的 Android MCP 服务?

有。ohmyandroid-mcp 随应用一同提供。你的 Agent 可以截取 dp 尺寸的屏幕截图、读取 UI 树、点击、输入文字、切换深色模式、字体大小或 RTL,并读取 logcat。请参阅 AI Agent(MCP)。

有 npx 或 uvx 软件包吗?

没有。该服务是一个无需运行时环境的原生二进制文件;Homebrew 会将 ohmyandroid-mcp 放入你的 PATH。

支持 Windows 或 Linux 吗?

目前不支持。这是一款使用 SwiftUI 构建的 macOS 原生应用。

为什么它不在 Mac App Store 上架?

Mac App Store 应用必须在 App Sandbox 中运行,而沙盒应用无法启动 adb。 Homebrew 和 GitHub 发布版本则由 Apple 签名并公证。

为什么要求 macOS 26 或更高版本?

该面板使用了 Liquid Glass 及其他 macOS 26 Tahoe 新增的 API。

## 从源代码构建
brew install xcodegen
git clone https://github.com/ateymoori/oh-my-android.git && cd oh-my-android
xcodegen generate
open OhMyAndroid.xcodeproj

需要 Xcode 26。本地构建使用临时签名,因此无需 Apple Developer 账户。

架构
Sources/
  App/        entry point, AppDelegate (host actions), Settings, assets
  Core/       no UI, no feature knowledge
    Shell/    ShellRunning: non-blocking Process runner, stopped on timeout or cancellation
    Android/  AndroidSDK, ADBClient, DeviceTracker (adb track-devices), UI hierarchy, app data
    SQLite/, Imaging/
  Features/   one small type per capability, registered in FeatureCatalog (Foundation only)
  MCP/        ohmyandroid-mcp: stdio MCP server built on Core and Features, shipped inside the app
  State/      AppModel (composition root), DeviceStore, FeatureStore, inspector stores
  Windows/    FloatingPanel, emulator window docking, tool windows
  UI/         SwiftUI; FeatureCell renders any feature from its protocol

依赖方向单一:UI → State → Features → Core。功能通过 ADBClient 协议与设备交互,并通过 HostActions(文件选择器、剪贴板、Finder)与 Mac 交互,因此每个功能都是一个小型值类型。使用 Swift 6 语言模式、严格并发检查,零警告。

协议控件示例
ToggleFeature开/关图标深色模式、TalkBack、Wi‑Fi
BatchReadable (附加项)在一次共享的 adb shell 往返中读取状态所有 settings / getprop 功能
StepperFeature带 − / + 的弹出框字体大小、显示大小
ChoiceFeature菜单语言、网络速度、电池
ActionFeature点按一次截屏、旋转、强制停止
TextActionFeature带文本框的弹出框深层链接、输入文本、短信

**能耗:**不会进行轮询。设备变化来自 adb 的 track-devices 流。选择设备、执行操作后,以及指针返回面板时,都会通过一次批处理 adb shell 调用读取功能值。仅在模拟器运行且面板可见时,停靠功能才使用 1 Hz 计时器。

应用和菜单栏图标由代码绘制:Scripts/make-icon.swift。

路线图

  • 对比模式:并排显示两台设备、镜像输入、像素差异对比
  • 在面板窗口中嵌入模拟器屏幕
  • 在数据检查器中支持 DataStore(.preferences_pb)
  • MCP:启动和停止模拟器、录制屏幕

有想法?提交功能请求。 添加功能只需编写一个小型 Swift 结构体:请参阅 CONTRIBUTING.md。


⭐ 如果 Oh My Android 为你节省了时间,请为此仓库点星。
星标能帮助其他 Android 开发者发现它,也能表明值得开发新功能。
如需接收每个新版本的通知,请点击 Watch → Custom → Releases。

在 GitHub 上为 Oh My Android 点星

许可证

MIT © 2026 Royan AB。

Android 是 Google LLC 的商标。Oh My Android 与 Google 无关联,也未获其认可。 Android 机器人是根据 Creative Commons 3.0 Attribution License 中所述条款,复制或修改自 Google 创作并分享的作品。


由瑞典 🇸🇪 的 Royan AB 制作
Oh My Android 网站 · royan.se

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。