Android Studio 调试
Posted yayun0516
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio 调试相关的知识,希望对你有一定的参考价值。
编写代码很多时候都会“差强人意”,很难一次获得想要的结果,出现错误的时候需要查找错误的原因,这种查找的过程可以称为“程序调试”。一般来讲程序员百分之十的时间写代码,百分之九十的时间都在调试,因此要认识到调试的重要性。调试的方式有多种,这里介绍最常用的两种:Logcat调试方式和断点调试方式。
2.3.1 Logcat调试
Logcat调试方式很简单,在可能出现错误的地方将变量的值打印出来,方便分析总结错误原因。这里编写一个简单的Java程序,如下:
private int calculateMultiply(int i)
return i * i;
int[] testInts = new int[10];
public void test(View view)
int i = 0;
while (i <10)
i++;
int i2 = calculateMultiply(i);
testInts[i-1] = i2;
Log.d(TAG, "onCreate: " +testInts[i-1]);
使用while循环不断计算i*i的值并通过Log打印出来,这时查看Logcat窗口中的Log信息如图2.60所示。
图2.60 Logcat窗口中的Log信息
这里通过TAG(MainActivity)来过滤日志信息,可以看出所有的i*i都被打印出来了,根据打印的值即可初步判断是否发生错误。
2.3.2 断点调试
断点调试相对于Logcat调试要复杂一些,较Logcat显示运行后的结果,断点调试可以暂停程序的运行而获得运行中的结果。调试可以分成几个步骤,下面一一介绍。
1. 添加断点
在想要调试的代码行的左边栏左键点击一下即可添加一个断点,如图2.61所示。
图2.61 添加断点
在i++处添加了一个断点,下面就可以点击工具栏中的调试按钮开始调试。
2. 开始调试
点击工具栏中的调试按钮,如图2.62所示。
图2.62 调试按钮
此时进入调试准备阶段,查看底部的监视窗,如图2.63所示。
图2.63 调试监视窗一
图2.61中的test方法是按钮的单击事件监听,因此单击模拟器中的按钮触发进入调试阶段,如图2.64所示。
图2.64 调试监视窗二
可以看出,此时由Console切换到了Debugger标签,我们可以根据窗口内的工具栏按钮或快捷键来控制程序的运行。常用的调试方式有三种(Step Over、Step Into、Step Out),下面一一介绍。
Step Over,可以控制程序向下运行一步,两种方式进行操作,一种点击工具栏中的按钮如图2.65所示。
图2.65 Step Over键
当然也可以使用快捷键F8来控制,这时查看代码编辑区,如图2.66所示。
图2.66 代码调试下一步
可以看出,此时代码已由断点处向下运行了一行(蓝色背景行)。
Step Into,这个操作可以进入到调试中遇到的方法体中,例如上面的操作中遇到了calculateMultiply方法,想要进入到这个方法体中就可以单击工具栏中的Step Into按钮,如图2.67所示。
图2.67 Step Into键
同样也可以使用快捷键F7进行操作,再次查看代码编辑区如图2.68所示。
图2.68 代码调试进入方法中
可以看出,此时代码调试运行到方法calculateMultiply中了,在程序的右边显示出了这时方法的参数i的值。
若上面的步骤中进入了一个比较繁复的方法,而我们没有耐心一步步执行到最后,这时就可以使用Step Out跳出来,如图2.69所示。
图2.69 Step Out键
同样可以使用Shift+F8快捷键进行操作,再次查看代码编辑区,如图2.70所示。
图2.70 代码调试-跳出方法
这时又跳脱到了刚才进入方法的地方,这时再按F8快捷键又可以向下运行了。
2.3.3 高级调试
1. 变量值设置
对于有些For循环或While循环,一步步执行可能需要耗费很多时间,例如上面的While循环,我们想查看一下i为9时的值,若一步步执行就需要执行9遍,会比较抓狂,有没有比较好的方式呢?当然,我们可以设置变量的值,在监视面板中选择要改变数值的变量,点击右键如图2.71所示。
图2.71 代码调试-变量值设置一
在弹出菜单中选择Set Value...,输入数值,如图2.72所示。
图2.72 代码调试-变量值设置二
按Enter键即可设置成功,这时再次到代码中查看,如图2.73所示。
图2.73 代码调试-变量值设置三
可以看出,此时i变量的值已经变成了9。
2. 断点跳转
一般来讲,一次调试过程可能涉及多个断点,这时就可能需要断点间跳转的功能,例如图2.74中的程序中添加了两个断点。
图2.74 代码调试-断点跳转一
假设运行到第一个断点查看变量值之后,想迅速跳转到第二个断点,这时就可以点击调试框中的Run to Cursor按钮快速跳转,如图2.75所示。
图2.75 代码调试-断点跳转二
当然也可以通过快捷键Alt+F9来实现,如图2.76所示。
图2.76 代码调试-断点跳转三
可以看出,直接跳转到了第二个断点。
3. 表达式/方法值计算
若调试的代码中有一些表达式或方法值需要计算,就需要用到Evaluate Expression...功能,选中需要计算的表达式或方法,点击右键,在弹出右键中选择Evaluate Expression...如图2.77所示。
图2.77 代码调试-计算表达式值一
在弹出框内点击Evaluate按钮即可计算表达式的值,如图2.78所示。
图2.78 代码调试-计算表达式值二
在Result栏中显示出计算值。
4. 查看所有断点
点击调试监视框左边栏的View Breakpoints即可查看所有断点,如图2.79所示。
图2.79 代码调试-查看所有断点
当然也可以使用快捷键Ctrl+Shift+F8来打开,此外,还有一个可以查看所有断点的入口,工具栏Run->View Breakpoints,打开查看界面如图2.80所示。
图2.80 代码调试-查看所有断点界面
这时在左边栏中就可以看到所有的断点,在右下角还可以看到断点在代码中的位置,点击左上角的 “+” 和 “-” 可以添加或删除断点。
5. 停止调试
不想继续调试时,记住点击左边栏的Stop按钮来停止调试,如图2.81所示。
图2.81 代码调试-停止调试
停止后的监视窗如图2.82所示。
图2.82 代码调试-停止调试后视图
如果你喜欢作者的文章,还可以购买他的书(京东自营):
以上是关于Android Studio 调试的主要内容,如果未能解决你的问题,请参考以下文章
[Android Studio 3.5为每个调试会话进行gradle构建
Android Studio 调试器无法打开选定的 VM 调试端口 (8700)