android 断点调式,Android Studio 实用调试技巧

5db9672b3f4646526582fa9f304de332.png

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

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

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

63de8d69a0d1069316da18bed108e890.png

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

7d0892e5a4b9726abca4287a49560425.png

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

4013118a90c0b0ff2166808466902104.png

开始调试:

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

ba7c1eafa0e9b8eec15afd469e97cbbf.png

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

94893f80398ef512882c9d6b6cbd6636.png

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

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

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

331486d248c995b31addd8330c806096.png

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

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

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

Resume Program: 继续执行;

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

ad074012f98b5cdcb265f3bdf45013f5.png

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

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

2ab557b3e9bddb8522dc1d203575cb6a.png

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

798754724ebd3ab643214720ad6df358.png

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

c67bd70bee8392b73e47b33994cb9c0e.png

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

46bc6f45b0eb3dbbaa9629b8e6cce795.png

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

50500818e8946cb8f897b4f92bb45dfe.png

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

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

0c928a236bd00dd35bf830bc9c3d273a.png

b916d5060c3251998107ca1e38ba2316.png

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

6eb19a576ce63aef4e16e2e97bf22b42.png

56db57803dfd27971edb35326c10aaa0.png

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

69db66faa51fcd7ddc8178f3b983b6f4.png

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

观察调试:

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

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

ca6a7a0b1e6ddccc5aa07fb80fb31f1a.png

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

b60e4e85bdb0a8b816d0a8cdd4bb658c.png

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

c546f7494443c299e5aa12a335bd6001.png

967ad5750c073a4b49506798ce4d3495.png

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

a35836d99e608ccb5ea627b86621deee.png

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

f0e5fe1e618d0f62f3d4ccd1a943dc3e.png

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

8670d2fedba292fef34de8395b9fd095.png

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

1e97c841af693a821f5f745086453a8c.png

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

bac08e27a3e03b47ab6b2beab287fcb4.png

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

08cb994bf01bccfc63f4badc20a0ecce.png

b6f1acf24f1b1714de7a976e09beed3a.png

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

更多Android Studio相关内容可以看看以下的有用链接:

Android Studio 的详细介绍:请点这里

Android Studio 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值