资讯专栏INFORMATION COLUMN

Android开发之BUG专讲:入门篇(二)

jaysun / 587人阅读

摘要:手机是使用的的云手机,远程真机操作,既方便又环保。推荐给不想用自己手机调试或者手机达不到调试要求的朋友们。断点就是程序在条件下运行时会自动停止的代码点,打断点是调试程序的基本操作也是核心操作之一。详情请见下一篇文章。

在上一篇里面我们讲到了遇见BUG时主要的也是最基本的解决方式,就是通过编译器自带的DEBUG跟踪程序的运行,使得我们可以更加快速方便的找到问题,并根据问题设计解决办法。在这一篇里我们就深入具体的讲解一下DEBUG的特性和使用方式。
在调试开始之前还是要先介绍一下环境和工具,首先编译器用的是Google推出的Android studio编译器,这个编译器不用像eclipse一样安装什么插件,自带了非常全面的Android工具,用起来还是很方便的。手机是使用的Testbird的云手机,远程真机操作,既方便又环保。推荐给不想用自己手机调试或者手机达不到调试要求的朋友们。

Testbird官方注册地址(现在送价值260元的体验机时)

调试的程序还是沿用上一篇的按键次数统计程序,步骤依旧是先打断点,再运行DEBUG,最后按需求调试程序。断点就是程序在DEBUG条件下运行时会自动停止的代码点,打断点是调试程序的基本操作也是核心操作之一。

打断点:

点击DEBUG运行程序:

手机界面刚开始的时候:

在点击程序中计数按键后出现DEBUG调试面板:

这个面板里面不仅包括了很多有用的调试信息,还有一些很方便快捷的功能可供程序员快速查找自己想要的内容。例如在右方有一栏watch可以自由添加或者减少你想查看的变量的值:

又比如在中间有一栏various,可以看见里面有各种编译器认为你可能用得上的源码或者自定义代码的信息,如下图包括自定义的count的值:

当然最重要的下面要讲的一系列调试按键,不同的按键对应不同的调试方式:

Step over:一步一步走

一行有效代码的执行就是一步:

这个时候按一下Step Over(快捷键F8)可以看见程序从断点所在行运行到了下一行,如下图:

Step Into:看到方法往里走

为了体现它的作用,我们在断点下面加上一个函数的调用来示范一下(这个函数的调用不要加在Btn1_Click函数中,因为那会引起程序的系统参数改变,这里我们加在onCreate中):

重新开启DEBUG我们通过单步走将程序停在函数调用处:

这个时候点击Step Into,可以看见程序进入到了函数中(如果是F8就不会进入而是直接执行MyTest();的下一步):

Step Out:有断点下一个,走完断点继续走

这个操作的意思是如果当前程序所在函数后面没有断点了就跳出这个函数执行到调用函数处的下一个断点:

Run to Cursor :一直运行到下个断点

这一步的含义就是程序会一直运行,直到下一个断点的位置才会再次停下,接着上面的步骤点击run to cursor后可以看见程序没有到达任何断点,这是因为下一个断点在Btn1_Click里面,这个函数只会在你点击按键的时候触发,点击之后可以看见程序停在了里面,继续按下run to cursor 可以看见云手机里的变化:

上述内容为大家展示了DEBUG最主要也是最常用的功能和特性,这些功能和特性在DEBUG面板中都可以找得到。但光知道这个是不够的,想要正确快速地解决问题,除了要多练习熟能生巧以外,还需要有一些小技巧来辅助大家快速并精确的远程调试你的程序。详情请见下一篇文章。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12589.html

相关文章

  • Android开发BUG专讲入门

    摘要:手机是使用的的云手机,远程真机操作,既方便又环保。推荐给不想用自己手机调试或者手机达不到调试要求的朋友们。断点就是程序在条件下运行时会自动停止的代码点,打断点是调试程序的基本操作也是核心操作之一。详情请见下一篇文章。 在上一篇里面我们讲到了遇见BUG时主要的也是最基本的解决方式,就是通过编译器自带的DEBUG跟踪程序的运行,使得我们可以更加快速方便的找到问题,并根据问题设计解决办法。在...

    renweihub 评论0 收藏0
  • Android开发BUG专讲入门(一)

    摘要:云手机模拟器也有缺点,它的效率比较低,并且程序在真机上的运行情况,远比模拟器要复杂,所以开发者的程序写好后还需要用真机来调试。 前言: 本文作者:周才智 转载须注明作者与出处,违者必究! 话说诸葛亮是一个优秀的程序猿,每一个锦囊都是应对不同的case而编写的!但是优秀的程序猿也敌不过更优秀的bug!六出祈山,七进中原,鞠躬尽瘁,死而后已的诸葛亮只因为有一个错误的case-马谡,整个结构...

    hankkin 评论0 收藏0
  • Python【赋值语句】专讲,可不能只会 a=b 啊!建议掌握!

    摘要:二高级赋值语句何为高级赋值语句就是常规的赋值方法进行操作是会报错的,得进行一些更高级一点的操作。小技巧三举例用赋值语句把列表进行每次减少个元素并输出列表。 从Pyt...

    zlyBear 评论0 收藏0
  • 「码个蛋」2017年200精选干货集合

    摘要:让你收获满满码个蛋从年月日推送第篇文章一年过去了已累积推文近篇文章,本文为年度精选,共计篇,按照类别整理便于读者主题阅读。本篇文章是今年的最后一篇技术文章,为了让大家在家也能好好学习,特此花了几个小时整理了这些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 让你收获满满! 码个蛋从2017年02月20...

    wangtdgoodluck 评论0 收藏0
  • 软件测试江湖()神兵利器

    摘要:软件测试江湖二神兵利器篇在上一篇文章中我们介绍了江湖上流传的各种软件测试的武功秘籍和心法,相信看过的小伙伴内力得到了很大的提升。功能测试篇功能测试,是软件测试里的入门级心法,自然也有与之相对应的兵器来发挥心法的最大功力。 软件测试江湖(二)神兵利器篇 在上一篇文章中我们介绍了江湖上流传的各种软件测试的武功秘籍和心法,相信看过的小伙伴内力得到了很大的提升。如果没有,一定是你看的姿势不对,...

    _Suqin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<