文档
EmuLabZip 的全部功能,每项一篇指南:从第一次启动,到命令行,再到面向 AI 助手的 MCP 服务器。
快速开始
安装、连接第一台模拟器,并解决常见问题。
- 快速开始从全新安装到几分钟内读取应用日志的入门指南,涵盖安装 EmuLabZip、准备平台工具、启动设备、各个工具概览和常用键盘快捷键。
- Android说明 EmuLabZip 如何通过 ADB 主机协议连接 Android 模拟器和真机,包括可用设置、收集的数据来源、设备状态和使用提示。
- iOS Simulator介绍 EmuLabZip 如何通过 xcrun simctl 连接 iOS 模拟器、收集哪些数据、如何应对繁忙的统一日志,以及目前的使用限制。
- 设备:模拟器介绍 Devices 视图以及 avd、sim 和 snapshot 命令,如何创建、启动、停止、清除和删除模拟器,并管理快照,同时说明哪些操作需要 --yes。
- 故障排除按症状整理的故障排除指南,涵盖设备和模拟器不显示、日志、截图、网络、存储、崩溃、追踪、控制、插件和 MCP 等常见问题的原因与解决办法。
检查你的应用
日志、布局、存储、崩溃、可读的堆栈、各类框架和 Web 视图。
- 日志介绍日志查看器如何在同一张表中跟踪 Android 的 logcat 和 iOS 的统一日志,包括过滤器、阅读与暂停、导出以及缓冲区上限。
- 布局与无障碍介绍 Layout 视图如何用截图和视图树显示屏幕上的视图,以及基于同一棵树的无障碍审计规则、色盲模拟、命令行与 AI 助手的用法。
- Storage介绍 Storage 工具如何浏览所选应用的文件,并就地打开 SQLite、偏好设置、Realm、Core Data 等常见格式,以及对应的命令行用法。
- 更改应用的数据说明如何在设备上更改应用的真实数据,包括可编辑的文件类型、命令行用法、每次编辑的安全步骤、撤销方式,以及不向 MCP 开放的限制。
- 崩溃介绍 Crashes 工具如何列出设备记录的崩溃、原生崩溃和 ANR,展示堆栈、事实与建议,说明报告来源、阅读方法、提示和演示应用。
- 可读的堆栈说明如何用 mapping.txt、source map 和 dSYM 把发布构建中被混淆的堆栈还原为可读形式,包括版本匹配、文件保存位置和命令行用法。
- 框架内部介绍 EmuLabZip 如何识别应用使用的框架,并借助 Flutter、React Native、Jetpack Compose 和 SwiftUI 各自的工具查看其内部。
- React Native 状态在 React Native 开发版应用运行时读取它的实时状态,包括 Redux、React Query、React context 和自定义 store,并用 --watch 跟踪 Redux action 引起的变化。
- 应用中的网页像 Chrome DevTools 一样读取混合应用中的 WebView:列出页面、查看控制台、运行 JavaScript,并在 Network 视图中查看页面发出的请求。
性能
CPU、内存、泄漏、追踪、能耗、启动时间和预算。
- 性能Performance 工具在打开期间对所选应用和设备采样,并以实时图表显示最近两分钟的 CPU、内存、帧率、卡顿帧和电池数据。
- 内存Memory 工具显示所选应用的内存去向,并让你对比两个时刻来找出增长的部分;还支持导出 Android 和 iOS 模拟器的堆转储,并可通过命令行使用。
- 在堆转储中查找泄漏EmuLabZip 可以自己读取 Android 的 .hprof 堆转储,无需其他工具,列出疑似泄漏、保持对象存活的路径和占用内存最多的对象。
- 追踪Traces 工具记录系统和应用在几秒钟内的行为,整合 Perfetto、simpleperf 和 Instruments 三种官方工具,并把输出保存在同一个库中,帮你找出变慢的原因。
- 能耗测量应用在你使用期间一段时间内的能耗:Android 上给出以 mAh 估算的用量、唤醒锁和网络字节数,iOS 模拟器上给出 CPU 时间和热状态。
- 应用启动耗时以每次相同的方式测量应用打开所需的时间,并重复多次让中位数有意义;支持冷启动、温启动和热启动,可用于桌面端、CLI、MCP 和 CI。
- 预算与基线在 emulabzip.toml 中写下一次运行允许消耗的上限,emulabzip ci 会在超标时让运行失败;还可以与之前的会话基线对比,发现性能回退。
网络
抓取、模拟和修改请求;GraphQL、gRPC、WebSocket、回放和分析事件。
- 网络Network 工具是内置的调试代理,用只存在于你电脑上的证书颁发机构解密 HTTPS,列出每个请求的标头、正文和耗时,无需修改你的应用。
- 模拟响应与断点用规则在不改动服务器的前提下改变应用收到的响应:自己应答、延迟、让请求失败,或在断点处暂停并手动编辑,规则在代理中生效。
- 网络规则:文件、其他服务器与契约介绍四个改变请求应答方式的规则动作:用本地文件应答、转发到另一台服务器、按 OpenAPI 文件检查响应、运行脚本,以及如何串联规则。
- 规则脚本规则脚本是沙箱化的 WebAssembly 小程序,可以检查请求或响应并决定如何处理,例如添加标头、隐藏字段、自行应答,必须先批准其确切的字节才会运行。
- 网络条件测试应用如何应对缓慢、高延迟、丢包或断开的网络;代理位于设备发送的一切内容之间,因此可以塑造链路,并提供多个预设和自定义数值。
- GraphQL在 Network 中,GraphQL 请求会以其所请求的内容命名,并显示查询和变量,这样一长串 POST /graphql 请求也能一目了然,批量请求同样适用。
- gRPC 与 protobuf在 Network 中按所调用的方法显示 gRPC 调用及服务器返回的状态,并把 protobuf 消息读成 JSON,既可以没有 schema,也可以使用你的 .proto 文件。
- WebSocket 消息说明 Network 工具如何按消息而不是字节读取 WebSocket 流量,包括方向、文本与二进制显示、解析方式遵循的 RFC 6455,以及消息数量和大小的限制。
- 导入抓包文件介绍如何导入 .pcap 或 .pcapng 抓包文件,像查看实时流量一样查看其中的请求、连接和 DNS 查询,以及如何在 Android 模拟器和 Mac 上抓包。
- 回放录制说明如何用录制内容回放应用的请求,让服务器完全不被访问:匹配规则、不支持的内容、放行选项、CI 用法、应用内操作,以及分享录制前的注意事项。
- Analytics 检查器介绍 Analytics 检查器:在单独的列表中实时查看应用发往 Segment、Amplitude、Mixpanel 和 Firebase Analytics 的事件,了解解码范围、桌面端用法和限制。
质量
安全与隐私、构建体积、语言与字号、视觉回归。
- 安全与隐私审计介绍安全与隐私审计:查找应用遗留在日志、偏好设置、数据库和请求中的密钥与个人数据,以及清单配置问题,并说明检查规则、请求来源、CI 用法和局限。
- 构建大小介绍如何用 emulabzip size 拆解 APK、AAB 或 IPA 并比较两个构建,在 emulabzip.toml 中设置大小预算让 CI 在构建增长过多时失败,以及桌面端用法和限制。
- 语言、文字大小与放不下的文字介绍如何更改设备的语言和文字大小、检查屏幕上放不下的文字,以及用一条命令在多种语言和字号下扫描界面,包括 Android 与 iOS 模拟器的差异和限制。
- 视觉回归介绍视觉回归:保存屏幕应有样子的基线,对比变化并画出差异,说明容差与阈值、状态栏处理、emulabzip.toml 配置、CI 和桌面端用法以及限制。
会话与 CI
录制运行、查看时间线、对比设备、保存应用状态、提交缺陷报告并在 CI 中运行。
- 会话介绍会话:把应用使用期间设备上发生的一切录成一个文件,说明其中包含的内容、如何在应用和命令行中录制与读取,以及分享会话文件时需要注意的事项。
- 时间线与屏幕录像介绍会话的时间线与屏幕录像:把触摸、请求、日志、慢帧、GC 和崩溃放在同一条时间轴上,说明录制选项、统一时钟、读取方式、分段视频和缺陷报告。
- 比较两台设备介绍 Compare 视图:在两台设备上同时使用应用时并排查看它们,包括双屏幕、CPU 与内存图表、差异列表,以及对应的终端命令。
- 应用状态:保存、恢复与比较介绍如何把应用的数据库、偏好设置和文件保存为 .ezstate 文件、恢复它并比较两次保存之间的结构差异,包括保存内容、恢复的安全措施和限制。
- 缺陷报告介绍如何把屏幕截图、设备与应用信息、日志、失败的请求和可读的崩溃打包成一个 HTML 文件,并预填缺陷到 GitHub、GitLab 或 Jira,以及分享前的检查事项。
- CI 模式介绍 emulabzip ci:在任意命令(通常是测试运行)周围录制会话,保留命令本身的退出码,并说明各选项、GitHub Actions 示例和使用注意事项。
自动化与 AI
输入与流程、深层链接、设备控制、面向 AI 助手的 MCP 服务器和插件。
- 输入与流程介绍如何用 EmuLabZip 点按、输入和按键操作 Android 设备,把操作录制成流程、回放,并导出为 Maestro 流程或 shell 脚本,以及自动化视图和限制。
- 深层链接了解如何在设备上打开深层链接,并检查域名文件与应用声明是否一致,在 Android 和 iOS 上找出链接打开浏览器而不是应用的原因,也可用于 CI。
- Controls使用 Controls 工具修改设备报告和执行的内容:位置、外观、状态栏、电池、权限、通知和链接,无需进入设备自带的设置,并可随时撤销。
- MCP 服务器了解如何通过 emulabzip mcp 让 AI 助手查看并操作你的模拟器:连接各类客户端、可用的工具、提示词与资源,以及默认关闭的破坏性操作和安全限制。
- MCP referenceEvery tool, prompt and resource of the EmuLabZip MCP server for AI assistants, by area, with its arguments and whether it reads, changes or asks first.
- 插件了解如何编写 EmuLabZip 插件:一个包含 plugin.json 和程序的文件夹,程序按行输出 JSON,应用将其绘制为图表、表格、文本和日志。
自定义
主题和布局。
参考
命令行、架构、分发方式和路线图。
- 命令行emulabzip 命令行参考:在终端或脚本中获得与桌面应用相同的数据,涵盖设备选择、日志、性能、网络、存储、会话、插件、MCP 和环境变量。
- 架构了解 EmuLabZip 的 Cargo 工作区如何划分:平台代码放在统一 trait 之后的小型 crate 中,桌面应用和 CLI 以同样方式使用它们,并说明数据流与设计原则。
- 发布分发说明如何发布 EmuLabZip:更新版本号并打标签后,由 GitHub Actions 构建桌面安装包和命令行工具,附带校验和并生成草稿版本,以及可选的代码签名和应用内更新。
- 路线图EmuLabZip 按阶段推进,每个阶段以一次发布结束:列出从第 1 阶段到 1.0 的已完成与计划中的功能、已知限制,以及尚未排入阶段的想法。
- 官方工具如何工作记录我们对 Xcode Instruments 和 Android Studio 性能分析器数据来源的静态研究,以及 EmuLabZip 为何只使用公开、有文档的接口,不在设备上安装任何东西。