Android Studio DeBug

简介: Android Studio DeBug额,之前都是用log日志输出,自己想要的东西.搞得代码到处都是Log.i()...突然有一天,,,自己get到了,Android 断点.

Android Studio DeBug

额,之前都是用log日志输出,自己想要的东西.搞得代码到处都是Log.i()...

突然有一天,,,自己get到了,Android 断点....调试....,

世界就变得不一样了....

这篇文章,算是自己阅读和实战后的笔记吧~

1.adb连接后,打开debug

img_b14e37348b4bfaf5038a035db599b4d2.png
这里写图片描述

2.debug断点的设置

img_aec426bf892ace24358e61e0acad4497.jpe
这里写图片描述

3.debug的面板分析

在你,点击第一步的ok之后, 会弹出debug的窗口.其中的界面如下.
区域分别为

  • 单步调试区
  • 断点管理区
  • 求值表达式
  • 线程帧栈区
  • 对象变量区
  • 变量观察区
img_1793094312653cf23a52049cf5e2e18b.jpe
这里写图片描述

4.debug,演示操作

这里写图片描述
这里写图片描述

5.debug操作姿势--单步调试区

该区提供了调试的主要操作,和你所熟知的一样的,主要有:Step over、step into、force step into、step out、drop frame。

5.1 全局数值监视 watch

img_a91613fc7d1e84ad05d0feedc2c3ffbc.jpe
这里写图片描述

5.2 变量变化 variables

img_6e02beb42cf4e0273bf7c29c28c6417b.jpe
这里写图片描述

5.3 交互式解释器Evaluate expression

img_198d99dedc0bd5ae2227df4cb3fe6b01.jpe

你可以执行任何你想要执行的表达式进行求值操作


img_ca8393cf33c1384b6863a677efc9f874.jpe
这里写图片描述

5.4 Force Run to Cursor

img_c587651b1909193c32a5850b356a68a5.jpe

可以忽视已经存在的断点,跳转到光标所在处.
如现在第10行,此时我想调试18行而又不想一步一步调试,能不能一次到位呢?我们只需要将光标定位到相应的位置,然后执行Force Run to Cursor即可:

5.5 Get thread dump这里写图片描述

img_cb4bb58cc2d79f7c57eef134c4a14c96.jpe

6.断点的分类

断点是调试器的功能之一,可以让程序暂停在需要的地方,帮助我们进行分析程序的运行过程

方法断点
单行断点
条件断点
日志断点
异常断点
属性断点

6.1 方法断点

最常用,略过

6.2单行断点

最常用,略过

6.3条件断点

条件断点,就是某种特定条件下,才会发生的断点.比如,现在我们有个list中,其中包含了q,1q,2q,3q四个元素,我们希望在遍历到2q时暂停程序运行,那么需要进行如下操作:
在需要的地方添加断点,如下:

img_48772b0f7f7c2794b2be820d86c49a21.png

断点处左键单击,在Condition处填写过滤条件.此处我们只关心2q,因此填写s.equals("2q")
img_455b788b4bb730e4476d9c1d6f952260.png

6.4日志断点

该类型的断点不会使程序停下来,而是在输出我们要它输出的日志信息,然后继续执行。具体操作如下:
同样在断点处左键单击,在弹出的对话框中取消选中Suspend。


img_353216196f6338154721cf9898e5a9a9.png

在弹出的控制面板中,选中Log evaluated expression,然后再填写想要输出的日志信息,如下:

img_f72a394c8ce27e1e4171ab2a27159c68.png

当调试过程遇到该断点将会输出结果,如下:


img_ccf2f2b0c5101409f39b93c8dd713f42.png

6.5#属性断点 Filed WatchPoint

img_1c03501c035b9d4e958a1671e0f688b9.jpe

Filed WatchPoint是本质上是一种特殊的断点,也称为属性断点:当我们某个字段值被修改的时候,程序暂停在修改处。通常在调试多线程时尤为可用,能帮我们及时的定位并发错误的问题。


参考:

江湖人称小白哥的 Android Studio代码调试大全,写的确实很好,大家可以去 看下,一片足以让你掌握Android调试的文章

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
人工智能 IDE 开发工具
Studio Bot - 让 AI 帮我写 Android 代码
Studio Bot - 让 AI 帮我写 Android 代码
158 1
|
4月前
|
XML Java Android开发
Android Studio App开发中使用录音机、MediaRecorder录制音频和MediaPlayer播放音频讲解及实战(附源码)
Android Studio App开发中使用录音机、MediaRecorder录制音频和MediaPlayer播放音频讲解及实战(附源码)
74 0
|
4月前
|
Java 开发工具 Android开发
OpenCV(一):Android studio jni配置OpenCV(亲测有效,保姆级)
OpenCV(一):Android studio jni配置OpenCV(亲测有效,保姆级)
162 0
|
26天前
|
Java Android开发
Android Studio的使用导入第三方Jar包
Android Studio的使用导入第三方Jar包
12 1
|
2月前
|
数据库 Android开发 数据库管理
【Android】使用android studio查看内置数据库信息
【Android】使用android studio查看内置数据库信息
72 0
|
2月前
|
编译器 开发工具 Android开发
|
2月前
|
Android开发
【Android Studio】小游戏 | 实现两个小动物随手指移动
【Android Studio】小游戏 | 实现两个小动物随手指移动
|
2月前
|
Android开发 数据安全/隐私保护
【Android Studio】简单的QQ登录界面
【Android Studio】简单的QQ登录界面
|
3月前
|
IDE 开发工具 Android开发
Android Studio 下发布项目成APK文件
Android Studio 下发布项目成APK文件
117 1
|
3月前
|
前端开发 Java 数据库
用android studio写一个简单的记单词?????App
用android studio写一个简单的记单词?????App
23 0