关于an-d-ro-id:Android-Studio-掌握这些调试技巧Debug-能力不能再高啦

48次阅读

共计 2911 个字符,预计需要花费 8 分钟才能阅读完成。

Debug 断点跟踪调试是软件开发过程中剖析代码、解决 BUG 的一个重要伎俩,不同 IDE 下的 Debug 工具的应用有所不同,但提供的调试性能肯定是包罗万象。很多程序员的 Debug 能力都停留在根本的单步执行、断点跳跃上,殊不知还有很多鲜为人知但十分不便的调试技巧。本文就以 Android Studio 工具为例,展现一些个别人不晓得的 Debug 调试技巧,把握这些,你也算是 Debug 调试巨匠了。

根本应用


Debug App 有两种路径,第一种是间接点击下图运行按钮右侧的小虫状图标,运行并调试以后 Project,这个我想大家都晓得。

Debug App.png

第二种就是调试以后曾经处于运行状态下的 App,这也是咱们用的更多的一种调试伎俩,即 Attach debugger to Android process。点击运行按钮右侧第三个按钮,弹出Choose Process 窗口,抉择对应的过程,点击 OK 按钮即可进入调试模式,此时,咱们便能够在须要的中央间接下断点调试代码了:

Attach debugger to Android process.png

接下来就是常见的调试办法了,在 Debug 窗口顶部工具栏有一排操作按钮,比方Step Over(单步执行)、Step Into(进入办法)等,如图所示:

Debug 窗口.png

打断点和勾销断点最间接的形式就是单击指标代码行的行号右侧空白处,而后在 Debug 窗口左侧有个断点浏览按钮View Breakpoints,位于进行按钮下方第一个,能够浏览 Project 中的所有断点,同时能够增加删除断点:

View Breakpoints.png

条件断点


有时候,咱们的断点打在了循环体外面,然而咱们只想看某一特定循环次数下的运行状况,难道要应用 Run to Cursor 性能不停地跳至下一次断点直至满足咱们的要求吗?

循环里的断点.png

如果你晓得条件断点的话,肯定会悔不当初。条件断点能够满足开发人员本人输出条件,比方 fori 循环中输出 i == 5 即可让程序间接运行至第六次循环,for each循环中针对 list 某一元素下的断点调试。只须要右键点击断点,在弹出的窗口中输出 Condiction 条件,点击 Done 按钮,而后当程序执行到循环体时,会在满足条件的一次循环中停下来,供咱们调试:

条件断点.png

日志断点


打印日志也是跟踪程序剖析问题的一个十分无效的伎俩,然而如果咱们的程序曾经运行并且处于调试模式,此时如果想打印日志更加直观的剖析代码,难道还要进行调试、增加 Log 代码并从新编译运行吗?

如果你晓得日志断点,就不必如此大费周折,费时费力了。还是右键点击断点,在弹出的窗口中勾销勾选 Suspeng 复选框(即示意程序运行至此断点时不会停下来供开发者调试),而后勾选Log evaluated expression:,并输出打印语句即可。这样,当 Debug 模式下的程序执行至此,不会停下来,而是在控制台中打印对应信息,如:

日志断点.png

变量赋值


比方,咱们的代码里有一个变量,这个变量的值会影响到程序的执行后果。如果咱们想察看这个变量在不同的赋值下程序的执行后果怎么办呢?难道要一遍遍的在代码里批改变量值,而后从新运行程序吗?显然这是十分麻烦的操作。其实,如果利用 Debug 模式下的变量赋值(Set Value),只须要运行一次,就能达到咱们的察看成果。在应用该变量的代码处打个断点,而后在 Variables 窗口找到对应的变量,批改变量值并执行即可。

Set Value.png

变量察看


Variables 变量区和 Watches 察看区能够查看 Debug 模式下,程序执行到断点处的变量值或者对象的各属性值,然而多多少少查看起来还是有些不不便。其实能够通过弹出窗口的模式查看属性值,只有将光标定位至断点代码行所用到的变量,IDE 会自动弹出一个小窗口,如下图所示,此时,应用对应的快捷键或者点击这个小窗口里的变量即可弹出变量属性值窗口,Mac 下的快捷键位command + F1,如图所示:

变量察看 01.png

变量察看 02.png

对象求值


在断点处,如果有变量对象,零碎提供了表达式求值性能,针对 Variables 视图中的变量对象,咱们能够输出任何计算语句,实时查看表达式计算结果。具体操作为,右键 Variables 视图中的变量对象,抉择 Evaluate Expression,弹出表达式窗口,输出任何你想要的计算语句,点击Evaluate 计算按钮,即可显示 Result 后果:

Evaluate Expression01.png

Evaluate Expression02.png

办法断点


通常咱们会对办法里的代码增加断点调试,很少对办法自身调试。其实,如果只是为了看到办法的参数和返回后果,咱们能够在定义方法的第一行打断点,间接对办法自身调试,此时断点的展现图标款式也会不同凡响:

办法断点.png

变量断点


有时候,咱们想晓得自定义的变量的何时何地产生了扭转,就能够应用变量断点。变量断点的图标款式也不同凡响,在变量定义行打断点,开启 Debug 模式,在程序执行的过程中,如果该变量的值产生扭转,程序会主动停下来,并定位在扭转变量值的中央,供开发者调试:

变量断点.png

异样断点


程序在执行的过程中可能会呈现各种各样的未知性异样,如果能在产生异样的时候第一工夫让程序停下来,并定位到异样呈现的中央,供开发者调试,那当然是极好的。而万能的 Android Studio 就提供了这样的性能。

关上断点管理器,这里有两种形式关上:点击工具栏菜单 Run,抉择View Breakpoints;在 Debug 窗口间接点击View Breakpoints 图标。点击左上角加号按钮,能够增加各种断点,包含前文提到的 Method BreakpointsField Watchpoints断点,这里咱们抉择 Exception Breakpoints 异样断点,在弹出的 Enter Exception Class 窗口中输出须要监控的异样类别即可:

Breakpoints.png

Exception Breakpoints.png

欢送补充


以上便是应用 Android Studio 工具的开发过程中很是实用但却少见的 Debug 调试技巧,当然所有这些操作都能够通过快捷键关上,将鼠标光标移到对应图标处,都会显示对应快捷键组合,大家自行酌情应用。

当然,如果你还有更好的调试技巧,欢送留言补充,让咱们一起在分享中学习,交换中提高。

相干教程

Android 根底系列教程:

Android 根底课程 U - 小结_哔哩哔哩_bilibili

Android 根底课程 UI- 布局_哔哩哔哩_bilibili

Android 根底课程 UI- 控件_哔哩哔哩_bilibili

Android 根底课程 UI- 动画_哔哩哔哩_bilibili

Android 根底课程 -activity 的应用_哔哩哔哩_bilibili

Android 根底课程 -Fragment 应用办法_哔哩哔哩_bilibili

Android 根底课程 - 热修复 / 热更新技术原理_哔哩哔哩_bilibili

本文转自 https://juejin.cn/post/6844903457619443719,如有侵权,请分割删除。

正文完
 0