Android Studio Debug 的 9 个小技巧( 二 )


还有一个打开关闭断点的快捷键也分享一下:windows 用户 Alt + Click  , mac Option + Click  。
4. 动态打印详细很多人包括我之前在 debug 的时候 , 都会在需要 debug 的地方增加 print 输出一下信息供自己排查错误 , 这里提供一种快捷方便的方法 , 可以既不污染我们的代码 , 又可以随时输出任意信息 。

Android Studio Debug 的 9 个小技巧

文章插图
 
如上图所示 , 在需要打印的地方增加断点 , 然后取消所有线程的挂起 , 选择【Evaluate and log】 , 属于我们需要打印的语句 , 当代码执行到断点的时候 , 不会暂停 , 而会根据我们设置的打印信息输出 log , 是不是很方便?
5. 断点分组
Android Studio Debug 的 9 个小技巧

文章插图
 
通常遇到一个问题的时候 , 我们需要增加很多断点去追踪问题的原因 , 当问题解决之后 , 往往会忘记取消这些断点 , 导致在某次调试的时候 , 设备会被之前的断点所暂停 , 会让我们很无语 。这里我们可以 debug 的时候在某个断点上:右键、更多 , 然后选择这个问题所有相关的断点 , 将它们分到同一个 Group 里面 , 那么这一个组的断点就可以统一开关、统一删除 。
6. 断点上一步说到这个真的很痛心 , 常常因为自己在 debug 的时候 , 由于下一步点击的太快了而错过了问题关键行 , 只能重新运行一次代码 , 重新 debug 然后自己一次次点击下一步 。
Android Studio Debug 的 9 个小技巧

文章插图
 
在运行 Android 10 的设备上 , debug 界面中提供了一个叫【Drop frame】的按钮 , 可以供我们跳出当前方法栈 , 返回上一步 , 这样就会避免我们因为错过断点而不得不重新运行代码 。
7. 观察对象
Android Studio Debug 的 9 个小技巧

文章插图
 
当我们 debug 的时候 , 可以从 debug 窗口中观察当前作用域中的对象以及对象的属性 , 有时候我们会观察在不同页面是否是同一个对象 , 之前我的做法很粗暴...就是找张纸 , 把这个对象的 ID 记下来 , 然后在另一个页面 debug 看 ID 是否一致
Android Studio Debug 的 9 个小技巧

文章插图
 
这里我们可以在对象上右键、选择【Mark Object】之后会让你自定义一个 Label , 然后在整个 debug 期间 , 相同的对象会以你设置的 Label 为 name 出现 , 帮助我们方便的分析是否是统一对象 。
顺便提一下 , 在任意一段代码上 , 点击行号 , 可以从当前断点快速执行到目标行并暂停 , 这个我真是第一次知道 , 感觉之前 Android Studio 都白用了
Android Studio Debug 的 9 个小技巧

文章插图
 
而且在 debug 的时候我们可以选择 debug 窗口中的【Evaluate expression】按钮来动态观察对象 , 点击之后会弹出一个计算框 , 我们可以输入任意当前作用域中的对象以及属性观察 。
Android Studio Debug 的 9 个小技巧

文章插图
 
不得不说这个真的很方便 , 以前遇到这种情况我只有一种方法就是:print  , 当然这里不仅仅是观察对象 , 我们可以写任意代码观察我们想要的值 , 就像下图这样 。
Android Studio Debug 的 9 个小技巧

文章插图
 
8. 增量更新
Android Studio Debug 的 9 个小技巧

文章插图
 
我试了一下 , 这两个按钮是真的很好用啊 , 比重新全量运行应用真是快了不少 , 非常方便 。
9. 错误栈分析通常我们 App 中会继承一下线上 bug 反馈的 SDK 比如 bugly , 在 bugly 我们会得到崩溃的异常栈信息 , 类似下图这样 。
Android Studio Debug 的 9 个小技巧

文章插图
 
我们可以全选复制 , 打开我们的 Android Studio , 选择 Analyze → Analyze Stack Trace or Thread Dump , 然后把异常栈信息粘贴进去 , 点击确定 。


推荐阅读