androidstudio断点调试 闪退原因_Android Studio Debug 断点调试,各种骚操作都在这里了...

Android Studio中的断点调试功能很好用,可谓是强大,用的好,不仅可以一定程度上提高开发进度,还能提高逼格。首先从最开始的来吧。

9643d49bc374c304593fc9afe83a2e86.png

启动Debug

启动Debug有两种方法,一是Debug启动APP;二是Attach Debugger。

ae4a1325214b85e1d05edf8978e790ed.png

方法一和Run App操作类似,点击之后会项目会运行在我们的设备上,然后就可以开始后面的调试了;

方法二的前提是我们的项目必须已经运行过,点击之后就可以选择我们要调试的进程了,后续的调试两种方法操作是一样的

f9f2175ff3fe1400199e850fa83601aa.png

设置断点

设置断点比较简单,在调试处鼠标单击左键行号即可。当程序运行到该行将停下来,同时我们可以在Debug调试面板上可以看到该断点所处的类、方法和变量等信息

2f77d0cc0f099627ca00e6f764f6c03c.png

简单调试

1、Step Over (F8)

点击该按钮或快捷键F8,会直接跳到下一行,尽管该行有方法,也会运行完方法后执行到下一行。有个小技巧:鼠标左键点击行号,会直接执行到该行

af372f3a650c8d8472735e5ee4e50974.png

2、Step Into (F7)

点击该按钮或快捷键F7,如果该行有方法,则进入到方法中,否则执行下一行;其实主要作用是进入方法中

dea8734f9de59acdfcf75e87200b09fa.png

3、Force Step Into (Alt+Shift+F7)

Force Step Into和Step Into作用是一样的,区别是Step Into只能进入我们自己定义的方法,遇到JDK的方法如图的String.length(),不会进入;而Force Step Into可以进入自定义和JDK的方法中。

4542f04b35944d72de2419ebe490d1ca.png

4、Step Out (Shift+F8)

跳出方法:如果我们调试进入了String.length(),可以通过该操作跳出length()执行下一步

8957588218e224a596f91f0c6026ab06.png

5、Run to Cursor (Alt+F9)

执行到下一个断点,比如下图中,程序执行到55行时我们点一下按钮,则直接执行到57行,再点一下会执行到61行

76a878237ad4e11783675ad35411cf14.png

以上是平时的一些基础用法... ...

更高级的玩法

1、条件断点

非常有用的一个操作,设想我们的断点打在一个循环中,而我们只想验证某个值,常规做法是Step Over(可能想哭)和日志输出,但是有了条件断点就方便很多了。直接在红点上右键,然后在条件框中输入我们的条件,如i==50,只有i等于50的时候,程序才会暂停执行。

522ae541c66d586c66d06b3afd875937.png

2、方法断点

除了红点形状不一样外,感觉用法没什么不同(哈哈,看来还没达到一定的境界)

3e4555d67b59a71dc69fb4813a049d30.png

3、异常断点

有时候应用出现了异常,如最常见的NullPointerException,问题的定位通常是抓日志打断点再分析,但是学会了异常断电后,我们可以粗暴的运用该技巧,系统直接定位到抛该异常的位置并暂定执行。写个例子,强行抛出NullPointerException。

操作步骤:点击位置1处弹出Breakpoints面板-》点击位置2处+号-》选择3.Java Exception Breakpoints-》在弹框中键入异常类型如NullPointerException即可

好处是我们不用去打断点,系统会自动定位到抛该异常的位置,并且程序暂停执行,非常好

e9b1ead3087e9e2c3983df5f2b6a5819.png

4、Evaluate Expression (Alt+F8)

计算表达式窗口:可以动态查看和修改某个变量的值。比如例子中的isAdd初始值是false,通过该操作,不仅可以查看变量的执行到该步骤的值,而且还能修改值,如图,将isAdd改成true后,if条件不成立,可以实现我们临时修改某一状态的目的。

4bd871c126f979e196d126f84d6db6b1.png

5、View Breakpoints (Ctrl+Shift+F8)

可以看到程序中所有打了断点的位置,这里我们可以快速取消某个断点,也可以选择执行线程中的或全部的断点,甚至可以设置条件,满足条件才暂停执行

89f1de0b54e798501310d2fe5cce7d8a.png

6、Watches

如果想动态观察某个值的变化,而Variables面板的变量又太多,这是我们可以使用Watches;点击 + 按钮,在输入框输入或下拉选择历史记录,就可以观察到该变量的值了。

当然也有快捷操作,直接在代码中选中该变量,右键选择Add to Watches,同样能将该变量添加到Watches面板。如果想在Watches面板中移除该变量,右键Remove Watches即可

bdf46aec13c497998ec5846494453af1.png

如果不喜欢上图展示的界面,点击 像眼镜的按钮,就可以看到另一种展示

1cd6cbd1bbad8e69eace0a605a5905d1.png

常用的基本就这些了,如果有哪里不恰当的,请大家指出

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值