Mobile Easy Use 旨在为 AI 编码代理提供 Android 和 iOS 应用的运行时访问能力,基于 Frida 实现。它通过 MCP 协议让代理能够观察和控制移动应用,而不仅限于 UI 层。
用途
在复杂项目中,应用行为往往取决于运行时数据、配置、缓存和调用时序。源代码说明实现,而运行时探索揭示实际执行的分支、对象状态以及故障发生的位置。两者结合,为代理的编码决策提供证据。运行时观察贯穿编码循环:编码前研究与编码、验证技术方案、调查问题、编码后验证。
主要能力
- 检查原生对象和状态。
- 追踪和覆盖方法调用,包括临时修改配置、字段或方法返回值,之后可恢复。
- 控制 UI 并与运行中的应用交互。
- 作为增强的 UI 自动化测试工具:可结合 UI、截图和原生业务状态进行更深入断言;临时覆盖字段或方法返回值以模拟空数据、失败或特定配置分支;清晰诊断失败原因,连接实际方法调用、参数、返回值和状态变化。
- 提供 Skills 和 MCP 工具,支持生成和运行测试脚本。
- 通过 Observable Skill 以最小改动提升集成度(可选)。
- 支持将发现转化为 Presets(预设),方便复用。
使用方式
准备 Node.js 20+。Android 需要 ADB 和可用设备或模拟器;iOS 需要 macOS、Xcode 及其命令行工具,物理设备还需 iproxy 和为输入操作所需的 XCTest Runner 进行开发签名。
- 安装 Skills:在目标应用项目根目录运行命令,选择所有 Skills,按提示选择代理和安装范围。Skills 与 MCP 分开安装。
- 集成到应用:在目标应用项目中,让代理使用平台的 Integrate Skill。Integrate 会获取并验证 Release 制品,更新项目配置,并返回兼容的 MCP 启动命令。Android 集成一个自动启动 Runtime 的 AAR;iOS 嵌入桥接和 Runtime,MCP 连接时加载。集成范围应限于内部调试构建,然后在目标设备上构建并安装应用。
- 安装和配置 MCP:将 mobile-easy-use 添加到代理的 MCP 配置中,使用 Integrate Skill 返回的兼容 MCP 版本。使用 npx 获取并启动所选版本,无需单独全局安装。设置工作目录为目标应用项目根目录,以便 MCP 解析项目 Presets。代理和 MCP 需要共享本地文件系统访问权限。重新加载 MCP 配置,确认如 get_sdk_declarations 和 connect 等工具可见。新连接会检查应用 Runtime Release 与 MCP 版本的兼容性,不匹配时会建议调整。
- 启动探测或测试:集成后,构建包含 Mobile Easy Use Runtime 的应用调试版本并安装到目标设备或模拟器。连接设备,识别目标应用,描述问题即可启动 Probe。Probe 使用源代码和现有 Presets 生成调查,通过 MCP 连接应用,执行操作并收集相关证据,回答原始问题,无需编写探测脚本,并区分观察事实、基于源代码的解释和未验证行为。使用单独 Skills 生成和运行测试:Android 使用 to-android-test,iOS 使用 to-ios-test-script 和 to-ios-test。
适用场景
- AI 代理在编码过程中需要深入理解应用运行时行为。
- 验证技术方案假设。
- 调查和定位问题。
- 编码后验证结果,并将确认的预期转化为回归测试。
- 增强 UI 自动化测试,进行更深入的断言、场景控制和失败诊断。
限制
iOS 平台需要 macOS、Xcode 和命令行工具,物理设备还需要额外配置。集成应限于内部调试构建。部分操作依赖设备可用性,无设备时某些行为可能无法验证。兼容性需匹配 Runtime Release 与 MCP 版本。