Android开发之BUG专讲:入门篇(二)
2016-02-01 13:52
429 查看
在上一篇里面我们讲到了BUG主要的也是最基本的解决方式就是通过编译器自带的DEBUG跟踪程序的运行使得我们可以更加快速方便的找到问题的并根据问题设计解决办法。在这一篇里我们就深入具体的讲解一下DEBUG的特性和使用方式。
在开始之前还是先介绍一下环境和工具,首先编译器用的是Google推出的Android studio编译器,这个编译器不用像eclipse一样安装什么插件,自带了非常全面的Android工具,还是很方便的。手机是使用的Testbird的云手机,远程真机操作,既方便又环保。推荐给不想用自己手机调试或者手机达不到调试要求的朋友们,下面有直通车。
调试的程序还是上一篇的按键次数统计程序!不懂的朋友去看上篇,直接看应该也能看懂。
打断点:
点击DEBUG运行程序:
手机界面刚开始的时候:
在点击程序中计数按键后出现DEBUG调试面板:
Step over:一步一步走
这个时候可以看到count已经被自动收录到various里面了,第一次按在断点处停下它的值还是初始值零:
另外在右下方有一栏watch可以自由添加或者减少你想查看的变量的值:
这个时候按一下Step Over(快捷
9dbd
键F8)可以看见如下图:
重新开启DEBUG我们将程序停在函数调用处:
这个时候点击Step Into,可以看见程序进入到了函数中(如果是F8就不会进入而是直接执行MyTest();的下一步):
上述内容为大家展示了DEBUG最主要也是最常用的功能和特性,但光知道这个是不够的。想要正确快速地解决问题,除了要多练习熟能生巧以外,还需要有一些小技巧来辅助大家快速并精确的调试你的程序。详情请见下一篇文章。
直通车Android studio:http://t.cn/RbdF0tv
直通车云手机:http://t.cn/RbdHm8B
在开始之前还是先介绍一下环境和工具,首先编译器用的是Google推出的Android studio编译器,这个编译器不用像eclipse一样安装什么插件,自带了非常全面的Android工具,还是很方便的。手机是使用的Testbird的云手机,远程真机操作,既方便又环保。推荐给不想用自己手机调试或者手机达不到调试要求的朋友们,下面有直通车。
调试的程序还是上一篇的按键次数统计程序!不懂的朋友去看上篇,直接看应该也能看懂。
打断点:
点击DEBUG运行程序:
手机界面刚开始的时候:
在点击程序中计数按键后出现DEBUG调试面板:
Step over:一步一步走
这个时候可以看到count已经被自动收录到various里面了,第一次按在断点处停下它的值还是初始值零:
另外在右下方有一栏watch可以自由添加或者减少你想查看的变量的值:
这个时候按一下Step Over(快捷
9dbd
键F8)可以看见如下图:
Step Into:看到方法往里走
为了体现它的作用,我们在断点下面加上一个函数的调用来示范一下(这个函数的调用不要加在Btn1_Click行为中因为那会引起程序的改变):重新开启DEBUG我们将程序停在函数调用处:
这个时候点击Step Into,可以看见程序进入到了函数中(如果是F8就不会进入而是直接执行MyTest();的下一步):
Step Out:有断点下一个,走完断点继续走
这个操作的意思是如果当前程序所在函数后面没有断点了就跳出这个函数执行到调用函数处的下一个断点:Run to Cursor :一直运行到下个断点
这里的意思就是说,会很快执行到下一个断点的位置,接着上面的步骤点击run to cursor后可以看见程序没有到达任何断点,这是因为下一个断点在Btn1_Click里面,这个函数只会在你点击按键的时候触发,点击之后可以看见程序停在了里面,继续按下run to cursor 可以看见云手机里的变化:上述内容为大家展示了DEBUG最主要也是最常用的功能和特性,但光知道这个是不够的。想要正确快速地解决问题,除了要多练习熟能生巧以外,还需要有一些小技巧来辅助大家快速并精确的调试你的程序。详情请见下一篇文章。
直通车Android studio:http://t.cn/RbdF0tv
直通车云手机:http://t.cn/RbdHm8B
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories