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
  • 命中一次后自动删除

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


相关推荐
事圆则缓24 分钟前
HTTP 请求是怎么走的:从 Android 页面到服务端响应
android·网络协议·http
美狐美颜SDK开放平台2 小时前
直播APP平台搭建需要哪些技术?视频美颜SDK只是其中一环
android·ios·音视频·直播美颜sdk·视频美颜sdk
AIsoft_86893 小时前
传统记录方式为什么越来越难满足需求?
android·iphone
小π军3 小时前
安卓、iOS、鸿蒙三端的理解
android·ios·harmonyos
BD_Marathon4 小时前
ChatPromptTemplate的高级特性
android·java·javascript
夜晚回家4 小时前
Python 变量入门详解 | 用 BMI 案例串起赋值、乘方与取整
android·python
程序猿追4 小时前
立方体转到九十度:用 kotlin-math 核对鸿蒙上的两种旋转
android·开发语言·kotlin
半调子的社畜4 小时前
记账 App 我装了删、删了装,最后自己写了一个:本地语音识别 + R8 踩坑复盘
android·ai编程
hunterandroid5 小时前
Android 运行时权限实战:从声明权限到拒绝后的可用降级
android
a5986525 小时前
docker-android 6080 端口访问失败?
android·docker·容器·云手机