Android Studio断点调试和高级调试

转载 2016年05月31日 10:51:26

有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说Android Studio的调试是我见过最棒的。


好了开始写一个简单的调试程序,我们先来一个for循环

?
1
2
3
4
5
6
7
8
<code class="language-java hljs ">for (int i = 0; i < 10; i++) {
//获取当前i的值
    int selector = i;
    //打log查看当前i的值(此步多余,实际开发请忽略)
    Logger.e("for当前的i的值:" + i);
    //调用方法
    stepNext(i);
}</code>

设置断点(点击红点位置添加或取消断点)

这里写图片描述

点击debug模式运行

这里写图片描述

查看调试面板

这里写图片描述

一、简单调试


1. step over:一步步往下走

这里写图片描述

当前程序运行的位置,我们看到i的值已经在程序代码中展示出来了,黄色的代码处,这个是AS的功能,对于我们调试来讲,这简直是非常大的福利了。

这里写图片描述

点击单步调试按钮或按快捷键F8,看看效果。这里我们看到selector变量的值已经出来了selector:0,我们在看看黄色位置i的当前值是0。

这里写图片描述

这时我们继续F8,我们切换到logcat查看日志,我打印出的i的值是0,

这里写图片描述

我们在切回道Debugger面板,可以看到Variables显示面板中,有i的值是0,selector的值是0。以及我们可以看到Frames控制面板中可以显示出当前程序的位置在:onCreate():28,第28行。

这里写图片描述

2. step into:看到方法往里走

比如我们的for循环当中调用了一个stepNext(int i)方法,当我们走到这里想看看这个方法里面的运行过程的时候我们可以这样,当走到这个方法的时候我们可以按下F7,或者如下图的图标。

这里写图片描述

这时就走到了stepNext方法当中。

这里写图片描述

在这里打印了一个log,我们再按一下F8我们来看看Logcat, 这里我打印的log都是为了做教程用,调试我们就不用打log了直接看显示面板就OK了

这里写图片描述

3. force step into :所有方法看完整

这个是可以看到你所调用的所有方法的实现会让你跟着它走一遍,研究源码使用非常方便

这里写图片描述

4. step out :有断点下一个,走完断点继续走

这里如果我们的一个流程当中,包括调用的方法,如果有断点走到下一个断点,如果没有断点,而是在一个调用的方法当中,会跳出这个方法,继续走。

<img alt="这里写图片描述" src="http://www.2cto.com/uploadfile/Collfiles/20150616/20150616083836159.png" title="" http:="" www.2cto.com="" kf="" ware="" vc="" "="" target="_blank" class="keylink" style="border-width: 0px; padding: 0px; margin: 0px auto; list-style: none; display: block; width: 630px; height: 115.915px;">vc/E0aOsvtm49sD919OjujxiciAvPg0KPGltZyBhbHQ9"这里写图片描述" src="http://www.2cto.com/uploadfile/Collfiles/20150616/20150616083836160.png" title="\" />

(上图)我现在程序位置在第一个断点位置(24行),我调用的stepNext方法中也有一个断点,此时我按下step out按钮会走到stepNext中的断点处(39行)我此时如果再按一下step out 会走到stepNext方法的调用出的下一个可执行代码(30行)

这里写图片描述

(上图)如果我现在程序位置在stepNext的方法中,如果我此时按下step out,会走到stepNext方法的调用出的下一个可执行代码(30行)

5. run to Cursor :下个断点我们见

这里的意思就是说,会很快执行到下一个断点的位置,而且可以静如任何调用的方法

这里写图片描述

二、高级调试


1. 跨断点调试

如果我们设置了多个断点,现在我们需要直接跳转到下一个断点,那么直接点击下图就可以了

这里写图片描述

2.观察变量

如果我们想观察1个或者几个变量的值的变化,如果我们在Variables显示面版中观察如果我这里有太多太多的自定义变量和系统变量了,那么就难观察了,我们可以做如下操作:
点击Watches,点击+号,然后输入变量的名称回车就OK了,而且会有历史记录哦

这里写图片描述

如果变量名比较长我们可以这样:
选择[Variables]中的变量名然后点击[右键],选择[Add to Watches],然后Watches面板中就有了

这里写图片描述

3.设置变量的值

在程序中有很多的条件语句和循环语句,调试也是比较耗时的,我们可以通过快速设置变量的值来加快调试速度,我们可以做如下操作:
选择[Variables]中的变量名然后点击[右键],选择[Set Value..]或者选择之后直接F2(如上图)(下图为Variables面板)

这里写图片描述

4.查看断点

这里写图片描述

点击之后我们可以看到所有的断点,以及位置代码,也可以设置一些属性
这里写图片描述

5.停止调试

要注意的是这里的[停止调试]不是让程序停止,而是跳过所有调试
这里写图片描述

到这里我们的Android Studio的断点调试和高级调试就完毕了。

[Android Studio 权威教程]断点调试和高级调试

有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说Android Studio的调试是我见过最棒的。 好了开始写一个简单的调试程序,我们先来一个for循环 for (int i...
  • yy1300326388
  • yy1300326388
  • 2015年06月15日 11:26
  • 27380

Android studio断点调试(全在这里)

有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说Android Studio的调试是我见过最棒的。 下面会将debug模式和Attach模式的断点调试 好了开始...
  • huangxiaominglipeng
  • huangxiaominglipeng
  • 2016年11月09日 16:04
  • 16488

使用ANDROID STUDIO如何开展断点调试

熟悉android开发的童鞋应该对Android studio都不陌生,它是android开发中最常用的开发环境之一,在程序开发中,我们常常需要进行断点调试,那在android studio中,如何开...
  • piooix
  • piooix
  • 2016年01月22日 16:48
  • 1155

Android studio下如何使用断点调试功能

先编译好要调试的程序。 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。   2.开启调试会话 点击红色箭头指向的小虫子,开始进入...
  • lanxingfeifei
  • lanxingfeifei
  • 2016年02月29日 15:31
  • 11197

App Widget深入+Android Studio 真机断点调试注意事项

最近几天一直想做一个类似于时钟的App Widget的效果,然后就开始设计,看了google 的有关文档,按照步骤先弄出了一个没有任何实际效果的widget, 又了解到相关的AppWidgetPro...
  • ssjj_programmer
  • ssjj_programmer
  • 2016年12月05日 22:34
  • 536

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

前言:上篇博客 AndroidStudio-断点调试-也许你该知道断点调试是有多么的美好 ,记录了AndroidStudio上断点调试的基本流程和debug面板按钮介绍.这一篇就给大家分享一点调试的小...
  • qq_32452623
  • qq_32452623
  • 2017年01月02日 23:18
  • 7326

Android NDK单步断点调试

转自:http://blog.csdn.net/wutianyin222/article/details/8222838
  • gf771115
  • gf771115
  • 2014年09月28日 23:40
  • 4791

Android Studio 断点调试Android源码的配置方法

前言 有些时候没有写些东西了,最近一直忙于公司里的全景相机项目,头都整大,如果后期有空,我也想将走过来遇到的大小问题在这里啰嗦一下,也算是总结吧。至于今天为什么会说到这个主题,主要是在做全景相机项目...
  • antier_soft
  • antier_soft
  • 2017年03月09日 20:31
  • 1723

Android Studio---断点调试和高级调试

有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说Android Studio的调试是我见过最棒的。 好了开始写一个简单的调试程序,我们先来一个for循环 ? ...
  • IT1039871366
  • IT1039871366
  • 2015年07月14日 11:55
  • 9398

Android Studio调试设置的断点无效

真他娘的坑爹,今天调试一个程序,在一个Activity里面设置了断点,无论如何代码都不能在断点处停下来,查了一整天才发现原来是这个罪魁祸首解决办法解决办法有两种: 第一种就是调试的时候将android...
  • wsgqp
  • wsgqp
  • 2016年07月18日 23:56
  • 11074
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Studio断点调试和高级调试
举报原因:
原因补充:

(最多只允许输入30个字)