androidstudio断点调试技巧1

一 说明


1️⃣ Alt + 鼠标左键

👉 核心用途:快速多光标 / 快速修改表达式

常见用法

kotlin 复制代码
val a = foo()
val b = foo()
val c = foo()

Alt + 左键 点三次 foo()

kotlin 复制代码
val a = foo()
val b = foo()
val c = foo()

→ 一次性改 / 包裹 / 重命名

和 Debug 的关系(关键)

  • Evaluate Expression
  • Condition
  • Log message

👉 快速构造复杂条件 / 日志模板

老手在写条件断点时,几乎离不开这个。


2️⃣ Ctrl + Shift + F8(断点总控中心 ⭐⭐⭐)

👉 打开 Breakpoints 管理器

复制代码
Ctrl + Shift + F8   (Windows / Linux)
⌘ + Shift + F8      (macOS)

在这里干什么?

  • 查看 所有断点
  • 启用 / 禁用(不删除)
  • 批量操作
  • 管理 Exception / Field / Method 断点

👉 这是断点的"控制台"


3️⃣ 一键 Mute Breakpoints(神技)

按钮位置

  • Debug 工具栏里的 🔇 图标

效果

  • 所有断点瞬间失效
  • 不会删除
  • 再点一次全部恢复

什么时候用?

  • 你想 让程序跑完整流程
  • 又不想删掉辛苦打的断点
  • 验证「断点是否影响时序」

👉 这是调试老兵最常用的按钮之一


二、这些技巧为什么重要?(不是炫技)

因为你已经遇到过这种场景:

"我打了断点,Bug 不复现了"

原因往往是:

  • 线程被 suspend
  • 协程时序被打断
  • Media / 播放状态被改变

👉 Mute 是验证时序的唯一低成本手段


三、再补一定在用、但可能没系统总结过的


4️⃣ 条件断点里最该会的 3 个技巧

① 条件里可以写 任意 Kotlin 表达式

kotlin 复制代码
savedPosition > 0 && trackIdToPlay == null

② 条件支持方法调用(谨慎)

kotlin 复制代码
songList.any { it.id() == savedId }

⚠️ 有副作用的方法别写


③ 条件断点 + 不 Suspend(日志断点)

✔ Suspend 取消

✔ Log message 勾选

text 复制代码
[Restore] hit id={savedId}, listSize={songList.size}

👉 比 Log.d 干净太多


5️⃣ Inline Evaluate(断点时的"手术刀")

断点停住时:

  • 选中变量 / 表达式
  • Alt + F8

👉 立刻查看结果

比如:

kotlin 复制代码
songList.map { it.id() }

6️⃣ 选择一行代码,让断点直接到这一行

快捷键

复制代码
Alt + F9

用法

  • 光标放在目标行
  • 不用打断点,直接跑到那

👉 快速跳过无关代码


7️⃣ Temporary Breakpoint(一次性断点)

快捷键

复制代码
Ctrl + Alt + Shift + F8
  • 命中一次后自动删除

👉 用来验证"只会发生一次的情况"


相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui