Android程序的调试--善用Log

来源:互联网 发布:lg照片打印机的软件 编辑:程序博客网 时间:2024/05/01 02:00

http://blog.csdn.net/pcwings/article/details/5910398


刚接触Android时,就因为不知道怎么调试程序而万分苦恼,眼巴巴看着程序报错却觉得无从下手。。后来,了解深了,渐渐知道如何去调试程序。遥记起之前好像也有人问过我类似的问题,所以今天就说一下这个吧。

Android的调试方式主要有两种(Eclipse环境下):

一种是利用Debug模式启动程序。一般先在恰当位置设置断点(直接双击行号即可设置一个断点),然后右击你所创建的项目,选择  "Debug As -> Android Application",之后程序便会启动,右击Eclipse右上角的 Debug 图标Debug图标,即可切换到 Debug 界面,然后什么查看变量(在右边的Variables窗口里双击 this 后可以看到)啊,单步执行(在左边Debug窗口单击右键可以看到)啊,我就不多说了。毕竟这种方式我用得也不是特别多,所以也不好说什么。附一图:

Debug

 

第二种就是利用Log类在程序适当的地方插入语句让其打印出一些东西出来。觉得这一种方式挺好用的,适合快速找到问题所在的地方。所以我就具体介绍一下这玩意了。

首先,android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。这些静态方法都有两个字符串参数,第一个字符串参数是标签,用来作为一种标记吧;第二个字符串参数是欲打印信息的主体内容。

 

1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦(打印所有信息)的意思,平时使用就是Log.v("","");

2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.

3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息

4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。

5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。

我自己的话,用习惯了Log.d。至于你自己到底用哪一个,就自己看着办吧。其实都差不多,只是给打印出来的信息分下类而已。另外,Log其实不仅可以打印信息,而且还可以用来查看某些变量的值,如你要查看变量test的值,只需要采用以下语句:

Log.d("tag", "test=" + test);

好了,在大概了解了Log类以及里面一些方面的方法后,我们就在程序的适当语句插入Log.d();吧(当然也可以用其他的)。一般我会用在以下两个方面:一是放在几乎所有方法(特别是容易、可能出错的方法)的开头处,这样可以看到程序究竟是运行到哪个方法上才出错的;二是放在一些给重要变量赋值的语句后查看赋值后变量的值是否与预期的一致。

在完成这些语句后,运行程序之前,我们必须先打开LogCat窗口,方法是,选择"Window -> ShowView -> Others", 在弹出窗口选择 "Android -> LogCat",如下图

打开LogCat

 

一切准备就绪之后,你就可以启动程序了,Log打印出来的信息你都可以在LogCat窗口里面看到。当程序出错时,你只需要检查一下它是运行到哪个方法时才出错的,另外再看一下红字部分的错误描述信息(如下图),根据它的描述,或者自己仔细查看下代码,或者上网百度,相信不久肯定能把bug解决掉的。对了,另外补充一点,可以通过在LogCat 窗口下面的 Filter 文本框输入关键字过滤掉其他一些无关的信息(过滤的是最后一列,即Log.d()的第二个字符串参数)。

查看LogCat

 

额,大概就这些了。欢迎大家赐教啊。。

原创粉丝点击