AndroidStudio断点调试和高级调试

时间:2024-03-24 16:07:32

我们程序员在写程序的时候,Bug是不可避免的,在这种情况下,除了日志外最常用的就是Debug了。除了写程序,当我们接手一个旧的程序,熟悉代码最常用的手段也是调试,以前没有总结过Android Studio的调试,现在来总结一下Android Studio的调试技巧!

AS调试面板介绍

点击顶部工具栏的
AndroidStudio断点调试和高级调试

进入断点调试,例如下面红色方框区:

AndroidStudio断点调试和高级调试

进入断点调试之后,就会唤出调试面板,我们介绍一下调试面板,调试面板如下图所示:

AndroidStudio断点调试和高级调试

调试功能键区有6个图标,分别代表不同的功能,下面分别介绍,从左边算起,以红色方框分割:

  • 第一个是step over:点击该图标程序执行下一行,如果是调用方法,这个方法会被直接执行不会进入该方法内部。

  • 第二个是step into:点击该图标,如果当前代码是自定义的方法,会进入方法内部逐步执行,如果是官方库的方法,不会进入方法内部,如果不是将执行下一行

  • 第三个是force step into:点击该图标会进入方法内部,不论是自定义方法还是官方库方法。会使你脱离当前断点,从你选择的方法开始调试。

  • 第四个是step out:点击该图标会快速运行完该方法,跳出当前执行的方法内部,执行到该方法调用的下一句代码。

  • 第五个是drop frame:点击该图标会回到调用该方法的开始处,恢复原始值,可以重新运行该方法。

  • 第六个是run to cursor:点击该图标会使程序跳转到下一个断点处,如果设置多个断点逐句运行会比较麻烦,可以通过这个功能快速跳转到下一个断点。

调试功能键介绍完到求值表达式功能键区,求值表达式功能的作用是:当程序运行到某一个断点的时候,恰好你对该处的某对象的某些属性很感兴趣,那么可以通过该按钮跳出。点击该图标会跳出一个Evaluate expression窗口,我们可以在这个窗口中输入感兴趣的表达式,然后点击evaluate按钮,你就可以得到想要知道的结果了。如下图所示:

AndroidStudio断点调试和高级调试

我们调试的是add方法,直接调用这个方法,可以计算a+b的值,我们在输入框里面输入add(10,20),最终输出结果是30.

这里介绍的只是断点调试的,AndroidStudio还提供其他的断点调试方法,下面我们介绍一下其他断点调试方法:

条件断点调试

当我们设置的断点在一个循环里面,我们只对循环中某个值得时候有兴趣,逐步调试会很麻烦,这个时候条件断点调试会极大的提高我们的效率。我们可以设置一个条件,只有当循环满足我们的条件的时候,循环才会停下来,例如:

AndroidStudio断点调试和高级调试

日志断点

日志断点严格来说并不是断点调试,它不会在你打断点的地方停下来,它只是让你在需要的地方输出日志而已。例如:

AndroidStudio断点调试和高级调试

这个是设置条件

AndroidStudio断点调试和高级调试

输出的信息

方法断点

当我们只对方法执行的结果或者返回值感兴趣的时候,方法断点是一个不错的选择。只需要在方法的第一行打上断点即可,断点的图标也会不一样。

AndroidStudio断点调试和高级调试

异常断点

如果你对程序发生的异常感兴趣,Exception Breakpoint是非常不错的选择,当程序运行发生异常时,直接让程序停下来,保留事故发生的现场,你可以即使有效的发现问题的原因以及异常发生的位置。

使用方法:RUN-->View BreakPoints或者直接使用快捷键Ctrl+shift+F8,弹出如下窗口

AndroidStudio断点调试和高级调试

点击左上角的加号,选择第三个,如下图红色框所示:

AndroidStudio断点调试和高级调试

在弹出的窗口输入你感兴趣的异常,当程序发生异常的时候会停下来

AndroidStudio断点调试和高级调试

设置变量的值

在调试过程中,你发现某个变量的值跟你预期的结果不一样,或者你怀疑某变量这出现某些特殊值时程序会发生崩溃,而当前测试环境又极难模拟这种情况,那么你可以在调试模式时,如图所示,在变量区右键你想监控的变量,设置你想要出现的值,然后继续运行。

AndroidStudio断点调试和高级调试

Android程序开发还有其他许多的调试方法,需要我们在实际开发中不断的总结学习!