1.5 Android Studio的程序调试

1.5 Android Studio的程序调试
Android Studio目前已经成为开发Android的主要工具,作为程序开发者,在程序设过程中不可避免的会出现bug,如果发现bug进而解决,是一个程序员必备的基本素质。如其他开发工具一样Android Studio为我们提供了强大的调试功能,通常采用日志和debug调试两种方法。
1.5.1 Android Studio LogCat调试
日志工具(LogCat)
LogCat是用来获取系统日志信息的工具,它可以捕获的信息包括Dalvik虚拟机产生的信息,进程信息,ActivityManager信息,PackagerManager信息,Android运行时信息和应用程序信息等等。
日志在任何项目的开发过程中都会起到非常重要的作用,在 Android 项目中如果你想要查看日志则必须要使用 LogCat 工具。在 Android Studio 最下方的 Status Bar 中找到 6:Android Monitor,点击。如下图所示:
这里写图片描述
1.5-1
Android 中的日志工具类是 Log(android.util.Log),提供5个方法供我们打印日志。
Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v(“”,”“);
Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.
Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息
Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。
Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。
这里选择 Log level,日志级别。包括:Verbose、Debug、Info、Warn、Error、Assert。以上级别依次升高。这里错误信息的级别最高,其次是警告信息,然后是通知信息和调试信息,级别最低的是详细信息。
定制过滤器(Filter)
点击过滤器那个下拉框,选择 Edit Filter Configuration,在弹出的对话框中点击左上角的加号新创建一个 LogCat Filter。如下图
这里写图片描述

1.5-2
过滤器中含义如下:
Name:Filter 名称
by Log Tag: 通过日志的 tag 过滤
by Log Message:通过日志的 msg 内容过滤
by Package Name:通过包名过滤
by PID:通过PID过滤
by Log Level:通过日志等级过滤
regex:表示可以使用正则表达式进行匹配
填写完毕后在搜索框右侧的过滤器选项中选择你刚选择过滤器就可以了。

1.6 Android Studio debug调试
通常情况下除了日志最直接的调试手段就是debug;当我们的程序出现bug时,调试可以快速的找到bug。进入调试状态,我们可以清楚的了解程序的整个执行过程,可以对内存的数据进行监视。
1.6.1 debug调试操作
1.插入断点:选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
如下图所示:
这里写图片描述
1.6-1

2.开启调试会话

点击红色箭头指向的debug按钮,开始进入调试,程序运行到断点所在的代码行后会停止等待用户执行调试动作。
这里写图片描述
1.6-2
Debug视图中,红色的箭头指向的是现在调试程序停留的代码行方法testDebug中,程序的第18行。右下方区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。左下方区域是变量观察区域,可以在其中添加变量查看程序运行过程中变量的值。
3.step over单步调试(一步步往下走)
这里写图片描述
1.6-3
点击Step Over按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
4.step into(看到方法向里走)
这里写图片描述
1.6-4
点击step into按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。具体步骤如下:
在自定义方法发f()处设置断点,执行调试
这里写图片描述
1.6-5
点击step into按钮程序会跳入自定义函数f()中。
这里写图片描述
1.6-6

5.Force step into( 所有方法看完整)
这里写图片描述
1.6-7
击该按钮在调试的时候能进入任何方法,可以看到你所调用的所有方法的实现会让你跟着它走一遍,研究源码使用非常方便。
step out(有断点下一个,走完断点继续走)
这里写图片描述
1.6-8
如果在调试的时候你进入了一个方法(如f()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
这里如果我们的一个流程当中,包括调用的方法,如果有断点走到下一个断点,如果没有断点,而是在一个调用的方法当中,会跳出这个方法,继续走。

6.Drop frame-返回当前调用方法
这里写图片描述
1.6-9
点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
7.run to Cursor :下个断点我们见
这里的意思就是说,会很快执行到下一个断点的位置,而且可以静如任何调用的方法
这里写图片描述
1.6-10
1.6.2 debug高级调试
1. 跨断点调试
设置多个断点,开启调试。
这里写图片描述
1.6-11
单击Resume Program按钮移动到下一个断点,程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。
2. 查看断点
这里写图片描述
1.6-12
点击箭头指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性。
这里写图片描述
1.6-13
3. 设置变量值
这里写图片描述
1.6-14
调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue…)。这个功能可以更加快速的检测你的条件语句和循环语句。
4.停止调试
要注意的是这里的[停止调试]不是让程序停止,而是跳过所有调试
这里写图片描述
1.6-15
5.Attach模式调试
如果您的程序已经运行在普通模式(非Debug)的情况下,你突然想Debug,而又不想重新运行程序,这个时候就可以使用Attach模式。具体操作如下:
先设置断点,正常运行程序
这里写图片描述
1.6-16
点击Attach调试
这里写图片描述
1.6-17
或者在单击菜单run->Attch debugger to Android process
这里写图片描述
1.6-18
attach process到指定进程,条件触发之后就可以直接进入调试模式。之后就可以按照前面的断点调试模式开始调试程序。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio 是一款强大的集成开发环境(IDE),用于开发 Android 应用程序。下面是一些关于 Android Studio 程序调试的常见问题和解决方法: 1. 如何设置断点进行调试? 在代码的想要断开的地方点击左侧的代码行号,或者使用快捷键 Ctrl + F8(Windows)或 Command + F8(Mac)来设置断点。 2. 如何启动调试模式? 在 Android Studio 中,可以通过点击工具栏上的绿色调试按钮来启动调试模式。该按钮位于运行按钮旁边,图标为一个虫子。 3. 如何在调试模式下查看变量的值? 在断点停止的位置,可以通过观察窗口(Variables)来查看变量的值。该窗口通常位于屏幕底部。 4. 如何单步执行代码? 在调试模式下,可以使用工具栏上的单步执行按钮来逐行执行代码。该按钮包含一个垂直箭头和一个点。 5. 如何监视表达式? 在调试模式下,可以使用观察窗口(Watches)来监视表达式。在观察窗口中添加想要监视的表达式,就可以随时查看其值。 6. 如何查找并解决调试中的错误? 在调试过程中,可以使用工具栏上的调试控制按钮(如继续执行、暂停、停止等)来控制调试流程。当代码在调试模式下执行时,如果遇到错误,通常会通过调试窗口中的错误信息来确定错误原因。 7. 如何使用 Logcat 进行调试? Logcat 是 Android Studio 中的一个工具,可以用于查看应用程序输出的日志信息。在调试过程中,可以使用 Logcat 来输出调试信息并观察应用程序的运行状态。 8. 如何使用断言进行调试? 断言是一种用于检查代码逻辑的机制,可以在特定条件下触发错误并停止程序的执行。在 Android Studio 中,可以使用断言来验证代码是否按照预期进行执行。 9. 如何使用调试器监视网络请求? Android Studio 中的调试器可以监视应用程序发送和接收的网络请求。可以使用网络监视选项卡来查看网络请求的详细信息,并在调试过程中分析网络请求的结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值