Android Studio 调试
版本unknown 更新日志2025-11-18 GitHubgoogle/android-studio-poet
340px

调试基础与断点 >>>

  • 启动:工具栏点「Debug」或 Shift+F9 运行 Debug 配置;附加见下节
  • 断点类型:行断点、方法断点、异常断点、字段断点、条件/命中次数/日志断点
  • 步进:F8 跳过、F7 进入、Shift+F8 跳出、Alt+F9 运行至光标、Ctrl+Alt+F9 强制运行至光标
  • 条件示例:user != null && user.id == 0;日志断点用于不中断收集运行态
  • 排错建议:Mute Breakpoints 快速禁用全部断点;按线程/库过滤异常断点

Logcat 与日志 >>>

  • 快速筛选:按 App/进程/级别/文案;支持 Regex 与结构化 Expand
  • 打印建议:Log.d/i/w/e(TAG, msg, err);TAG 统一前缀,避免泄露隐私数据
  • 性能:高频路径控制采样与节流;必要时改“日志断点”替代硬暂停
  • 格式:使用 toString() 或自定义渲染简化复杂对象输出
  • 新版 Logcat 支持智能分组与粘性过滤,提升定位效率

表达式与变量 >>>

  • Evaluate Expression:Alt+F8 评估变量/调用方法;支持历史记录
  • Watches:对关键变量添加 Watch,跨断点持续观察
  • 内联查看:开启 Inline hints/Inline debugger data,直观显示值
  • 切换线程/帧:Threads 与 Frames 视图定位当前执行上下文
  • 复杂对象可临时调用 toString()/自定义渲染以提升可读性

协程与多线程 >>>

  • Coroutine Debugger:查看协程层级/状态/调度器与挂起点
  • Stack Frames:开启「Show Kotlin stack frames」获得更友好栈
  • 冻结线程:使用「Freeze」稳定观察变量与死锁定位
  • 断点过滤:按线程/类库过滤命中,减少噪声
  • 建议对 Dispatchers.IO 的密集 IO 区段使用条件断点

附加与远程 >>> NDK

  • Attach to Process:附加到已运行进程;混合 Java/Kotlin/Native
  • 远程调试:在设备上开启 JDWP,配置远程端口转发后附加
  • 本地 JNI/NDK:选择 Native 调试器,加载符号并设置断点
  • 启动参数:Run/Debug Configurations 中配置 AM 选项与 env
  • 参考:Attach debugger、Debug native code

应用检查 >>>

  • Layout Inspector:实时层级、约束与属性;支持 3D 视图与快照比对
  • Network Inspector:HTTP/ gRPC 请求/响应/时序与流量统计
  • App Inspection:Room/WorkManager/Datastore 等 Jetpack 组件专用页
  • Database Inspector:直接编辑查询;观察变更/导出数据
  • 结合 StrictMode/Network Security Config 形成端到端观测

性能分析 >>>

  • CPU Profiler:采样/系统追踪/仪表(Trace)三模式;标注自定义区段
  • Memory Profiler:对象分配、泄漏路径;拍摄 heap dump 与快照对比
  • Energy Profiler:网络/定位/唤醒等耗电事件时间线
  • 启动分析:冷/温/热启动度量;延迟初始化降低启动压力
  • 优先在 Release 变体+符号文件开启采集,保证数据代表性

Compose 调试 >>>

  • Layout bounds:启用布局边界快速识别测量/布局问题
  • Inspection:Compose Layout Inspector 观察层级与重组热点
  • Preview:多设备/主题/字体缩放预览,快速验证 UI 适配
  • 避免在重组路径打印日志;使用 Tracing 标注关键阶段

断点技巧 >>>

  • 字段断点:在字段上暂停(setter/getter 调用处)
  • 异常断点:仅对特定异常类型中断;可勾选「仅未捕获」
  • 临时断点:命中后自动移除;避免污染断点列表
  • 命中次数:如「每 10 次命中暂停一次」定位高频问题
  • 配合「Mute Breakpoints」快速切换全局启用/禁用