![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=1739625147-Nyq3wv8xGoAKR9O9SbDnHwI0N9ae5x5j-0-d1492b710e271a46bc17c701ab7de703)
图1-30 Open Perspective对话框
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00029002.jpg?sign=1739625147-NqjcidBhmUcExYFosHlhtbzMtqAtoR80-0-1a9f081020a32d2d51ab9e612f6b3857)
图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=1739625147-HBG3BAfIZUxBOfsIbnDoDDXqOvcWQuTu-0-74e7034f03b96a87d02021696a51682e)
可以在程序中设置日志信息,然后运行程序,最后切换到DDMS界面来查看LogCat中输出的信息。更简单的方法是在Java Perspective界面下选择Window→Show Views→Other命令,如图1-32所示。
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00029004.jpg?sign=1739625147-rgINHscGAOYByW6os4R6A3SaPqPoL6NF-0-9fc44ad96288ab0dd620fb9bef3107c1)
图1-32 视图窗口
在弹出的Show View对话框中选择Android目录下的LogCat然后单击OK按钮,就可以在Java工作界面的下方看到LogCat选项,如图1-33所示。这样不用切换到DDMS界面,就可以看到日志的输出信息。
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00030001.jpg?sign=1739625147-XtLDF7iPzLw2VZwzNkF3NWBlNRzt3P1N-0-5d90683dc1f1ca22d5ed60a98c65d557)
图1-33 LogCat视图窗口
另外,还可以通过设置断点的方式来调试Android程序。在Java透视图中打开要设置断点的源文件,双击需要标记断点代码前面的标记栏,就可以设置断点,如图1-34所示。
![](https://epubservercos.yuewen.com/1AA256/14615810805603206/epubprivate/OEBPS/Images/img00030002.jpg?sign=1739625147-XwMIf92jGlEuUEgCe4uc4fw4WG8utrwS-0-4c58cb6b797d80cd41536b8f9fd6f86d)
图1-34 断点设置
注意:最好不要将多条语句放到同一行,因为无法单步执行,也不能在同一行上为多条语句设置断点。
当然还有很多调试方法,读者可以根据自己的需要选择不同的调试方式,快速准确地找到程序的错误所在。