Android Studio DeBug
Android Studio DeBug
额,之前都是用log日志输出,自己想要的东西.搞得代码到处都是Log.i()...
突然有一天,,,自己get到了,Android 断点....调试....,
世界就变得不一样了....
这篇文章,算是自己阅读和实战后的笔记吧~
1.adb连接后,打开debug
2.debug断点的设置
3.debug的面板分析
在你,点击第一步的ok之后, 会弹出debug的窗口.其中的界面如下.
区域分别为
- 单步调试区
- 断点管理区
- 求值表达式
- 线程帧栈区
- 对象变量区
- 变量观察区
4.debug,演示操作
5.debug操作姿势--单步调试区
该区提供了调试的主要操作,和你所熟知的一样的,主要有:Step over、step into、force step into、step out、drop frame。
5.1 全局数值监视 watch
5.2 变量变化 variables
5.3 交互式解释器Evaluate expression
你可以执行任何你想要执行的表达式进行求值操作
5.4 Force Run to Cursor
可以忽视已经存在的断点,跳转到光标所在处.
如现在第10行,此时我想调试18行而又不想一步一步调试,能不能一次到位呢?我们只需要将光标定位到相应的位置,然后执行Force Run to Cursor即可:
5.5 Get thread dump这里写图片描述
6.断点的分类
断点是调试器的功能之一,可以让程序暂停在需要的地方,帮助我们进行分析程序的运行过程
方法断点
单行断点
条件断点
日志断点
异常断点
属性断点
6.1 方法断点
最常用,略过
6.2单行断点
最常用,略过
6.3条件断点
条件断点,就是某种特定条件下,才会发生的断点.比如,现在我们有个list中,其中包含了q,1q,2q,3q四个元素,我们希望在遍历到2q时暂停程序运行,那么需要进行如下操作:
在需要的地方添加断点,如下:
断点处左键单击,在Condition处填写过滤条件.此处我们只关心2q,因此填写s.equals("2q")
6.4日志断点
该类型的断点不会使程序停下来,而是在输出我们要它输出的日志信息,然后继续执行。具体操作如下:
同样在断点处左键单击,在弹出的对话框中取消选中Suspend。
在弹出的控制面板中,选中Log evaluated expression,然后再填写想要输出的日志信息,如下:
当调试过程遇到该断点将会输出结果,如下:
6.5#属性断点 Filed WatchPoint
Filed WatchPoint是本质上是一种特殊的断点,也称为属性断点:当我们某个字段值被修改的时候,程序暂停在修改处。通常在调试多线程时尤为可用,能帮我们及时的定位并发错误的问题。
参考:
江湖人称小白哥的 Android Studio代码调试大全,写的确实很好,大家可以去 看下,一片足以让你掌握Android调试的文章

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android Studio: Error:Cannot locate factory for objects of type Defaul...
将别人的项目导入自己的环境下出现的问题。 Gradle refresh failed; Error:Cannot locate factory for objects of type DefaultGradleConnector, as ConnectorServiceRegistry 解决方法,清楚缓存,重启AS:
- 下一篇
Android通过代码实现多语言切换
前言 最近接手一个Android项目,需要实现对维吾尔族语的支持。虽然做了这么久的android开发,只做过多语言支持,但做应用内部多语言支持还是第一次,而且还是对维吾尔语的支持。所以,又是一次面向搜索引擎编程。 面向搜索编程 如果我们搜索“android 多语言切换”,我相信得到大部分的答案是千篇一律的,连文章都长的一样: Locale locale = new Locale("zh"); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 以上代码应该说没什么大问题,毕竟确实可以工作,可以实现需求。但是,作为一个强迫症患者,我实际受不了有2处划线的地方,也就是说上面代码中有2处被废弃了(没错,API 25被废弃的): co...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程