我们在代码编写结束之后,肯定会进行一些基本调试。但是android studio的调试技巧你都了解吗?本篇文章是我在学习其他简友文章之后进行的总结,感谢各位大神的指导
调试面板
我们先来看看调试面板的布局
调试面板
这5块分别为
- 断点管理区
- 单步调试区
- 线程帧栈区
- 对象变量区
- 变量观察区
下面对重点区域进行学习
断点管理区
断点管理区自上而下依次是
- Return 'Android Debugger' 停止当前App并重新启动,让你重新调试
- Resume Program 从当前断点直接移动到下一个断点处,中间代码正常执行
- Pause Program 暂停调试,并且App也停止运行,直到你使用Resume Program恢复
- Stop 'xxxx' 结束断点,而且是一切都结束了
-
View Breakpoints 查看所有断点信息。这里包括你手动在类里添加的断点以及某些异常的断点
View Breakpoints,这里面可以换看到具体的断点信息 -
Mute Breakpoints 中途切换所有断点的状态。不可用的时候断点是白色的
Mute Breakpoints - Get thread dump 获取线程Dump,这个我不了解
- Restore Layout 这个我不了解
-
Settings 设置,简单介绍2个,其他的我不了解,看别人介绍的好像用途也不是很大
Settings
Show Values InLine 调试过程中代码右边显示变量值,这是默认效果
开启Show Values InLine
Show Method Return Values 调试过程中在对象变量区将带返回值方法的返回值显示出来
开启Show Method Return Values
关闭Show Method Return Values
单步调试区
单步调试区从左到右依次是
- Show Execution Point 光标回到当前断点调试的位置
- Step Over 单步跳过,点击该按钮程序将向下执行一行
- Step Into 单步跳入,点击该按钮程序将向下执行一行。如果该行有自定义的方法,则进入该方法内部继续执行;注意如果是类库中的方法,则不会进入方法内部。
- Force Step Into 强制单步跳入,与之前的Step Into区别在于,这个是任何方法都会进入其内部
- Step Out 从方法体中跳出
- Drop Frame 这个我不了解,没调试出来
- Run to Cursor 忽视已经存在的断点,前进到当前光标位置断点调试
变量观察区
当你对某个变量特别感兴趣的时候,可以在调试过程中将其添加
对某个变量进行特别观察
断点的种类
在Android Studio中,断点又被以下五类:
- 条件断点
- 日志断点
- 异常断点
- 方法断点
- 属性断点
- 条件断点
满足一定条件才触发断点。这个其实很实用,举个例子,一个for循环,从1-10,如果你仅仅想在6的时候触发断点,你可以使用此种断点方法来帮助你实现,而不需要一直从1点到6,节省了不少体力活。使用鼠标右击断点触发,在Condition处填写过滤条件
条件断点 我们看到因为16行在条件判断上并不满足,所以直接跳到17行去了 - 日志断点
如果你想在关键地方临时保存信息在某个地方,这个断点方法最适合你不过了。它不会使程序停下来,而是将你debug中的日志信息记录在console里。同样使用鼠标右击断点触发,取消选中Suspend,选中Log evaluated expression,并填写相关日志信息
日志断点 -
异常断点
在全局调试中,一旦发生异常(可以指定某类异常),则会立刻定位到异常抛出的地方
异常断点这里我借用了空指针异常作为演示
-
方法断点
将断点加到这个方法上,一旦程序运行到调用这个方法的地方时,就会自动进入这个方法内
方法断点 -
属性断点
当某个属性被修改的时候,它就会停留在修改处,这个方便我们查找到到底是谁去修改了这个属性
属性断点这里g值发生变化,停留在g对象上
其他牛逼功能
- 临时断点
在第一次触发后会自动被移除。使用Alt + 鼠标左击触发
临时断点 - 禁用断点
该出断点不起作用。使用Alt + 鼠标左击触发
禁用断点 -
计算表达式
临时需要改变某一个变量值或者计算其他表达式返回值时使用
计算表达式注意这里还有一个Code Fragment Mode,支持多行表达式
- 观察表达式/变量
这个没什么好说了,初级入门功能。使用时选中表达式,再Alt + 鼠标左击触发 -
修改变量值
在调试过程中,我们可以方便的修改某个变量的值,后面代码都以这个值为准
修改变量值 -
标记对象
在调试的过程中,给某个特定的对象打标签,以便后面的断点里面对这个变量进行识别
标记对象
网友评论