Android Studio DeBug

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
239 1
|
1月前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
228 2
|
2月前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
64 5
|
3月前
|
Dart Android开发
Android Studio New里面没有New Flutter Project
Android Studio New里面没有New Flutter Project
142 1
Android Studio New里面没有New Flutter Project
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
56 1
|
3月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
1325 0
Android Studio: 解决Gradle sync failed 错误
|
3月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
132 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
3月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
231 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
3月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
304 4
|
3月前
|
Java 网络安全 开发工具
UNITY与安卓⭐一、Android Studio初始设置
UNITY与安卓⭐一、Android Studio初始设置