首页 > 代码库 > android studio下的代码调试技巧的运用
android studio下的代码调试技巧的运用
记得当初刚开始学习java的时候,每次在eclipse上遇到调试程序的时候都是敲syso+快捷键,用system.out.printLn.输出语句来调试java的程序,哈哈哈,当初感觉确实蛮方便的,后来慢慢步入到安卓,然后使用安卓版的eclipse,在安卓代码当然是要杜绝java的输出语句了,于是又用输出日志Log的几种方式来调试,偶尔还会用到吐司调试(尴尬),eclipse版本的debug模式当初没怎么用习惯,只会简单的单步调试,于是就荒废了,虽然调试起来有点麻烦,但是用顺手了也还马马虎虎,但是复杂的程序崩溃的时候,日志输出虽然能慢慢的找到问题所在,但是所花费的时间确实太长了,终于到了后来谷歌不再推荐eclipse作为安卓的开发软件,而是用android studio来作为标准的开发工具。于是根据公司的需要,也开始用as来开发软件,下面是自己在android studio的工具下,运用debug断点调试的一些基本使用技巧。
一.调试的两种方式:
首先介绍下Debug和Attach process两种方式的区别:
1.debug按钮:以调试模式安装运行程序的,断点可以设在运行程序之前,也可以设在运行程序之后。
2.attach process按钮:和Debug方式相比,就是调试当前已经处于运行状态下的App,能够将调试器attach到任何正在运行的进程,这也是我们最常用的一种调试模式。
二.单步调试区
在单步调试区中主要有Step over、step into、force step into、step out、drop frame。
1.Show Execution Point按钮
点击该按钮,光标将定位到当前正在调试的位置.
2.Step Over按钮按f8即可
单步跳过,点击该按钮将导致程序向下执行一行。如果当前行是一个方法调用,此行调用的方法被执行完毕后再到下一行。
3.Step Into按钮按f7即可
单步跳入,执行该操作将导致程序向下执行一行。如果该行有自定义的方法,则进入该方法内部继续执行,需要注意如果是类库中的方法,则不会进入方法内部
4.Force Step Into按钮
强制单步跳入,和step into功能类似,主要区别在于:如果当前行有任何方法,则不管该方法是我们自行定义还是类库提供的,都能跳入到方法内部继续执行。对研究源码有一定的帮助。
5.step out
如果在调试的时候你进入了一个方法(),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
6.Drop Frame
中断执行,点击该按钮后,你将返回到当前方法的调用处重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
7.Run to Cursor
可以忽视已经存在的断点,跳转到指定光标所在处.
三.断点管理区
1.resume program按f9即可
该操作有恢复应用的含义,但是却有两种行为:
1. 在应用处在暂停状态下,点击该按钮将恢复应用运行.
2. 在很多情况下,我们会设置多个断点以便调试。在某些情况下,我们需要从当前断点移动到下一个断点处,两个断点之间的代码自动被执行,这样我们就不需要一步一步调试到下一个断点了,省时又省力。
2.pause program
点击该按钮将暂停应用的执行.如果想要恢复则可以使用下面提到的Resume Program.
3.stop
点击该按钮会通过相关的关闭脚本来终止当前进程.换言之,对不同类型的工程可能有不同的停止行为,比如:对普通的Java项目,点击该按钮意味着退出调试模式,但是应用还会执行完成.而在Android项目中,点击该按钮,则意味这app结束运行.
4.View Breakpoints
点击该按钮会进入断点管理界面,在这里你可以查看所有断点,管理或者配置断点的行为,如:删除,修改属性信息等:
5.设置变量值
调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue...)。这个功能可以更加快速的检测你的条件语句和循环语句。
最后总结,android studio下的debug调试模式功能很强大,还有很多没说到的地方,等以后涉及到的时候再一一补充出来。
android studio下的代码调试技巧的运用