
字节笔记本
2026年8月27日
debroid:让 AI 编码代理学会调试 Android 应用的开源无头调试器
本文介绍 PatilShreyas 开源的 debroid——一个专为 AI coding agent 设计的无头 Android 调试器。它解决的问题很具体:AI 代理写 Android 代码没问题,但调试时是"瞎"的——看不到运行时内存、不会下断点。debroid 把 Android Studio 调试器的全部能力翻译成机器可解析的 JSON 命令行,让 Claude Code、Codex 这类 agent 自主完成运行时调试。
项目简介
debroid(DEBug + AnDROID)用 Kotlin 编写,今年 8 月开源,Apache-2.0 协议。它是一个无头 CLI,直接说 Java 调试线协议(JDWP),相当于在原始终端(agent 最擅长的地方)和 Android 虚拟机之间架了一座翻译桥。
作者对痛点的描述很准:传统 Android 开发环境高度可视化,AI 助手写得了代码,却点不了 Android Studio 的调试面板——不能检查内存、不能暂停执行。debroid 让 agent 能自主完成"假设 bug → 启动应用 → 命中断点行 → 读取设备实时状态 → 验证修复"的完整闭环,把过去只属于人类开发者的运行时感知交给了 agent。
核心特性
- 断点:任意类任意行下断点;类尚未加载时自动延迟挂载
- 异常陷阱:全局捕获应用内的已抛出/未捕获异常
- 观察点:实时监控字段的访问与修改
- 深度检查:递归检查深层对象内存、局部变量、调用帧,内置循环引用保护
- 实时变量修改:线程暂停状态下用
set-var直接改内存里的变量值 - 实时求值:完整表达式求值器,支持 Java 语法、方法调用和算术,直接在目标 VM 里执行
- 单步执行:Step Over / Step Into / Step Out / Resume 随意切换
- 协程感知:能从 Kotlin Continuation 帧里提取浅层局部变量——这对调试协程密集的现代 Android 应用很关键
所有输出都是确定性、严格可解析的 JSON,agent 读了就能行动。
安装指南
前置要求:Java JDK 11+、Android SDK 与 adb 在 PATH 中。
# 一键安装预编译二进制
curl -fsSL https://raw.githubusercontent.com/PatilShreyas/debroid/main/install.sh | bash或者克隆仓库本地构建:./install.sh。卸载:先 debroid stop 停掉后台会话,再删 ~/.local/bin/debroid。
AI Agent 技能接入
debroid 的设计目标就是被 agent 自主操作:CLI 首次运行会把技能说明自动导出到 ~/.debroid/skills/debroid-cli/SKILL.md,为 Claude Code、Codex、Cursor、Antigravity 等建一个软链即可让 agent 常驻学会用法。仓库还提供了更省事的方案——直接把这句话贴给你的 agent:
Read https://raw.githubusercontent.com/PatilShreyas/debroid/main/README.md and install the Debroid CLI and its skill globally for me.
注意事项
- 项目很新(2026 年 8 月开源),接口可能变动,生产依赖前锁定版本
- 调试需要应用以可调试模式构建(debuggable)
- 修改内存变量(set-var)是高风险操作,agent 自动执行时建议在确认环节留人工把关
- 需要 adb 连接真机或模拟器,纯云端 agent 场景要自己解决设备接入
项目链接
- GitHub 仓库:https://github.com/PatilShreyas/debroid
- 协议:Apache-2.0