AndroidStudio-断点调试-让你的调试更有效率

AndroidStudio-断点调试-让你的调试更有效率前言:上篇博客AndroidStudio-断点调试-也许你该知道断点调试是有多么的美好,记录了AndroidStudio上断点调试的基本流程和debug面板按钮介绍.这一篇就给大家分享一点调试的小技巧,让我们的代码调试变得更有效率.你可以选择随时进入调试模式一般我们都是点击绿色小昆虫进入调试模式进行调试,其实还可以有另外一种方法.看下面的面板截图,有没有发现有两个小昆虫图标.图标E

大家好,又见面了,我是你们的朋友全栈君。

#前言:

上篇博客 AndroidStudio-断点调试-也许你该知道断点调试是有多么的美好 ,记录了AndroidStudio上断点调试的基本流程和debug面板按钮介绍.这一篇就给大家分享一点调试的小技巧,让我们的代码调试变得更有效率.

#你可以选择随时进入调试模式

一般我们都是点击绿色小昆虫进入调试模式进行调试, 其实还可以有另外一种方法.看下面的面板截图,有没有发现有两个小昆虫图标.

这里写图片描述

图标 EnglishName 名称
这里写图片描述 debugger 调试模式开启运行
这里写图片描述 Attach debugger to Android Progress 为已经运行的Android进程添加调试模式

大家都知道debugger运行程序是比Run 速度要慢点的.如果你想解决这个问题,我推荐给你Attach debugger to Android Progress.
这种方法先Run运行起来程序,然后走到要调试的地方,在Attach debugger to Android Progress,选择要调试的进程.这样会快很多.

使用方法:

在Android 进程已经运行的状态下,点击这里写图片描述 ,选择要调试的包名,也就是我们的应用包名,就可以了.

这里写图片描述

使用场景:

1.调试的页面层级较深
2.非debug模式下,突然想进入调试模式.这种方法可以为你省去了重新运行程序的时间哦

#善于使用不同分类的断点

我们上篇博客使用的断点只用到其中一个最常用也最广为人知的一个分类-行断点(Java Line Breakpoint).但是我们需要知道的是,AndroidStudio提供给我们的并不仅仅是这几种断点.善于在不同的条件下使用不同分类的断点是件非常重要的事情.

打开Run->View Breakpoints->点击”+”号可以看到如下的界面,

这里写图片描述

解释一下:

图标 EnglishName 名称
这里写图片描述 Java Line Breakpoint 行断点
图标 Java Method Breakpoint 方法断点
这里写图片描述 Java Field Breakpoint 字段断点
这里写图片描述 Java Exception Breakpoint 异常断点(官方的异常)
这里写图片描述 Exception Breakpoint 异常断点 (支持自己定义的异常)

##字段断点:
添加方法:
在全局变量定义处左侧鼠标左键点击添加

这里写图片描述

使用场景:

定义的全局变量被多处使用,当不确定被何处修改的时候,对要观察的变量添加Java Field Exception.这样只要该变量的值被修改的时候,都会自动断点到发生修改的代码行.
##方法断点:
添加方法:

在定义方法处左侧鼠标左键点击添加

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N7llnhrD-1620581787414)(https://img-blog.csdn.net/20170102214610952?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzI0NTI2MjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

使用场景:

需要具体观察一个方法的时候,就是Java Method Breakpoint大展身手的时候了,当代码执行到该方法断点处的时候,如果想进入方法,直接step over(F6).想直接跳到方法结束看返回值的时候,直接Resume Program(F8),跳到下一个断点,会自动断到方法结尾处.仅仅一个方法断点而已,就能做到这么多,是不是超级方便?

##异常断点:
添加方法:

在ViewBreakpoints->点击”+”号->Java Exception Breakpoints

这里写图片描述

使用场景:

出现异常但是不知道在代码的哪个地方抛出的时候,就是用它的时候.添加某异常的断点之后,只要出现该异常,会自动定位到出错代码处.

#为你的断点添加条件

当为你的断点添加上条件之后,就只有满足这个条件的之后,这个断点才会生效.

例如,我在下面的代码中,直接想查看总循环次数为for循环的第36次循环,我就添加”i == 36″的条件.于是当断点生效时,表现为:

这里写图片描述

简单粗暴,直接干脆有木有?接下来是使用方法和注意事项.

添加方法:
在断点上鼠标右键,就会出现添加条件的对话框.

这里写图片描述

使用场景:

使用的场景很广泛,一般用在很多数据中,专门观测某一类数据的时候,条件断点表现的尤为出色.

注意事项:

1.任何种类的断点都可以添加条件,不要被我的截图误导,以为只有行断点可以添加断点.
2.添加条件(Condition)的时候,要保证条件的返回值是boolean值,例如”i =36″一定要写为”i==36″;
3.添加条件的时候,要保证条件中的变量到断点处已经被定义,否则条件表达式是不成立的.(PS:这里告诉给小伙伴们一个避免这个问题的小方法,就是当你发现条件中的变量颜色变成显眼的红色时,一定要检查一下,变红色肯定是因为这个变量不存在.)

#你知道吗?你可以手动设置变量的值.

在调试过程中,你完全可以直接给你定义的变量设置一些自定义的值,各种刁钻都可以,去测试你的方法写的对不对,代码是否写的稳定.
这样就再也不用一次次去构建不同环境去测试运行了.

示例:

这是调试的一个方法,已经进入方法了,但是我们想改方法参数b的值.

这里写图片描述

在debug中输入自定义的值,然后Enter键按下去

这里写图片描述

神奇的事情发生了,变量 b的值已经被改变了.

这里写图片描述

使用方法:

debug面板–>Variables窗口–>选中要观察的变量–>鼠标右键—>Set Value

#还可以更棒,Evaluate Expression 直接求值表达式.

示例:

输入要求值的表达式,然后点击Evaluate按钮,就可以输入表达式的值.

这里写图片描述

使用方法:
1.代码区–>鼠标右键–>Evaluate Expression
2.debug面板–>Variables窗口–>鼠标右键—>Evaluate Expression
2.debug面板–>Watches窗口–>鼠标右键—>Evaluate Expression

注意事项:

要保证表达式中的变量已经定义,否则表达式是不成立的.(PS:这个也可以看是否出现红色颜色区分表达式是否正确.)


欢迎关注个人微信公众号「浅浅同学的开发笔记」,最新的博客,好玩的事情,都会在上面分享,期待与你共同成长。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143572.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • word转pdf的java实现_java实现word转pdf

    word转pdf的java实现_java实现word转pdf文章时间:2020-12-516:38:54解决问题:java实现word转pdf目前发现可用的实现方式有两种,一种是使用e-iceblue的免费版api,此方法最为简单但存在限制,导出页数不能超过三页。另一种是使用openoffice,但较上一种方法麻烦一些,需要安装openoffice的软件,但没有导出限制,请根据自身需求自行选用。方式一e-iceblue的免费版api官方文档https:…

    2022年6月8日
    117
  • DirectX修复工具在线修复版

    DirectX修复工具在线修复版DirectX修复工具最新版:DirectXRepairV3.9在线修复版NEW!版本号:V3.9.0.29371大小:971KB/7z格式压缩,2.63MB/ZIP格式压缩,5.62MB/解压后其他版本:标准版增强版MD5校验码(校验工具下载):DirectXRepair.exe/eeab9900cc4c10da8e6b786e5f79d09c…

    2022年6月13日
    45
  • 什么叫构造方法?_构造方法和普通方法之间的区别

    什么叫构造方法?_构造方法和普通方法之间的区别构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重

    2022年8月4日
    5
  • epub精品电子书下载_丹尼尔·内格里诺

    epub精品电子书下载_丹尼尔·内格里诺郑重声明:本号收录的电子书均来源于互联网或网友分享,链接内容仅作分享交流学习使用,不用于任何商业用途,版权归原作者和出版社所有,如果喜欢,请支持和购买正版,谢谢。下载地址:http://pan.63

    2022年8月3日
    7
  • 示波器探头如何校准「建议收藏」

    示波器探头如何校准「建议收藏」示波器是电子测试设备中常见的电子器件,通过电子工程师会使用它测量相关电路的信号输出以及相应的电压电流变化。在示波器的应用场合中,除了有些RF或高速数字的场合用电缆直接测量以外,很多板上的调试工作都是借助探头完成的。不过在正式开始使用探头前,我们是需要校准的,那么我们如何进行示波器的探头校准呢?探头是示波器测量系统的一部分,很多高带宽的探头都必须是有源探头,有源探头内部的有源放大器的增益和偏置随着温度或者时间老化可能会有漂移,为了补偿这种漂移,就需要定期对探头进行校准。目前示波器探头的校准方法通常有三

    2022年10月12日
    4
  • mysql事务隔离级别可重复读_innodb默认隔离级别

    mysql事务隔离级别可重复读_innodb默认隔离级别一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQLServer等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越多,理论上性能损耗更大,可并发性越低。隔离级别依次为>:串行化>RR>RC>读未提交在SQL标准中,前三种隔离级别分别解决了幻象读、不可重复读和脏读的问题。那么,为什么MySQL使用可重复读作为默认隔离级别呢?这个是有历史.

    2025年9月16日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号