这几天写了点基础模块,一口气写完,结果没跑通(╯﹏╰),免不了调试一把,调来调去有些心烦,就顺带把AS里的调试都看了一遍。调试作为一个开发者最基础的技能,也是很重要的一个手段,正巧就讲一讲一些基础的调试方法,具体要是感兴趣,可以去官网看看。

调试很简单,直接在代码的最右边,点击一下就会出现一个红点

然后点击菜单栏上的debug按钮(有两个,第一个是debug app,使app重新启动,然后进入debug,第二个是attach debugger,可以直接连接到正在运行的android process)

当程序跑到相应的断点,就会停在断点处。什么step into,step over的我就不讲了,这里讲一个Evaluate Expression。

Evaluate Expression

在调试操作按钮的边上,一个像小计算机的图标(当然也有快捷键!ctrl+U)。这个Evaluate Expression是个求值表达式,可以在断点的时候,启动一个“计算器”,可以任意编辑表达式进行计算。使用这个的最方便之处在于,当断点处无法提供一些你想要的信息的时候,可以自己编写表达式,去查看结果。

分类

根据调试内容的划分,可以分为“字段调试”、“方法调试”、“异常调试”。

字段调试

字段调试

字段调试的红点是有一杠的,在字段处断点,右键小红点,还可以设置其断点属性。

当右键点击后,可以选择是访问的时候断,或者是修改的时候断,我们注意到,上面还有一个Condition,这个是做什么的呢。假设,这个断点是在一个循环当中,且值一直在变化,你是不停地人工watch然后不停地人工next直到找到想要的value吗?NONONO,这太累了,Condition就是用来增加条件筛选符合的value的,只有符合condition的语句,才会断点,这可以大大提升你的debug效率,是不是感觉轻松了很多。

方法调试

方法调试

方法调试的红点是四个小点,断点后,可以断到所有用到该方法的位置。这里介绍一下Debug面板

debug

最右边是frames层,也就是整个breakpoint被断的路径,可以一层层的往上查看,中间的Variables是可以看到当前场景里的变量值,watches是观察器,可以选中某个变量,右键Add to Watches,可以一直观测该变量的变化。

异常断点

讲异常断点前,我们先来看一下view breakpoints

view breakpoints

菜单栏中找到run->View Breakpoints,会看到这么一个界面

在这个界面中,我们可以看到,在左侧的几行中,能看到不同的exception的断点,只要选中,程序就会在发生异常的时候,被断住。其实这个不是重点,我们先来讲个情景。当我们在调试的时候,会想着打log,通过console看log的值来定位问题,但是这个log你又不是一开始就写了,往往是断点调着调着发现,哎,我这里想看一下a这个值是多少,然后坑次坑次地写上一句Log.i("a", a);关键是你还要编译一遍,哇,这你要等多久啊,小项目还好,大项目动不动就5-6分钟,完了你还不一定会记得这里有个test的 log,忘了删了。然后我就要请出我们的主角,evaluate and log。

我们把suspend这个勾给去掉,他是用来决定是否断停的,如果勾去掉,debug还在,但是不会在这个地方断住,然后勾住log message to console和evaluate and log,在编辑框里写上你要的Log语句,就可以在logcat里看到相对应的log了,而且并没有改动源代码,也不会生成多余的代码,是不是感觉很方便。

总结

好了,调试的基本用法,大致就以上几种。相信学会这些方法后,一定可以提升我们平时Coding调试的效率,更快的解决问题。

android studio第三方调试,Android Studio完美调试相关推荐

  1. android qq第三方登录,Android调用第三方QQ登录代码分享

    本文为大家分享了调用QQ登录的相关代码,希望对大家有帮助,减少项目开发的时间,具体内容如下 1.去QQ开放平台注册帐号(http://open.qq.com/),为应用申请QQ的APP_ID , 并下 ...

  2. android预置第三方apk,android 内置APK成系统应用

    一. 这种方法必须要自己编写Android.mk文件(关于Android.mk可以参考),在研发中,自己有源码时,可以将APK的源码包置于Android源码中(比如:alps/package/apps ...

  3. android移植第三方库,android移植第三方库

    本文介绍如何使用 Android NDK(r7) 设置 Android 本地代码编译工具链,如何根据 Makefile 编写 Android.mk,并以 ffmpeg(0.8.5) 为例子介绍如何使用 ...

  4. android proguard 第三方jar,Android Studio代码混淆-第三方jar混淆汇总(持续更新)

    前言 Android有非常多的优秀的第三方开源jar包,我们经常在我们的项目中使用了不少jar包,但是往往到了release的时候就忘了混淆第三方jar包了,会给我们开发带来不少麻烦,所有在这里汇总一 ...

  5. android广播第三方库,Android Support 库:LocalBroadcastManager

    在介绍完 Android Support 库发展历程(http://blog.chengyunfeng.com/?p=1047)后, 再分别介绍下 Android Support 库中有用但是被忽略的 ...

  6. android 安装第三方app,Android识别预装的第三方App方法实例

    前言 新买一台手机,里面会有很多App,有的属于系统App,不可卸载,有的属于第三方App,厂商会预装一些常用的或者给了他们广告费的App,这些是可以卸载的. 如果要详细划分,系统App还可根据其路径 ...

  7. android p 第三方预装,android P 隐藏API对系统APP的影响

    android P限制了第三方APK对@hide API的调用,那么对系统APK有什么影响呢? 国内各大手机厂商对ROM进行各种定制,可以很容易绕过这些限制,那对于需要出海并且满足CTS要求的厂商有什 ...

  8. android 安装第三方应用,Android手机常识 第三方应用如何安装

    如何安装第三方应用 刚买到一部新的手机,是不是有一种将自己所有喜欢的应用和游戏全都装进手机当中的冲动呢,但是大家有没有遇到过 这样的问题,就是下载完毕后,准备开始安装,手机却提示大家需要更改一些设置才 ...

  9. android webview第三方框架,Android 中使用第三方 WebView,腾讯X5浏览器

    由于Android自带的webview,在低于4.3的手机上面不支持socket,因此寻求其他的解决方案,第一次应用中尝试加入Crosswallk,应用的体积整整大了40M,倒是也可以正常使用,app ...

  10. android实现第三方支付,Android开发第三方APP接入微信支付

    前言 在APP中接入微信支付其实很简单,大部分工作主要都是后台完成,客户端只需要调用后台,得到后台返回的字符串后在调用微信的api即可.但是会有些坑,稍不注意就会掉坑里,下面会讲到. 一. 接入流程 ...

最新文章

  1. XML 特殊字符处理和 CDATA
  2. Markdown大法的尝试
  3. 人工智能:第九章 Agent (艾真体)
  4. ReverseMe-120(base64解码表) 逆向寒假生涯(21/100)
  5. 系统间通信1:阻塞与非阻塞式通信B
  6. Python中的signal模块和Ctrl+C操作
  7. Excel的一些工作中不算是常见,但是遇到时常常不知所错的,问题,与解决方案。
  8. Atitit 提升扩展性bpmn艾提拉总结 工作流 目录 1.1. 尽管BPMN 1.1全面地处理了过程建模符号,但它实质上缺少解决交换格式(用于图交换)的问题 1 1.2. BPMN 2.0中使
  9. 熊猫烧香C语言源代码,熊猫烧香病毒是不是用C语言编的
  10. python中pass作用_总结python中pass的作用
  11. am相干解调matlab文档,AM调制与相干解调
  12. 在x86笔记本电脑上运行树莓派操作系统
  13. Hugepages详解
  14. 【python】我用30行代码实现了小米新logo的制作
  15. matlab体会,Matlab心得体会
  16. 判断对象的某些属性是否为空
  17. java 过滤所有特殊字符
  18. 文件上传,出现400 的错误问题
  19. 软件测评公司怎么选?口碑好的测评公司推荐
  20. 什么是放射性活度,半衰期,照射量和吸收剂量?

热门文章

  1. web 开发 —— html 与 css(div)
  2. 机器学习基础(五十)—— Gini Impurity(基尼不纯度)与香浓熵(Shannon Entropy))
  3. MySQL 服务的启动与停止
  4. Python 机器学习——解决过拟合的方法
  5. python编程教学视频-【科研资源03】最全Python编程全套系统视频学习教程
  6. python学习手册-Python学习手册(第4版) 中文版.pdf
  7. python骗局-python 无良培训忽悠骗局知多少?
  8. python画三维图-Python基于matplotlib实现绘制三维图形功能示例
  9. python能做什么项目-python适合什么开发
  10. python培训班-Python培训机构有哪些值得推荐?