![Android初级应用开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/490/26177490/b_26177490.jpg)
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)菜单选项。
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00029001.jpg?sign=1739258690-qTlg9Fb0n8UOMarEjhZzQE5N9nXqn5kr-0-0a62de71d79f18e55c83b5ecf3c1572c)
图1-30 Open Perspective对话框
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00029002.jpg?sign=1739258690-2yUAbZTJT3wXQgL75kHA0bZFCacamCID-0-804c63ed818fb728ab829595f34d6268)
图1-31 Devices标签功能菜单
通过DDMS中的菜单可以观察到Android程序运行时的各种状态,如进程信息、线程分析、堆内存的占用等。这些操作都是在DDMS框架下进行的,日常开发的程序是无法执行调用的。最常用的就是通过Logcat来调试Android程序。
在用LogCat来调试程序之前,先了解一下LogCat。它是通过Android.util.Log类的静态方法来查找错误和打印系统日志信息的,是一个进行日志输出的API。在Android程序中可以随时为一个对象插入一个Log,然后再观察LogCat的输出是否正确。Android.util.Log常用的方法有:
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00029003.jpg?sign=1739258690-F1yDx39NZUU9Ckg2yDl9R5VoLzPMPAwE-0-eae10cef1a67004cfd7ba499c20dae4a)
可以在程序中设置日志信息,然后运行程序,最后切换到DDMS界面来查看LogCat中输出的信息。更简单的方法是在Java Perspective界面下选择Window→Show Views→Other命令,如图1-32所示。
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00029004.jpg?sign=1739258690-ARU3NkxahenkiAdk7EcnpRkjPUTdxSmu-0-213300814fd36cd901955cdfc254e01d)
图1-32 视图窗口
在弹出的Show View对话框中选择Android目录下的LogCat然后单击OK按钮,就可以在Java工作界面的下方看到LogCat选项,如图1-33所示。这样不用切换到DDMS界面,就可以看到日志的输出信息。
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00030001.jpg?sign=1739258690-VUdP4uvH3Ll2Afk1e7fkGnQhxDKdi0a1-0-d279d9aafe7e3699b6f54172d7f3ebd5)
图1-33 LogCat视图窗口
另外,还可以通过设置断点的方式来调试Android程序。在Java透视图中打开要设置断点的源文件,双击需要标记断点代码前面的标记栏,就可以设置断点,如图1-34所示。
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00030002.jpg?sign=1739258690-Ux8umUqvp5ilCf0moSVBNJusuCdK6YCt-0-9cfc024e0e2fbbc4422f94850ed62a0e)
图1-34 断点设置
注意:最好不要将多条语句放到同一行,因为无法单步执行,也不能在同一行上为多条语句设置断点。
当然还有很多调试方法,读者可以根据自己的需要选择不同的调试方式,快速准确地找到程序的错误所在。