Android Studio中debug功能详解

作者:哆啦U梦 时间:2022-05-22 08:16:01 

本文为大家分享了Android Studio debug功能的具体使用方法,供大家参考,具体内容如下

运行debug模式

Android Studio中debug功能详解 

1. 进入debug

- 点击图中红色圆圈圈起的左边绿色按钮,运行app的debug模式,快捷键Shift+F9

- 点击图中红色圆圈圈起的右边按钮,可以选择正在运行的进程attach debugger

1. 打断点:鼠标点击编辑框左侧,出现红色圆点

断点分类

Android Studio中debug功能详解 

这张图可以看出断点也有行断点、方法断点、字段断点、异常断点。其实打断点仔细观察也可以发现它们的标识图片是不同的,就是上图中每行前面的那四种不同的小红点。

行断点: 当执行到此行是停止执行,等待调试。

属性断点:打在类的成员变量上,当变量初始化或变量的值改变时触发断点。当然也可以配合其他用法设置过滤。

Android Studio中debug功能详解

方法断点:打在一个函数的首行,进行函数级别的调试,更可以打在JDK的源码里,查看函数调用。普通的断点是不能打在源码里的。

Android Studio中debug功能详解

异常断点:当抛出指定异常时触发断点。AS可以在Breakpoints中点击左上角 + 号,选择Java Exception Breakpoints,来指定一个异常。

Android Studio中debug功能详解

基本操作

Android Studio中debug功能详解 

从左到右依次

  1. 跳到当前执行的断点处

  2. Step Over 单步执行

  3. Step Into 进入正在执行的方法(必须是自定义的方法)、

  4. Focus Step Into 可以进入源码

  5. Step Out 跳出正在执行的方法

  6. Drop Frame 返回到当前方法的调用处

  7. Run to Cursor 运行到光标处

  8. Evaluate expression 计算选中的变量的值

Android Studio中debug功能详解 

从上到下依次为:

  1. 切换debugger模式

  2. 运行至下一断点,(从暂停)恢复程序

  3. 暂停程序

  4. 关闭调试

  5. 查看断点

  6. 隐藏断点

  7. 查看线程堆栈

高级操作和断点过滤

点击上一张图中的5查看断点可以打开下面的面板,这张面板提供了关于debug的许多高级功能:

Android Studio中debug功能详解

条件过滤

Android Studio中debug功能详解 

右击断点,可以设置condition。如图所示,设置一个变量mJoinVaule.equals(“222”),点击Done。当在mJoinEt这个EditText中输入222时才会触发这个断点。

在BreakPoints面板同样可以设置条件断点。

测试代码

下面是一段测试代码,用来测试后面的功能


package com.jnxy.arithmetic.base;

/**
* Created by admin on 2016/8/5.
*/
public class Person {

int age;

public void out() {
   System.out.println("age : " + age);
 }
 public Person(int age) {
   this.age = age;
 }

public static void main(String [] args) {
   Person p1 = new Person(3);
   Person p2 = new Person(5);
   Person p3 = new Person(8);
   Man man = new Man(10, 10);
   Woman woman = new Woman(12, 12);

Person[] persons = new Person[]{p1, p2, p3, man, woman};
   for (Person person : persons) {
     person.out();
   }
 }
}
class Man extends Person {

int weight;

public Man(int age, int weight) {
   super(age);
   this.weight = weight;
 }
}
class Woman extends Person{

int height;

public Woman(int age, int height) {
   super(age);
   this.height = height;
 }
}

日志断点

Android Studio中debug功能详解 

断点打在上方代码第27行,选中代码,同时设置Condition和Log evaluation expression,这样只有person.age==8时断点生效,才会在log打印表达式。当然,也可以值设置Log表达式。控制器输出如下图,可以看到只有age==8时才打印了toString().

Android Studio中debug功能详解

实例过滤

Android Studio中debug功能详解 打好断点,并设置触发断点的实例

Android Studio中debug功能详解

继续执行程序,当设置的实例调用方法时断点生效。

Android Studio中debug功能详解

类过滤

Android Studio中debug功能详解 

首先设置Class Filter,内容为要过滤类的完整路径,设置为只有Man类调用方法断点生效,下图age==10,证明确实是Man类调用的方法。

Android Studio中debug功能详解

执行次数断点

Android Studio中debug功能详解 Android Studio中debug功能详解

Pass Count和Condition具有相似之处,但Condition用途应该更广泛一些。

设置变量值

Android Studio中debug功能详解 

调试过程中,选中一个变量右键可以可以进行Set Value操作,这项强大的功能对需要不同数据进行判断的情况提供了极大地便利。

来源:https://blog.csdn.net/u013952370/article/details/52131007

标签:Android,Studio,debug
0
投稿

猜你喜欢

  • Springboot Vue实现单点登陆功能示例详解

    2023-11-05 00:29:11
  • spring mvc高级技术实例详解

    2022-10-11 12:50:15
  • Springboot整合FreeMarker的实现示例

    2023-04-09 00:57:57
  • 浅谈几种常见语言的命名空间(Namespace)

    2022-11-13 12:17:42
  • Socket结合线程池使用实现客户端和服务端通信demo

    2023-01-21 20:23:50
  • Java TreeSet类的简单理解和使用

    2023-01-02 18:32:27
  • Java中SSM+Shiro系统登录验证码的实现方法

    2022-06-09 17:05:14
  • Java毕业设计实战项目之仓库管理系统的实现流程

    2021-11-11 09:42:42
  • Android自定义ViewGroup实现淘宝商品详情页

    2022-10-28 00:13:01
  • SpringBoot整合screw实现数据库文档自动生成的示例代码

    2023-11-29 05:30:15
  • java Matcher匹配头尾截取替换字符串的案例

    2023-01-30 11:44:48
  • 树莓派.GPRS.短信接收器

    2021-11-01 08:34:31
  • 基于C#实现屏幕取色器的示例详解

    2021-06-26 08:58:05
  • Java中JSR303的基本使用详情

    2021-07-29 01:01:12
  • C#实现文本转语音功能

    2021-07-07 20:20:54
  • Spring @Cacheable指定失效时间实例

    2022-12-06 08:58:35
  • Android 限制edittext 整数和小数位数 过滤器(详解)

    2023-11-24 17:33:52
  • 使用Files.walkFileTree遍历目录文件

    2021-09-27 06:12:40
  • Mybatis-Plus的SQL语句组拼原理说明

    2021-07-03 20:39:22
  • Springboot通过lucene实现全文检索详解流程

    2021-12-10 22:59:45
  • asp之家 软件编程 m.aspxhome.com