Android Studio DeBug
额,之前都是用log日志输出,自己想要的东西.搞得代码到处都是Log.i()...
突然有一天,,,自己get到了,Android 断点....调试....,
世界就变得不一样了....
这篇文章,算是自己阅读和实战后的笔记吧~
1.adb连接后,打开debug
2.debug断点的设置
3.debug的面板分析
在你,点击第一步的ok之后, 会弹出debug的窗口.其中的界面如下.
区域分别为
- 单步调试区
- 断点管理区
- 求值表达式
- 线程帧栈区
- 对象变量区
- 变量观察区
4.debug,演示操作
5.debug操作姿势--单步调试区
该区提供了调试的主要操作,和你所熟知的一样的,主要有:Step over、step into、force step into、step out、drop frame。
5.1 全局数值监视 watch
5.2 变量变化 variables
5.3 交互式解释器Evaluate expression
你可以执行任何你想要执行的表达式进行求值操作
5.4 Force Run to Cursor
可以忽视已经存在的断点,跳转到光标所在处.
如现在第10行,此时我想调试18行而又不想一步一步调试,能不能一次到位呢?我们只需要将光标定位到相应的位置,然后执行Force Run to Cursor即可:
5.5 Get thread dump这里写图片描述
6.断点的分类
断点是调试器的功能之一,可以让程序暂停在需要的地方,帮助我们进行分析程序的运行过程
方法断点
单行断点
条件断点
日志断点
异常断点
属性断点
6.1 方法断点
最常用,略过
6.2单行断点
最常用,略过
6.3条件断点
条件断点,就是某种特定条件下,才会发生的断点.比如,现在我们有个list中,其中包含了q,1q,2q,3q四个元素,我们希望在遍历到2q时暂停程序运行,那么需要进行如下操作:
在需要的地方添加断点,如下:
断点处左键单击,在Condition处填写过滤条件.此处我们只关心2q,因此填写s.equals("2q")
6.4日志断点
该类型的断点不会使程序停下来,而是在输出我们要它输出的日志信息,然后继续执行。具体操作如下:
同样在断点处左键单击,在弹出的对话框中取消选中Suspend。
在弹出的控制面板中,选中Log evaluated expression,然后再填写想要输出的日志信息,如下:
当调试过程遇到该断点将会输出结果,如下:
6.5#属性断点 Filed WatchPoint
Filed WatchPoint是本质上是一种特殊的断点,也称为属性断点:当我们某个字段值被修改的时候,程序暂停在修改处。通常在调试多线程时尤为可用,能帮我们及时的定位并发错误的问题。
参考:
江湖人称小白哥的 Android Studio代码调试大全,写的确实很好,大家可以去 看下,一片足以让你掌握Android调试的文章