- 1.3 前言
- 1.4 入门
- 1.4.1 下载
- 1.4.2 环境配置
- 1.4.3 环境配置
- 1.4.4 环境配置
- 1.4.5 版本更新
- 1.4.6 项目和模块
- 1.5 新建
- 1.5.1 创建项目
- 1.5.2 创建模块
- 1.5.3 创建库
- 1.5.4 Library打包成aar
- 1.5.5 Studio项目
- 1.5.6 导入eclipse项目
- 1.5.7 导入Jar\/AAR
- 1.5.8 新建类和文件
- 1.5.9 增加so文件
- 1.5.10 创建Fragment文件
- 1.5.11 创建service文件
- 1.5.12 创建自定义组件
- 1.5.13 widget
- 1.5.14 创建可编译的资源文件
- 1.5.15 创建AIDL
- 1.5.16 创建Android文件夹
- 1.6 布局
- 1.6.5 ConstraintLayout约束
- 1.7.8 TODO
- 1.8 编辑
- 1.8.1 复制\/粘贴\/剪切\/撤销\/重做
- 1.8.2 查找替换
- 1.8.3 大小写替换
- 1.8.4 Macros(宏)
- 1.8.5 使用列选择模式
- 1.8.6 扩大\/缩小选择范围
- 1.8.7 合并两行内容
- 1.8.8 自动补全当前的语句
- 1.8.9 缩排
- 1.8.10 切换大小写字母
- 1.10 导航
- 1.10.1 搜索并打开某个类文件
- 1.10.2 搜索并打开某个文件
- 1.10.3 搜索并打开某个文件或方法
- 1.10.4 快速跳转到某一行
- 1.10.5 使用自定义代码块
- 1.10.6 快速跳转到光标的历史位置
- 1.10.7 快速跳转到编辑过的位置
- 1.10.8 标记书签
- 1.10.9 管理书签
- 1.10.10 快速跳转到导航栏
- 1.10.11 快速跳转到声明
- 1.10.12 快速跳转到类型声明
- 1.10.13 快速跳转到实现
- 1.10.14 快速跳转到父类
- 1.10.15 在快速类和被测试类之间快速跳转
- 1.10.16 查看相关联的文件
- 1.10.17 查看文件结构
- 1.10.18 查看类的层次结构图
- 1.10.19 查看方法类型的层次结构图
- 1.10.20 查看方法调用层次结构
- 1.10.21 快速跳转到错误代码位置
- 1.10.22 方法间前后跳转
- 1.10.23 使用翻页
- 1.10.24 选择当前文件在哪里显示
- 1.10.25 光标快速跳转到编辑器
- 1.11 编码
- 1.11.1 覆写或者实现方法
- 1.11.2 实现接口方法
- 1.11.4 生成构造函数
- 1.11.5 生成Getter和Setter方法
- 1.11.6 覆写equals和hashcode方法
- 1.11.7 快速覆写toString方法
- 1.11.8 插入版权信息
- 1.11.9 提取或删除语句
- 1.11.10 自动补全提示
- 1.11.11 代码补全
- 1.11.12 循环扩展词
- 1.11.13 展开或折叠代码
- 1.11.14 代码模板
- 1.11.15 注释
- 1.11.16 格式化代码
- 1.13 重构
- 1.13.1 重命名
- 1.13.2 提炼方法
- 1.13.3 提炼方法对象
- 1.13.4 更改方法签名
- 1.13.5 迁移变量类型
- 1.13.6 转成静态方法
- 1.13.7 静态方法转为实例方法
- 1.13.8 移动类
- 1.13.9 移动静态方法
- 1.13.10 移动静态字段
- 1.13.11 安全删除
- 1.13.12 提炼为变量
- 1.13.13 提炼为常量
- 1.13.14 提炼字段
- 1.13.15 提炼参数
- 1.13.16 提炼委托
- 1.13.17 提炼接口
- 1.13.18 提炼父类
- 1.13.19 内联方法
- 1.13.20 内联临时变量
- 1.13.21 查找并替换重复代码
- 1.13.22 反转布尔值
- 1.13.23 把成员拉到父类
- 1.13.24 把成员推到子类
- 1.13.25 尽可能使用接口
- 1.13.26 使用委托替换继承
- 1.13.27 移除中间人
- 1.13.28 包装方法返回值
- 1.13.29 将匿名类转成内部类
- 1.13.30 封装字段
- 1.13.31 使用查询替换临时变量
- 1.13.32 使用工厂方法替换构造方法
- 1.13.34 泛型化
- 1.13.35 迁移
- 1.14 打包构建(Gradle)
- 1.14.1 认识Gradle
- 1.14.2 Gradle中依赖的仓库
- 1.14.3 配置Gradle环境
- 1.14.4 Wrapper
- 1.14.5 初始化构建环境
- 1.14.6 解决Gradle下载太慢的问题
- 1.14.7 查看和执行Gradle任务
- 1.14.8 常用Gradle任务
- 1.14.9 Gradle工具窗口
- 1.14.10 构建项目和模块
- 1.14.11 设置自动编译项目
- 1.14.12 重新构建项目
- 1.14.13 Project的区别
- 1.14.14 清理项目
- 1.14.15 Script
- 1.14.16 Gradlew配置文件:gradle-wrapper.properties
- 1.14.17 项目全局配置文件:settings.gradle
- 1.14.18 本地属性配置文件:local.properties
- 1.14.19 Gradle配置文件:gradle.properties
- 1.14.20 代码混淆规则配置文件:proguard-rules.pro
- 1.14.21 项目构建配置文件build.gradle
- 1.14.22 模块构建配置文件:build.gradle
- 1.14.23 项目结构中配置模块构建
- 1.14.24 配置应用程序属性
- 1.14.25 配置应用程序签名
- 1.14.26 配置应用程序的特性
- 1.14.27 配置应用程序的构建类型
- 1.14.28 配置应用程序的依赖
- 1.14.29 打签名包
- 1.14.30 多渠道打包
- 1.14.31 配置开发者服务
- 1.15 运行调试
- 1.15.1 运行和调试配置
- 1.15.2 Android应用程序配置
- 1.15.3 断点
- 1.15.4 调试工具
- 1.15.5 计算表达式
- 1.15.6 关联调试到Android进程
- 1.15.7 配置和运行单元测试
- 1.15.8 使用命令行运行单元测试
- 1.15.9 配置Android单元测试
- 1.17 版本控制
- 1.17.1 Git偏好设置
- 1.17.2 配置Github
- 1.17.3 从Github克隆代码
- 1.17.4 将本地项目共享到GitHub
- 1.17.5 查看本地变更历史
- 1.17.6 Git添加文件
- 1.17.7 Git提交变更
- 1.17.8 Git文件逐行追溯
- 1.17.9 显示当前修订版本
- 1.17.10 Git文件比较
- 1.17.11 Git撤销操作
- 1.17.12 Git版本回退
- 1.17.13 Git查看提交历史
- 1.17.14 Git分支管理
- 1.17.15 Git创建标签
- 1.19 插件
- 1.19.1 插件下载安装
- 1.19.2 常用插件
- 1.19.3 插件开发
- 1.21 快捷键
1.15.3 断点
断点会暂停应用程序的运行,线程被挂起. 然后我们可以通过调试器一行一行的查看代码.
断点的状态分为已启用断点和已禁用断点.
已启用的断点在调试状态下,应用程序每次执行到该断点时都会暂停.[图片]已禁用的断点在调试状态下,不会对应用程序的执行造成任何影响.
Android Studio中的断点分为很多类型, 每一种断点都有它适用的场合和特殊的作用,了解这些断点,才有可能更好的使用断点.
行断点
行断点是我们最常用到的断点, 它被用于对代码中特定的行进行调试.
操作步骤:
菜单栏: Run —> Toggle Line Breakpoint
快捷键:
Mac: command + F8
Windows\/Linux: Ctrl + F8
单击某行(非方法名所在行)左边栏即可设置断点
取消行断点跟添加行断点的方法同相。
属性设置
右击行断点弹出属性设置对话框:
Enabled: 断点启用和禁用.
Suspend:勾选All,执行到断点时所有线程都会被挂起. 勾选Thread,执行到断点时只有当前断点所在的线程会被挂起.
切换线程挂起策略的时候,会显示Make Default,点击后就会把当前选中的策略变为默认的.
Condition:设置断点暂停条件.
方法断点
方法断点主要用来检查方法的输入和输出(参数和返回值).
操作步骤:
菜单栏: Run —> Toggle Method Breakpoint
单击方法名所在行的左边栏
属性设置
右击方法断点的图标,弹出属性设置对话框:
跟行断点相比,方法断点的属性中多了个Watch,用来设置是否监视方法的进入和退出.
Method entry 和 Method exit默认都被选中,也就是说调用此方法开始的时候和结束的时候断点都会被触发,如果不选中就不会触发.
字段观察点
当我们对程序运行的过程不太关心,只关心某个变量的变化的时候可以使用字段观察断点.
操作步骤:
菜单栏: Run —> Toggle Field Watchpoint
单击字段所在行的左边栏
属性设置:
右击变量的断点图标,显示属性设置:
这里有两个选择是Java Field Watchpoints特有的:
Field access: 当字段被访问的时候触发断点.
Field modification: 当字段被修攺的时候触发断点.
条件断点
条件断点用来设置断点被触发的条件,如果条件不满足断点是不会被触发的.
操作步骤:
右击左边栏的断点图标 —> 勾选Condition —> 设置暂停条件
临时断点
当我们想某个断点只被触发一次后就自动删除的时候,可以使用临时断点.
操作步骤:
菜单栏: Run —> Toggle Temporary Line Breakpoint
快捷键:
Mac: fn + command + option + shift + F8
Windows\/Linux: Ctrl + Alt + Shift + F8
Alt + 鼠标单击左边栏
如果想把临时断点变为普通断点可以在属性中去掉Remove once hit勾选.
异常断点
异常断点会在某个异常发生时触发断点,这样我们就可以第一时间得到异常信息,方便排查问题.
操作步骤:
菜单栏: Run —> View Breakpoints
快捷键:
Mac: fn + shift + command + F8
Windows\/Linux: Ctrl + Alt + F8
然后在打开的断点窗口点击左上的角的+号按钮,选择Java Exception Breakpoints.
然后在弹出的[Enter Exception Class]窗口中输入你要调试的异常, 例如:NullPointException.
确定后当你的应用程序抛出空指针异常时,就会在异常处触发断点.
日志断点
在调试的时候,我们想临时多加一些日志但又不想重新构建应用程序的时候,就可以使用日志断点.
操作步骤:
右击断点 —> 取消勾选Suspend —> 在展开的选项中勾选Log evaluated expression —> 输入日志信息表达式.
因为取消了Suspend,所以执行到断点处不会暂停,而是会打印日志.
日志会打印在Console窗口中:
禁用断点
当某个断点我们暂时不需要,但又不想删除时可以先禁用.
操作步骤:
菜单栏: Run —> Toggle Breakpoint Enable
快捷键:
Mac: option +单击断点
Windows\/Linux: Alt +单击断点
禁用断点之后,在执行到该断点就不会暂停了. 如果想恢复断点使用禁用相同的操作即可.
断点设置
在断点的设置对话框中我们可以查看和管理项目中的断点,可以设置断点的属性.
打开属性配置窗口:
菜单栏 —> Run —> View Breakpoints
快捷键:
Mac: fn + shift + command + F8
Windows\/Linux: Ctrl + Alt + F8
调试工具窗口: 点击左边工具栏的View Breakpoints
右击断点的图标 —> 点击More
然后会打开断点设置对话框
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论