Android Studio是一个很是优秀的开发工具,同时也内置了很是强大的调试方式,今天来学习一下Android Studio里的调试技巧。html
方式一:运行调试
从新编译整个工程并进入Debug状态。若是开启了Instant Run,那么也具备Instant Run的特性。android
方式二:附加进程调试
经过直接链接手机上正在运行的进程进行调试。若是一个测试人员拿过来一部程序运行到一半的手机,问你“这个网络调用怎么报错啊?”,这时使用这个功能就特别有用。express
PS:只有在须要调试的那部分工程代码和进程匹配才能正确调试并定位问题,不然代码不知道会跳转到哪去~android-studio
选择要链接的进程网络
链接成功后在调试终端中会显示如下日志。工具
1、添加/删除断点
添加、删除断点无需多作介绍了。最简单的方式就是在每一行左边的空白处点击一下添加,再店家一下断点删除。学习
2、管理断点
打开断点管理窗口开发工具
左边列出工程中全部的断点,能够增长、删除、关闭断点。同时能够设置每一个断点的属性。
测试
- Enable:控制断点是否可用,不会删除该断点,只是控制断点是否可用。
- Suspend:控制运行到该断点时线程是否挂起。如关闭该选项,线程不会挂起,但依然会执行为该断点设置的其余功能。好比Log。
- Condition:设置执行该断点的条件,具体见条件断点。
- Log message to console:将断点自身的消息打印到console中。
- Log evaluated expression:打印自定义的表达式,具体件日志断点。
- Remove once hit:设置一次性的断点,执行过该断点就被删除。
- Disabled until selected breakpoint is hit:设置执行该断点的关联条件。
3、断点的分类
根据做用和调试场景的不一样,Android Studio中的断点能够划分为如下几类断点:通常断点、条件断点、日志断点、方法断点、异常断点、成员观察点(Field WatchPoint)。各种断点没有明确的界限,有时须要相互配合使用才能快速地定位问题。lua
通常断点一般配合单步调试使用。
单步调试
Android Studio提供了多种步进方式。
- Step Over:单步前进,不进入子方法;
- Step Into:单步前进,若是断点包含子方法则进入方法(不会进入官方类库的方法);
- Force Step Into:在Step Into 的基础上能进入任何方法;
- Smart Step Into:语句包含两个或者以上方法链式调用,能够选择进入那个方法,包括匿名内部类,Lamda表达式也能够;
- Step Out:单步前进,若是已在子方法里面则跳出;
- Run to Cursor:直接跳到光标定位的地方,这个功能很是有用。
- Drop Frame:点击该按钮后,你将返回到当前方法的调用处从新执行,而且全部上下文变量的值也回到那个时候。只要调用链中还有上级方法,能够跳到其中的任何一个方法;
- Resume Program:继续执行;
在断点的位置设置条件,那只有符合条件的状况下才停下来,例如调试一个for循环的时候有几百次循环可是想看到某个次数时候则至关方便。
勾选Log evaluated expression并填入表达式,执行到此断点时会在debug console中打印此表达式。能够根据须要去掉suspend。
在方法开头设置,断点标识红色四黑点的标识。而且能够选择进入和退出方式时观察。
设置异常断点,在程序发生异常的时候会进入断点。能够指定Any exception或特定类型的Exception。
为某个类的全局变量设置成员观察点,当该变量被访问或改变的时候进入断点。
- 在断点停留的时候,在变量上Alt+鼠标左键就能弹出变量信息窗口。
- 在Android Studio下方的Debug窗口的Variables中也会显示全部能定位到的变量。
- 能够在Watches窗口中添加关注的变量。这样在程序调试的过程当中能够实时地观察该变量。并同时观察多个变量。
- 右键点击变量,选择Set Value能够实时更改变量值
- 右键点击变量,选择Mark Object进行标记
- 计算表达式,这个功能在调试时很是有用。点击下图的图标打开窗口:
Expression Mode下输入表达式进行Evaluate能够看到表达式的值:
Code Fragment Mode下输入代码片断能够看到最后一个表达式的值:
Android Studio的Debug技巧基本介绍结束了。本文中介绍了Android Studio开启Debug模式、断点的分类、观察变量值。在实际的Debug过程当中,须要灵活地使用Debug技巧,才能快速地定位问题。
Android Studio 调试技巧
http://www.cnblogs.com/wust221/p/5427094.html
android studio学习----调试---断点调试