本文为大家分享了Android Studio debug功能的具体使用方法,供大家参考,具体内容如下
运行debug模式
\1. 进入debug
– 点击图中红色圆圈圈起的左边绿色按钮,运行app的debug模式,快捷键Shift+F9
– 点击图中红色圆圈圈起的右边按钮,可以选择正在运行的进程attach debugger
\1. 打断点:鼠标点击编辑框左侧,出现红色圆点
断点分类
这张图可以看出断点也有行断点、方法断点、字段断点、异常断点。其实打断点仔细观察也可以发现它们的标识图片是不同的,就是上图中每行前面的那四种不同的小红点。
行断点: 当执行到此行是停止执行,等待调试。
**属性断点:**打在类的成员变量上,当变量初始化或变量的值改变时触发断点。当然也可以配合其他用法设置过滤。
**方法断点:**打在一个函数的首行,进行函数级别的调试,更可以打在JDK的源码里,查看函数调用。普通的断点是不能打在源码里的。
**异常断点:**当抛出指定异常时触发断点。AS可以在Breakpoints中点击左上角 + 号,选择Java Exception Breakpoints,来指定一个异常。
基本操作
从左到右依次
- 跳到当前执行的断点处
- Step Over 单步执行
- Step Into 进入正在执行的方法(必须是自定义的方法)、
- Focus Step Into 可以进入源码
- Step Out 跳出正在执行的方法
- Drop Frame 返回到当前方法的调用处
- Run to Cursor 运行到光标处
- Evaluate expression 计算选中的变量的值
从上到下依次为:
- 切换debugger模式
- 运行至下一断点,(从暂停)恢复程序
- 暂停程序
- 关闭调试
- 查看断点
- 隐藏断点
- 查看线程堆栈
高级操作和断点过滤
点击上一张图中的5查看断点可以打开下面的面板,这张面板提供了关于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;}
}
复制
日志断点
断点打在上方代码第27行,选中代码,同时设置Condition和Log evaluation expression,这样只有person.age8时断点生效,才会在log打印表达式。当然,也可以值设置Log表达式。控制器输出如下图,可以看到只有age8时才打印了toString().
实例过滤
打好断点,并设置触发断点的实例
继续执行程序,当设置的实例调用方法时断点生效。
类过滤
首先设置Class Filter,内容为要过滤类的完整路径,设置为只有Man类调用方法断点生效,下图age==10,证明确实是Man类调用的方法。
执行次数断点
Pass Count和Condition具有相似之处,但Condition用途应该更广泛一些。
设置变量值
调试过程中,选中一个变量右键可以可以进行Set Value操作,这项强大的功能对需要不同数据进行判断的情况提供了极大地便利。
更多Android进阶指南 可以扫码 解锁 《Android十大板块文档》
1.Android车载应用开发系统学习指南(附项目实战)
2.Android Framework学习指南,助力成为系统级开发高手
3.2023最新Android中高级面试题汇总+解析,告别零offer
4.企业级Android音视频开发学习路线+项目实战(附源码)
5.Android Jetpack从入门到精通,构建高质量UI界面
6.Flutter技术解析与实战,跨平台首要之选
7.Kotlin从入门到实战,全方面提升架构基础
8.高级Android插件化与组件化(含实战教程和源码)
9.Android 性能优化实战+360°全方面性能调优
10.Android零基础入门到精通,高手进阶之路
敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔