使用Android Studio进行Debug

android studio 教程 | 2019-01-13 08:18

使用调试工具(Debug Tools)进行调试(Debug)是一个程序员必不可少的技能,但是很多程序员对于调试工具的使用,很多都仍处于初级阶段。即便是工作很多年的老鸟,可能也只会最基础的调试。前段时间根据自己所掌握的调试基础,给公司内部作了一个分享,这里再行记录一下。其实从准备开始记录这些基础的琐碎的东西,经常要拖好久才能完成。一个是因为有些忙,一个是因为有些懒,还有一个是因为觉得,所要记录的这些东西太基础了。技术的学习就是这样,有些东西,无论基础与否,如果不熟悉,或者好久没有使用了,便生疏了。而一旦掌握或者重新掌握,觉得不过如此而已。   所谓不积跬步无以至千里,不积小流无以成江海。还是踏踏实实的记录下来吧,权当以后做一个回顾。

首先上来介绍一下最基本的信息——图形界面介绍。

如图所示,我将界面分成了ABCEDF六个区块,其中A为我们最常用的代码工作区,B为断点调试的快捷按钮区(Step Out/Step into等等),C为Debug相关工具快捷按钮区(Restart/Resume/Stop等等),D为当前断点线程和方法栈展示区,E为变量展示区,F为断点信息区。

注:Intellij和Android Studio,以及不同版本的Android Studio之间界面会有些许差别。本例中版本为Android Studio 3.3.

B-调试快捷按钮区域

第一个按钮的作用是快速定位到当前断点(指的是当前运行)所在位置。当我们调试到某行代码时,往往会点击某个类或者某个方法去查看它的源码(不是Step Into,只是查看代码),点了好几层之后,想要快速回到最开始的位置,只需要点击这个按钮即可。接下来的4个按钮做过研发的同学想必都很熟悉了,分别是Step Over/Step Into/Force Step Into/Step Out,Step Into和Force Step Into的区别在于,前者能够进入自己编写以及第三方库(包括Android SDK)的方法(默认跳过jdk的方法),后者可以进入jdk源码的代码。第5个按钮是Drop Frame,顾名思义,是将当前帧卸载掉,意思就是讲当前执行的代码回滚。为什么这个按钮在这里是灰的,不可点击的呢?因为Android的Dalvik虚拟机及ART机制都不支持该操作,如果我们是原始的Java程序,jvm支持的情况下,就可以实现这个功能。我们可以在junit中试一下这个功能。

在Drop Frame后面是Evaluate Expression按钮,这个也是非常有用的一个功能。点击这个按钮,我们可以编写代码做一些计算工作。

最后一个置灰的按钮是Trace Current Stream Chain,是用来跟踪java8的lambda语法流状态的。这里不展开讲解。

C-调试相关工具快捷按钮区这一块蛮简单的,主要是上面提到的中断调试、恢复运行、查看设置断点,以及一些调试设置等。大家可以自行试用一下。主要提一点就是照相机