ADB 图形化与手机端调试工具选型
常用信息查询优先选 Spock ADB;希望脱离 IDE 使用时可选 QADB 或 AYA。下表依据项目官方文档整理,功能声明不等于已经在所有 Android 版本及厂商设备上实测。
| 工具 | 形式与用途 | 与信息查询相关的能力 | 边界 |
|---|---|---|---|
| Spock ADB (opens new window) | Android Studio / IntelliJ 插件 | 当前 Activity、Fragment、应用返回栈、设备 Activity 栈;Shell 命令收藏、历史、补全和输出搜索 | 内存详情、窗口焦点及特定 Activity 的原始输出可通过 Shell 查询;不能据此认为有对应专用图表 |
| QADB (opens new window) | 独立桌面 ADB GUI,README 提供 macOS、Windows 使用说明 | 当前 Activity、Logcat、应用管理;命令中心把常用 ADB 命令组织为可点击操作 | README 的模块表仍把 Performance / Processes 标为 Planned,不能当作已经提供完整内存分析 |
| AYA (opens new window) | 独立桌面 ADB GUI,支持 macOS Intel / Apple Silicon、Windows、Linux | 进程监控、Logcat、布局检查、投屏、文件和应用管理、内置 Shell | 官方性能面板描述的是设备整体 CPU、内存和帧率,不等于单应用完整 meminfo;未确认专用 Fragment 面板 |
| DroidLens (opens new window) | Electron 桌面,支持 macOS、Windows、Linux;另有 MCP | 当前 Activity、3D View hierarchy、Screen flow、Logcat、App info 中的 Activity 列表、启动/停止应用及 deep link | 新项目;Screen flow 是页面访问路径,不是 Android task 返回栈;网络、数据库等高级功能需要 debug 应用接入 SDK |
| LinkAndroid (opens new window) | Electron 桌面,支持 macOS、Windows、Linux,中英双语 | scrcpy 投屏、GIF/MP4 录屏、截图美化、文件/应用管理、ADB Shell 和命令快捷面板 | 适合设备操作和常用命令一键插入,不代表内置完整 meminfo 或 Fragment 分析 |
| Tango / ya-webadb (opens new window) | 浏览器 WebUSB / ADB 工具及底层库 | 设备信息、交互 Shell、文件传输、安装 APK、截图和 scrcpy 等能力依具体前端而定 | WebUSB 需要支持的 Chromium 浏览器与设备授权;旧开源演示站、新版 Tango 应用和底层库要分别看,不能统称为同一开源 GUI |
| DeviceHub (opens new window) | 独立桌面,提供 Windows、macOS、Linux 下载 | 官网列出设备/电池/存储信息、最高 60 FPS 投屏、多设备控制、文件/应用管理、拖入 APK 安装、Logcat、Shell、无线 ADB | 官网把 AI 日志分析标为 Under Development;性能与功能是产品声明,尚未实测;不要与 Google / VKCOM 的同名项目混淆 |
| androidperf (opens new window) | CLI + Web UI + HTML 报告 | 应用 PSS、Java / Native / Graphics 等内存采样,关联 Activity 切换及部分 Fragment 信息 | 更适合持续性能记录;项目规模较小,Fragment 采集注明适用于 AndroidX FragmentManager 应用 |
| Android Studio (opens new window) | IDE,提供设备管理、Logcat、Profiler 等图形化工具 | 调试自己的应用时可进一步分析内存和布局 | 不同诊断功能有各自的应用构建、设备及连接条件 |
| scrcpy (opens new window) | 通过 ADB 显示和控制 Android 设备 | 方便在电脑操作手机、复现问题 | 投屏和控制不代替 Activity / Fragment / 内存诊断 |
| Vysor (opens new window) | 在电脑显示和控制 Android 设备 | 远程操作和复现问题 | 同样不能仅凭投屏判断内存与组件状态 |
原列表中的“ADB GUI”是轻量级 ADB 图形化工具的泛称,没有指定项目;选型时使用上表的明确仓库与官方入口,避免下载同名工具。
先明确要替代哪种查询
| 原始查询 | GUI 能提供的帮助 | 不能混淆的内容 |
|---|---|---|
dumpsys meminfo <package_or_pid> | androidperf 采样部分应用内存指标;Android Studio Profiler 做进一步分析 | 内存曲线、Profiler 和完整 meminfo 文本不是同一种输出;需要原始 PSS / Native Heap 表时直接在内置 Shell 运行原命令,无须为了细表启动 IDE |
dumpsys window 中的 mCurrentFocus | DroidLens / Current Activity 可帮助识别当前页面的包名和类名 | 当前 Activity 不是完整 WindowManager 状态;键盘、对话框、多窗口等场景应保留窗口焦点原始查询 |
dumpsys activity activities | Spock 的应用返回栈、全部 Activity 入口 | 不能说“所有 GUI 都没有栈列表”;DroidLens Screen flow 记录页面流转,不能代替系统任务栈 |
dumpsys activity top | Spock 可查询当前 Fragment;布局工具可辅助观察控件 | View hierarchy / Fragment 容器不等于 Fragment 实例、生命周期和返回栈,不能把布局检查当作 Fragment dump 的等价替代 |
dumpsys activity <activity_name> | 使用工具内置 Shell 保存和重跑查询 | 应用声明的 Activity 列表与某个正在运行的 Activity 的详细状态不同 |
DroidLens、Tango 与桌面工具的使用边界
- DroidLens 的官方 README 描述了可选手机 agent(约 13 KB):无 agent 时,当前 Activity 依赖 dumpsys,标称耗时 1–7 秒;agent 通过事件跟踪提供即时信息。这是项目标称,实际耗时随设备变化。agent 使用 Instrumentation / UiAutomation,可能与 Appium 等工具冲突,可通过顶部 Agent 开关关闭。不要把它与需要应用集成的 SDK 混为一谈。
- DroidLens 定位为 Flipper 替代工具;Flipper 上游 (opens new window) 已归档。macOS 签名状态以下载版本及上游安装说明为准:本次核对的 README 写的是 ad-hoc 签名、未获 Apple 公证,不能称为“已签名公证的 DMG”。
- Tango 的作者公告 (opens new window)明确区分了开源库、旧开源演示站 (opens new window)和新版应用。自托管需选择对应的开源前端,不能根据底层库开源就认为新版应用也能直接自托管。无线连接也有传输/桥接条件,不能把“浏览器零安装”理解为所有连接方式都无需准备。
- WebUSB 连接可能与本机 ADB server 或其他管理工具争用设备接口。网页端需要用户选择设备并授权,常用场景应确认访问的项目与部署来源,而不只是搜索一个同名网页。
- LinkAndroid 适合偏好中文界面、投屏和截图美化的场景;DeviceHub 的多设备和 AI 日志功能分别核对已实现与开发中状态,不仅凭产品页截图判断。
手机端工具
| 工具 | 能解决什么 | 安装与使用条件 |
|---|---|---|
| Current Activity / android-TopActivity (opens new window) | 手机上显示当前 Activity 的包名和类名,减少偶尔查询时对电脑的依赖 | 官方仓库未提供 GitHub Release APK,README 指向 Google Play;源码较旧,现代 Android 兼容性需单独验证。不得仅凭同名或相同包名就相信第三方 APK |
| ADB-Application-Manager (opens new window) | Inspector 的十个信息页覆盖权限、App Ops、Activities、服务/接收器/Provider、Manifest、签名与库等;Console 提供命令历史卡片、重跑、cheat sheet 和旁侧 Logcat | 官方提供按 CPU 架构区分的 APK 与 SHA256SUMS;功能依赖 Standard、ADB、Wireless Debugging、Shizuku 或 Root 工作模式,普通沙箱 Shell 不等于 ADB shell 权限 |
ADB-Application-Manager 后续显示名包括 ADB/Root Toolbox,仓库名、APK 文件名与手机应用名可能不同;应核对包名、版本、签名与官方发布记录。官方版本记录 (opens new window)
一次 Android 16 安装检查中,官方 v7.19.2 arm64 APK 的 SHA-256 与发布者校验文件及 GitHub asset digest 一致,手机仍提示“发现高危病毒 / 危险行为程序”,安装被中止,未安装成功。来源一致不等于安全,也不能据此判为误报。 该版发布说明注明未做手机实测。此工具保留为功能调查对象,不作为无条件安装推荐;遇到同类告警应先退出安装并核实,不通过批量授权、关闭防护或忽略风险解决。
手机端工具的“已安装”“已授予必要权限”“已能实时显示当前 Activity”是三个不同的验证结果。悬浮窗、使用情况访问、无障碍或 Shizuku 授权应按实际工具所需逐项处理,不能把安装成功写成所有功能已经可用。
Spock ADB:安装与最短使用路径
- Android Studio → Settings / Preferences → Plugins → Marketplace,搜索 SpockAdb 并安装。官方入口:JetBrains Marketplace (opens new window)。如 IDE 提示重启,保存工作后重启使插件加载。
- 连接设备或启动模拟器,确认
adb devices显示device。打开 Spock ADB 工具窗口,核对选中的设备和应用包名,再执行查询。 - 查看当前 Activity / Fragment 或返回栈时使用专用动作;需要原始 dumpsys 信息时打开 Shell / ADB Command Center,执行后加入收藏。不同版本可能调整面板名称,以实际安装版本为准。
| 要查看的信息 | Spock 入口 / 用法 | 终端中的原始命令 |
|---|---|---|
| 当前应用内存详情 | Shell 中执行,收藏为“应用内存” | adb shell dumpsys meminfo <package_or_pid> |
| 当前窗口焦点 | Shell 中执行,收藏为“窗口焦点” | adb shell dumpsys window \| grep mCurrentFocus |
| 当前 Activity | Open Current Activity;也可查看 Home 的当前页面信息 | adb shell dumpsys activity activities;在输出中定位 resumed Activity |
| 当前 Fragment | Open Current Fragment | adb shell dumpsys activity top;输出可能包含 FragmentManager 状态,不保证所有应用都能提取 |
| 应用返回栈 / 全设备 Activity 栈 | App back stack / All activities;动作名包括 Show App Back Stack、Show Activity Stack | adb shell dumpsys activity activities |
| 特定 Activity 的原始详情 | Shell 查询并收藏 | adb shell dumpsys activity <activity_name> |
表中命令供电脑终端使用。如果工具已经进入设备 Shell,使用 dumpsys ...,不再加 adb shell;窗口过滤也在设备端执行。Spock 的命令中心提供命令、子命令和包名补全,按当前输入模式填写,避免重复前缀。收藏中的包名 / PID 需要按目标应用更新,不能假定收藏会自动替换所有参数。
窗口焦点、resumed Activity 和 Fragment 是不同层次的信息;不要把一个查询结果当作另两个的完整替代。布局检查器展示的控件树也不等同于 Fragment 栈。无结果时先核对设备、应用是否运行,再看原始输出,排查系统版本、厂商格式或应用实现差异,而不是直接判定“没有 Fragment”。
按场景选用
- 经常忘记查询命令:优先 Spock 的专用动作和 Shell 收藏;需要独立桌面命令面板时试 QADB。
- 日常设备操作、投屏、文件、进程和日志查看:AYA 更集中。AYA 使用文档 (opens new window)
- 分析切换页面后的应用内存变化:androidperf 的持续采样与报告更贴近需求;设备整体内存曲线不能代替应用 meminfo。采集指标与限制 (opens new window)
Spock 的具体面板、动作与命令收藏功能见官方使用说明 (opens new window),IDE 支持范围见兼容说明 (opens new window)。