当前位置: 首页 > news >正文

[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模式运行<喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjwvYmxvY2txdW90ZT4NCjxwPjxpbWcgYWx0PQ=="这里写图片描述" src="/uploadfile/Collfiles/20150616/20150616083835148.png" title="\" />

查看调试面板

这里写图片描述

一、简单调试


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 :有断点下一个,走完断点继续走

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

这里写图片描述

这里理解比较难,举个例子:
这里写图片描述

(上图)我现在程序位置在第一个断点位置(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的断点调试和高级调试就完毕了。


有兴趣的童鞋可以关注我的Blog,我的专栏会持续更新Android Studio 教程,以及2015 I/O大会上的NDK的配置和编译,我也全部会分享给大家。
并且我收到了CSND 的讲师邀请,后期我会把这些Android Studio的使用教程录制成视频发布在CSDN学院。


?
1
2
3
4
5
6
7
8
9
10
11
12
13
<code class = "language-java hljs " > /**
  * --------------
  * 欢迎转载   |  转载请注明
  * --------------
  * 如果对你有帮助,请点击|顶|
  * --------------
  * 请保持谦逊 | 你会走的更远
  * --------------
  * @author zsl
  * @github https://github.com/yy1300326388
  * @blog http://blog.csdn.net/yy1300326388
  */
</code>

相关文章:

  • Java 专业人士必备的书籍和网站列表
  • JMeter常用字符串相关函数
  • 2006-2007互联网前沿发展大趋势
  • 基于复杂方案OWSAP CsrfGuard的CSRF安全解决方案(适配nginx + DWR)
  • 技术杂谈
  • 回发或回调参数无效
  • 学习三大境界!
  • at命令详解
  • ARM 汇编寻址方式
  • C#多线程应用技术面对面探讨
  • 简单的多人聊天(C#.Socket)
  • Direct3D极速入门宝典
  • 正则语言(转的 大额_skylar )
  • ASP.NET 2.0中直接将Access数据库导入到Excel文件中
  • 读书笔记1
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • CSS中外联样式表代表的含义
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Mithril.js 入门介绍
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • React-redux的原理以及使用
  • springMvc学习笔记(2)
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 从输入URL到页面加载发生了什么
  • 汉诺塔算法
  • 前端面试之CSS3新特性
  • 前端学习笔记之观察者模式
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 微信小程序:实现悬浮返回和分享按钮
  • 详解NodeJs流之一
  • 新书推荐|Windows黑客编程技术详解
  • 用 Swift 编写面向协议的视图
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (转) Face-Resources
  • **CI中自动类加载的用法总结
  • .Net 6.0 处理跨域的方式
  • .NET MVC第三章、三种传值方式
  • .NET Reactor简单使用教程
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .Net各种迷惑命名解释
  • .net流程开发平台的一些难点(1)
  • .py文件应该怎样打开?
  • [.NET]桃源网络硬盘 v7.4
  • [CTSC2014]企鹅QQ
  • [DevEpxress]GridControl 显示Gif动画
  • [EFI]Dell Latitude-7400电脑 Hackintosh 黑苹果efi引导文件
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • [HJ56 完全数计算]
  • [Interview]Java 面试宝典系列之 Java 多线程