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. VB6之HOOK技术

    代码背景,自身程序的窗口上有一个TextBox,Hook住WH_CALLWNDPROC用来截获EN_CHNAGE即文本变更的消息. *这个其实用SetWindowLong和CallWindowProc ...

  2. centos7使用cobbler(2.8)批量部署操作系统之一

    一.    批量部署操作系统的前提 要想批量部署操作系统,得具备以下条件: 客户机支持pxe网络引导 服务器端和客户端建立网络通信(DHCP) 服务器端要有可供客户机开机引导的引导文件 服务器端的可引 ...

  3. Chrome浏览器扩展开发系列之二:Google Chrome浏览器扩展的调试

    1)      查看扩展程序的详细信息和ID 通过Chrome 浏览器的“ 工具->更多工具->扩展程序”,打开chrome://extensions页面,选中右上角的“开发者模式”,可以 ...

  4. HDU 1325,POJ 1308 Is It A Tree

    HDU认为1>2,3>2不是树,POJ认为是,而Virtual Judge上引用的是POJ数据这就是唯一的区别....(因为这个瞎折腾了半天) 此题因为是为了熟悉并查集而刷,其实想了下其实 ...

  5. 狙杀ES6之开光篇

    前言 最近有很多小伙伴在后台留言说,闰土哥,是时候来一波干货了!(机智的你们似乎已经猜到我接下来要说什么了,哈哈-).没错,今天闰土为大家带来了久违的干货文章,而且是一个系列的哦!(文章系列较长,请自 ...

  6. js菜鸟进阶-jQuery源码分析(1)-基本架构

    导读: 本人JS菜鸟一枚,为加强代码美观和编程思想.所以来研究下jQuery,有需要进阶JS的同学很适合阅读此文!我是边看代码(jquery2.2.1),边翻“javascript高级程序设计”写的, ...

  7. The first day,I get a blogs!!

    我拥有了自己的博客,很happy! 今天学习了kvm,虽然命令行界面比较枯燥,还好不算太难,在大家的热心帮助下我创建了一个虚拟机!!

  8. [Oracle]约束(constraint)

    (一)约束的概念 在Oracle中,可以通过设置约束来防止无效数据进入表中.Oracle一共有5种约束: 主键约束(primary key) 外键约束(foreign key) 唯一性约束(uniqu ...

  9. 【Unity游戏开发】SDK接入与集成——小白入门篇

    一.简介 通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感 ...

  10. HDOJ2001-两点坐标的距离

    Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离.   Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2 ...