Android Studio 是个发工具,其自身带调式环境是很强大的,我们要摆脱只会使用Log打印日志的低效的方法,掌握高级调试技巧对每个Android开发者都是很必要的,废话少说,直入正题

调试方式:通过下面方法进入调试

运行调试:点击齿轮运行按钮,IDE出现调试窗口;

附加进程:   如果App正在运行,点击“虫子”图标选择要调试的App进程即可;

成功操作后出现下面的DEBUG悬浮栏,下一步就可以开始设置断点

开始调试:

在代码行鼠标点击左键就可以了,程序就能自动运行到断点;

步进方式:是调试的核心和精华,掌握好很容易能获得想要的数据,打开Run菜单我们看到丰富的步进方式(快捷方式根据方案和配置可以自由设定)

Step Into:单步前进,如果断点包含子方法则进入方法(不会进入官方类库的方法);

Force Step Into:在 Step Into 的基础上能进入任何方法;

Smart Step Into:语句包含两个或者以上方法链式调用,可以选择进入那个方法,包括匿名内部类,尼姆达表达式也可以;

Step Out :单步前进,如果已在子方法里面则跳出;

Step Over :单步前进,不进入子方法;

Drop Frame:  点击该按钮后,你将返回到当前方法的调用处重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法;

Resume Program: 继续执行;

Force Run to Cursor:  顾名思义,就是直接跳到光标所在位置,这个非常方便调试所需要的语句;

说完步进,现在说说断点;

条件断点:在断点的位置设置条件,那只有符合条件的情况下才停下来,例如调试一个for循环的时候有几百次循环但是想看到某个次数时候则相当方便;

方法断点:在方法开头设置,断点标识红色四黑点的标识;

日志断点:鼠标右键断点,然后去掉Suspend,在log evaluated expression输入要打印的表达式:”setValue=”+getValue(),然后运行程序;

看控制台我们能发现断点日志:

选log message to console后发现日志信息也被打印出来

异常断点:异常的时候触发的断点:1、点击断点管理,然后新增一个异常断点;

设置一个能产生异常的方法并执行它,就会发现异常会在这里停掉;

临时断点:断点停下之后,就会被移除,调试过程中只会断掉一次,按 ATL+鼠标左键 就可以出现

失效断点:暂时让断点失效,无需把它删除;方法:ALT+鼠标左键 在断点上点击

观察调试:

当断点命中后,我们当然就是要观察并获取结果

  • 观察变量:在断点停留时候,在变量上 ALT+鼠标左键 点击就可以看到断点的所有信息;

改变变量值:例如执行方法原来的值:

在Variables窗口右键鼠标修改就可以改变值了:

添加到观察窗口:如果多个标量或者多个表达式在多个不同的地方,要上下观察是很麻烦的,我们可以把它Add to Watchs, 然后在观察窗口就可以一次看到多个变量值;

计算表达式:计算这个变量的值,result运行到中间查看变量值就出现这样的情况

计算方法调用结果: 输入方法getValue(), 点击执行,就可以得到这个方法的结果;

代码片段模式:这个可以运行一段代码得到结果而非一个表达式:

例如我们修改这个变量的值的片段:

标记object;选择变量右键出现Mark Object菜单,点击后输入标签就可以了:

至此大致内容完毕,关于调试的技巧,总的来说一个是断点设定,一个是步进方法的掌握,希望大家多实践,有任何问题欢迎写信给我或者留言。最后,基础很简单,但很重要,不要看不起,走好每一步才能走得更远。

欢迎访问我的主页:tinyx.cc 或关注我的公众号:

Android Studio 实用调试技巧的更多相关文章

  1. (转载) Android Studio你不知道的调试技巧

    Android Studio你不知道的调试技巧 标签: android studio 2015-12-29 16:05 2514人阅读 评论(0) 收藏 举报  分类: android(74)    ...

  2. Android Studio & eclipse 调试技巧

    如上图设置多个断点,开启调试.想跨断点移动到下一个断点,点击如下图1箭头,程序将运行一个断点到下一个断点之间需要执行的代码.如果后面代码没有断点,再次点击该按钮将会执行完程序.点击箭头2指向的按钮,可 ...

  3. Android Studio你不知道的调试技巧

    写代码不可避免有Bug,通常情况下除了日志最直接的调试手段就是debug:那么你的调试技术停留在哪一阶段呢?仅仅是下个断点单步执行吗?或者你知道 Evaluate Expression, 知道条件断点 ...

  4. 转: Android Studio你不知道的调试技巧

    http://tianweishu.com/2015/12/21/android-studio-debug-tips-you-may-not-know/

  5. Android Studio 使用小技巧和快捷键

    Android Studio 使用小技巧和快捷键 Alt+回车 导入包,自己主动修正 Ctrl+N   查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L  格式化代码 Ctrl+Alt ...

  6. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  7. Android Studio实用快捷键汇总

    以下是平时在Windwos系统上用Android Studio进行开发时常用到的一些快捷键,虽然不多,但是感觉都还蛮实用的,因此记录下来,如果什么时候不小心忘记了可以拿来翻一翻,That would ...

  8. 最强 Android Studio 使用小技巧和快捷键总结

    最强 Android Studio 使用小技巧和快捷键总结   写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android ...

  9. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

随机推荐

  1. English - Green Peanut Butter

    There is a guy. He wants to drink 12 cups of green peanut butter. He needs green peanut butter. So h ...

  2. 通用JSONHelp 的通用的封装

    1. 最近项目已经上线了 ,闲暇了几天 想将JSON  的序列化 以及反序列化进行重新的封装一下本人定义为JSONHelp,虽然Microsoft 已经做的很好了.但是我想封装一套为自己开发的项目使用 ...

  3. Struts2请求参数合法性校验机制

    在Action中通过代码执行数据校验 请求参数的输入校验途径一般分两种:客户端校验 :通过JavaScript 完成 (jquery validation插件),目的:过滤正常用户的误操作. 服务器校 ...

  4. JavaWeb 后端 <一> 之 Tomcat服务器 - Http协议 学习笔记

    1.Web开发概述 1.1服务器上的资源分类: a.静态资源:指web页面中供人们浏览的数据始终是不变.html css js 图片 多媒体 b.动态资源:指web页面中供人们浏览的数据是由程序产生的 ...

  5. PHP发送E-mail---新手教程

    首先下载PHPmailer拓展包,其实就是别人封装好的类库,下载链接:http://pan.baidu.com/s/1slbhGo1 首先去163注册个账号,然后登陆进去,点击设置下面的 POP3/S ...

  6. Redis 错误1067:进程意外终止,Redis不能启动,Redis启动不了

    Redis 错误1067:进程意外终止,Redis不能启动,Redis启动不了 >>>>>>>>>>>>>>> ...

  7. jvm007 jvm知识点总览

    转载来自:http://www.ityouknow.com/ 在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功.对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内 ...

  8. git bash上传代码到github

    今天,老爷机notebook开始卡了,我决定格盘重装系统. 顺便复习一下git本地命令的使用 1,配置 2先跳过一般的操作.介绍链接github远程库的操作 我的两个钥匙在C:\Users\bond\ ...

  9. ChartCtrl源码剖析之——CChartObject类

    首先,做一些简单的铺垫,目前针对ChartCtrl源码的剖析只针对V.15版本.名义上说是剖析,倒不如说是记录下自己针对该控件的理解,非常感谢Cedric Moonen大神,一切的功劳与掌声都该赠予给 ...

  10. 字典的定义和操作 (Python)

    字典是由key and value 构成,无序结构(不想列表那样有固体位置): note:key 是唯一的,没有重复: 字典可以多级嵌套: 定义: dict1 = { # 由等式构成 dict = { ...