Android Studio 你需要掌握的Debug技巧(上)

Android Studio 你需要掌握的Debug技巧(上)

对所有程序猿来说,写代码最让人头疼的不是某个难以实现的功能,而是辛辛苦苦码完代码却发现自己的程序里面存在着这样或那样的Bug。尤其是碰到那种让你绞尽脑汁,修改了无数次都解决不了的Bug。我相信,很多朋友都会有这样的经历。对于开发者来说,几个小的Bug也许看上去问题不大,可如果不及时解决,一旦积累起来,轻则会影响用户体验,重则可能会使整个系统崩溃!
所以,这一次,我决定以Android Studio为例,简单地总结一下Android开发当中可能会用的的调试技巧。

最基本的调试技巧

千万不要觉得那些简单的基本的东西不重要。事实证明,这些技巧往往是我们平时使用最为频繁的,所以,先从这些讲起。

1.设置断点

设置断点(图1)
选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。

2.Debug模式启动APP(Shift+F9)

点击红色箭头所指向的虫子图标,Debug模式启动APP。
Debug模式启动APP(图2.1)

APP启动后,运行至第一处断点处会停下来,同时IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法Add()中,程序的第20行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。
同时也能看到,设置断点的代码行变量i处在监控之中,此时,i = 0。

Debug视图(图2.2)

3.单步调试

3.1 step over(F8)

点击红色箭头指向的step over按钮(图中我们按了两次让 i =1,看的明显一些),程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行。就是说不会进入到调用的其他方法中去)。
step over(图3.1)

3.2 step into(F7)

点击红色箭头指向的step into按钮,程序向下执行一行。跟step over不同的是:如果该行有方法调用且为自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。
step into(图3.2.1)

点击以后,进入到Add()方法之中。

step into(图3.2.2)

step into按钮右边的 Force step into按钮(Alt+Shift+F7)可以进入包括官方类库在内的任何方法。

3.3 step out(Shift+F8)

如果在调试的时候你进入了一个方法(如Add()),并觉得该方法没有问题,你就可以使用step out跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
step out(图3.3.1)

没有问题,点击step out按钮,跳出该方法,该方法执行完毕。
step out(图3.3.2)

这个Drop frame暂时还没有搞清楚怎么用,等以后补充。。。

3.4 run to Cursor(Alt+F9)

run to Cursor(图3.4.1)
设置多个断点时,可利用 run to Cursor按钮在两个断点之间跳转。
run to Cursor(图3.4.2)
其实Resume Program也是这个功能,它们有什么不同还不清楚。。。

3.5 Watches

如果某个类或方法中变量太多,在Variables面板里观察的话会很费劲,这时就会需要用到Watches这个工具了。
点击Watches下方的+号,然后手动输入变量的名称回车就OK了。
Watches(图3.5.1)

也可以选择Variables中的变量名然后点击右键,选择Add to Watches,然后Watches面板中就有了。
Watches(图3.5.2)
还能看到SetValue选项,可以手动更改某个变量的值,有时候会很有用。

3.6 View BreakPoints(Ctrl+Shift+F8)

View BreakPoints(图3.6.1)

点击箭头指向的按钮,会弹出一个窗口,如下图。

View BreakPoints(图3.6.2)

在这里可以查看设置过的所有断点(箭头所指)。另外,还可以在这里设置条件断点,日志断点,异常断点等,这些高级技巧我们将在本系列的下篇文章里介绍,敬请期待!

等等!先别着急翻页,本期还有最后一个压轴的技术点要分享给大家。
想象一下下面的场景:你的APK如果已经运行在普通模式(非Debug)的情况下,你突然想Debug,而又不想重新运行浪费时间,该怎么办呢?
普通模式下想设置断点进行调试可不可以呢?
当然是可以的,不仅可以,这种方式已经渐渐替代了原先的方案,毕竟很方便,不是吗?那具体要怎么做呢?

4 attach process

attach process(图4.1)

正常运行APK
attach process(图4.2)

运行起来之后,设置断点
attach process(图4.3)

运行Run->Attach debugger to Android process
attach process(图4.4)

attach process到指定进程,条件触发之后就可以直接进入调试模式。之后该怎么做不用我再说了吧?

参考文章:
http://www.2cto.com/kf/201506/408358.html
http://www.cnblogs.com/firstcsharp/p/4333264.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值