1.5 技术拓展

作为一名程序员经常遇到的问题就是调试程序。在Eclipse中调试程序的方法很多,使用Eclipse调试Android程序时需要注意细节。刚刚接触Android的开发者在调试Android程序的候是不能快速地找到程序的错误所在,Eclipse+ADT的开发环境中没有直接跟踪对象内容的方法,但是可以通过ADT插件中的DDMS(Dalvik Debug Monitor Service)在Eclipse上轻松调试Android程序。DDMS提供了很多功能,如测试设备截屏、LogCat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等。下面通过DDMS来调试第一个Android项目。

(1)将Eclipse的工作界面切换到DDMS状态下。首先确定Eclipse开发工具右上角是否有DDMS标签,若有可以直接单击该标签切换到DDMS工作界面。

若没有DDMS标签则需要打开Open Perspective,选择DDMS,如图1-30所示。在弹出的Open Perspective对话框中选择DDMS选项,然后单击OK按钮。

(2)在DDMS中选择Devices标签,可以查看其菜单的功能,其功能菜单如图1-31所示。

其中有Debug Process(调试进程)、Update Threads(更新线程)、Update Heap(更新堆)、Cause GC(引起垃圾回收)、Stop Process(停止进程)、Screen Capture(屏幕截屏)、Reset adb(重启Android Debug Bridge)菜单选项。

图1-30 Open Perspective对话框

图1-31 Devices标签功能菜单

通过DDMS中的菜单可以观察到Android程序运行时的各种状态,如进程信息、线程分析、堆内存的占用等。这些操作都是在DDMS框架下进行的,日常开发的程序是无法执行调用的。最常用的就是通过Logcat来调试Android程序。

在用LogCat来调试程序之前,先了解一下LogCat。它是通过Android.util.Log类的静态方法来查找错误和打印系统日志信息的,是一个进行日志输出的API。在Android程序中可以随时为一个对象插入一个Log,然后再观察LogCat的输出是否正确。Android.util.Log常用的方法有:

可以在程序中设置日志信息,然后运行程序,最后切换到DDMS界面来查看LogCat中输出的信息。更简单的方法是在Java Perspective界面下选择Window→Show Views→Other命令,如图1-32所示。

图1-32 视图窗口

在弹出的Show View对话框中选择Android目录下的LogCat然后单击OK按钮,就可以在Java工作界面的下方看到LogCat选项,如图1-33所示。这样不用切换到DDMS界面,就可以看到日志的输出信息。

图1-33 LogCat视图窗口

另外,还可以通过设置断点的方式来调试Android程序。在Java透视图中打开要设置断点的源文件,双击需要标记断点代码前面的标记栏,就可以设置断点,如图1-34所示。

图1-34 断点设置

注意:最好不要将多条语句放到同一行,因为无法单步执行,也不能在同一行上为多条语句设置断点。

当然还有很多调试方法,读者可以根据自己的需要选择不同的调试方式,快速准确地找到程序的错误所在。