文档介绍:Android 程序调试
• Android 下如何调试程序?
• Android DDMS 如何使用?
Android 下如何调试程序?
写代码是每个程序员最乐意做的事,然而在开发中也会遇到很多令程序员很头疼的事情。如果说让程序员最头疼的事情是看到无数 bug、
软件的发布遥遥无期,那么让程序员最最头疼的事情是程序在调试状态下没有问题然而在实际运行中确有问题。调试程序是每个程序
员工作中必不可少的部分,而且可以毫不夸张地说调试程序暂用了程序员 50%的工作时间。由此可见,调试程序是每个程序员必不可
少的技术,调试水平的高低决定了程序员水平的高低。在开发 Android 程序前,有必要总结下如何调试 Android 程序。目前就开发过
程中,常用调试程序的方法总结如下:
1. 使用 Eclipse 开发平台调试;
2. 结合 Android SDK 调试;
3. 使用 JUnit 调试;
使用 Eclipse 开发平台调试
这是使用 Eclipse 工具开发 Android 必须熟练掌握的调试技术,主要包括:设置断点、查看变量值、查看当前堆栈等。打开 Eclipse
工具,单击“Run”
mo-Android 感受 Android 带给我们的新体验
mo-Android 感受 Android 带给我们的新体验
以及在调试的过程中,打开其他调试面板,相信只要使用一次就完全明白了。不要小瞧这些调试工具,只要你细心,说不定其他同事
好几天没有解决的 bug,你通过这些工具就发现了。所以熟练使用这些工具,是开发人员必须的,在有些时候甚至可以事半功倍的效
果。
结合 Android SDK 调试
在复杂的程序运行过程中,如何调试程序了?把程序运行过程的信息保存为文件或者输出到 IDE 中,这样就可以知道程序是否是正常
运行了。
在 Android 中可以使用 Log 类,Log 类在 包中,可以使用它将运行过程的信息输出到 IDE 中,直接查看程序运行的过程。
Log 类提供了若干静态方法:
(String tag, String msg);
(String tag, String msg);
(String tag, String msg);
(String tag, String msg);
(String tag, String msg);
分别对应 Verbose,Debug,Info,Warning,Error。 tag 是一个标识,可以是任意字符串,通常可以使用类名+方法名,主要是用来
在查看日志时提供一个筛选条件。程序运行后,在 show view 中选择 Locat 就可以直接看到输出了。也可以在程序运行后,可以通过
DDMS 查看程序的运行过程记录,并可以通过 String tag 来过滤输出的信息,关于 Android DDMS 如何使用,请阅读 Android DDMS 使
用详细说明。
除了以上方法外,我们也可以把程序运行过程信息的输出当作程序运行的一部分,比如使用 Toast Notificatio 将输出信息显示在界
面中,当然这些只是些调试代码,在发布程序时需要去掉。
mo-Android 感受 Android 带给我们的新体验
最后一种方法,也是最有效的一种方法,直接将运行过程的信息以文件的方式存储,在程序运行后打开文件,查看输出的信息。在一
些复杂的工具中,都是用这种日志文件的方法来记录文件运行的过程。如何在 Android 中读写文件,请阅读 Android 数据存储(总结
篇)。
看了以上 2 种方法是否觉得:以上只是在发现问题后找到问题的原因,解决问题,是不是有些被动的、消极的,有没有其他有效的方
法来避免 bug?看到这里,有些“牛”人就说了:我写的代码几乎没有 bug,我的代码好几年都没有发生过崩溃现象了。从我个人的
观点说:的确牛。至少我自己,感觉自己的代码似乎很脆弱,要想写一个完全正确的代码真的不容易。自己考虑了很多,为什么会这
样,难道是自己写的代码的确很差?至少我自己在写代码的过程中都是很仔细的,尽量把问题考虑清楚了在写的,每次修改都是小心
翼翼的!后来发现,每段代码在写的时候都是有一些“运行环境”的,在后来使用的过程中,这个环境逐渐被破坏, 以致最后修改的
乱七八糟。如果你也有同受,建议你仔细阅读以下说明!
使用 JUnit 调试
Android 增加了对 JUnit 的支持,这对程序员来说,是个很好消息。
首先说明下 JUnit 是用来解决什么问