Eclipse 用DDMS 调试Android 程序
(2011-06-16 14:41:58)在Eclipse开发工具中调试程序的方法很多,但是使用Eclipse调试Android程序时需要注意一些细节上的问题。许多刚接触 Android的开发者,在调试Android程序时总是不能迅速地找到程序的错误所在,Eclipse+ADT的开发环境中没有直接跟踪对象内容的方 法,但是我们可以使用Google提供的ADT插件DDMS(Dalvik Debug Monitor Service)在Eclipse上轻松地调试Android程序。DDMS为我们提供了很多功能,例如:测试设备截屏,针对特定的进程查看正在运行的线 程以及堆信息,Logcat,广播状态信息,模拟电话呼叫,接收SMS,虚拟地理坐标等等,下面我们通过DDMS来调试我们的Hello Android项目。
(1)
|
图2-40 DDMS工作界面切换 |
|
图2-41 |
|
(点击查看大图)图2-42 |
|
图2-43 DDMS操作菜单 |
(2)
1.'Logcat' 通过'android.util.Log'类的静态方法来查找错误和打印系统日志消息。它是一个进行日志输出的API,我们在Android 程序中可以随时为某一个对象插入一个Log,然后在DDMS中观察Logcat的输出是否正常。android.util.Log常用的方法有以下5个:
Log.v(String tag, String msg);
Log.d(String tag, String msg);
Log.i(String tag, String msg);
Log.w(String tag, String msg);
Log.e(String tag, String msg);
这 5种方法的首字母分别对应VERBOSE、DEBUG、INFO、WARN、ERROR。当利用DDMS进行调试时,它们的区别并不大,只是显示的颜色不 同,我们可以控制要显示的某一类错误,一般我们如果使用'断点'方式来调试程序,则使用Log.e比较合适。但是根据规范建议Log.v,Log.d信息 应当只存在于开发过程中,最终版本只可以包含Log.i, Log.w,Log.e这三种日志信息。下面我们对'HelloAndroid'程序进行调试,首先修改'HelloAndroid.java'如代码清 代2-1所示。我们在代码中加入了需要输出的日志信息。
代码清单2-1:HelloAndroid.java
- package
com.yarin.Android.HelloAndroid; -
- import
android.app.Activity; - import
android.os.Bundle; -
- import
android.util.Log; -
- public
class HelloAndroid extends Activity - {
-
-
private static final String TAG = 'HelloAndroid'; -
-
public void onCreate(Bundle savedInstanceState) -
{ -
super.onCreate(savedInstanceState); -
-
Log.v(TAG,'VERBOSE'); -
Log.d(TAG,'DEBUG'); -
Log.i(TAG,'INFO'); -
Log.w(TAG,'WARN'); -
Log.e(TAG,'ERROR'); -
setContentView(R.layout.main); -
} - }
同样我们以前常用的System.out.println();的结果也会输出在这里而不是显示在传统的控制台中。。。。 另外在DDMS视图中devices中可以通过“Screen Capture”图标(一个相机图标)可以截出当前android虚拟机的屏幕。