Android Studiodebug高级调试

来源:互联网 发布:c语言如何编写头文件 编辑:程序博客网 时间:2024/05/18 01:57

1.android studio的两种调试方式.

 (第一种调试需要重新安装app才行第二种就不用重新启动,一般使用第二种方式,比较快捷.)

2.常用调试功能及快捷键.

快捷键作用step into (F7)进入子函数.就是单步执行,遇到子函数就进入并且继续单步执行;例如当你执行到System.out.println("XXXX")时,使用这个功能时就会进入到System.out.println方法所在类的println方法下(当然这样做事没有必要的,如果进入了想跳出执行step out就可以了。)step over (F8)越过子函数,但子函数会执行.是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。例如上面的例子中,System.out.println("XXXX")执行完后是跳到下一个语句中而不会跳进去,这个功能也是比较常用的,一直按F8就可以了。step out (Shift + F8):跳出子函数.就是但单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。Run to Cursor (Alt + F9)运行到光标所在的位置。运行到光标所在的位置,执行该功能后,不论你执行到哪里,程序都可以执行到你光标的所在行下。show Execution Point (Alt + F10)快速定位当前调试的位置,并将该行高亮的显示出来。当你不知道程序当前已经执行到哪里的时候,就可以使用这个功能,Android Studio 会跳到执行行所在的界面,并将该行高亮的显示出来。

3.高级调试功能.

1、Evaluate Expression(使用表达式).

进入调试模式以后,可以在断点处直接进入一个求值环境,在这里你可以执行任何你感兴趣的表达式;比如在断点处有一个对象 object ,如果你要查看它的某个属性很简单,在Debug窗口就能看到,但是如果你想要执行它的某个方法看看结果是什么呢?借助这个可以实现。快捷键 Alt + F8

例如:使用这种方式就可以将断点处的String类型的message对象进行各种操作比如看它的字段,属性等相关值. 

2、条件断点.

假设你的断点在一个列表的循环里面,可是你只对这个列表的某一个元素感兴趣,只想在遇到这个元素的时候才断下来;你是一直人肉单步执行 直到满足条件吗?条件断点就是满足这种需求的,顾名思义,在特定条件下的断点。使用起来也非常简单,在你的断点上鼠标有件会出现一个小窗口,写上条件即可。

例如:我们要看到x=20的时候的值就可以在条件语句里面进行编辑就可以直接跳转到x=20的值. 

3、日志断点.

很多时候我们调试的时候更多的是打印日志定位异常代码,缩小范围之后再使用断点解决问题;所以经常做的事情就是在代码里面添加日志信息,输出函数参数,返回信息,输出我们感兴趣的变量信息等。 但是这么做一个问题就是,我们添加了日志代码需要重新编译;在没有 Instant Run 之前的黑暗时代这么做是非常痛苦的,每次编译少则几十秒,多则几分钟;这样无意义的等待简直就是折磨;其实,除了热部署工具,我们还可以使用日志断点解决这个问题。 首先我们在想要输出信息的地方下一个断点;然后右键这个断点,在出现的设置框里面把这个断点的 suspend 属性设置为 False ,这样虽然叫做“断点”,但是并不会真正断下来;然后,我们在 log message 里面填上我们想要输出的日志信息.

例如我们需要将断点出的String类型的message输出 

0 0
原创粉丝点击