Android应用程序的调试

 Android应用程序的调试

在Eclipse开发环境中,不仅可以通过ADT插件来进行Android应用程序的开发,还可以非常方便的地对应用程序进行测试,主要的测试工具是DDMS。

DDMS是Dalvik Debug Monitor Service的简称,主要功能是监控应用程序的运行并打印日志、模拟电话打入与接听、模拟短信的收发、虚拟地理位置等。有了DDMS的帮助,可以大大降低应用程序的测试成本。

4.1 DDMS的启动

启动Eclipse后,单击Eclipse右上角的“Open Perspective”,从下拉菜单中选择“DDMS”,如下图。如果下拉菜单中没有DDMS,则单击下拉菜单中的“Other...”,并从弹出的对话框中选择“DDMS”。

除了在Eclipse中启动DDMS,也可以通过运行SDK安装目录下的tools文件夹下的ddms.bat来启动DDMS。

点击放大图片  点击放大图片
4.2 Devices面板

首先来看DDMS系统中的Devices面板。在Devices面板中,可以看到与DDMS连接的设备终端的信息及设备终端上运行的应用程序。

点击放大图片

在Devices面板中,可以设置应用程序更新Help状态、更新Thread状态,或者直接停止某个应用程序的执行。同时Devices面板中还可以截取手机屏幕。

4.3 Emulator Control面板

DDMS中的Emulator Control面板中可以向模拟器AVD中打入电话或发送信息,还可以虚拟模拟器的位置信息等。

点击放大图片
4.4 信息输出面板

下图是DDMS中的信息输出面板,信息输出面板在调试中起到的作用最大,其显示的信息窗口主要包括如下几个:

点击放大图片
  • Thread更新信息:要使该窗口显示内容,需要在Devices面板中设置Thread更新。Thread更新信息窗口的主要作用是显示应用程序当前状态下所有正在执行的线程的状态。
  • Heap更新信息:要使该窗口显示内容,需要在Devices面板中设置Heap更新。Heap更新信息窗口主要的作用是显示应用程序中堆的分配与回收等。
  • File Explorer:显示Android模拟器中的文件,如果模拟器启动时加载了SD卡,也可以在窗口查看SD卡的信息,同时还可以向SD卡中拷入或拷出文件。
  • LogCat:该信息窗口在Android应用程序的调试中是使用最多的。LogCat中会显示应用程序的运行信息,包括调试信息、警告信息、错误信息、普通信息及冗余信息。不同类型的信息具有不同的显示颜色,方便开发人员观察。
4.5 DDMS中的日志输出

在DDMS中的LogCat可以输出应用程序的运行信息,如果开发人员需要在程序运行时打印一些调试用的消息,除了使用传统的“System.out.println()”之外,还可以使用android.util包下的Log类,该类可以将信息以日志的形式输出到LogCat中。

Log类中主要用到的方法及说明见下表:

方法名方法说明参数说明
Log.v(String tag,String msg)输出冗余信息tag:日志标签,可用于过滤日志信息
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)输出错误信息

下面通过一个例子来说明Log类的用法。在刚才新建的Hello Android项目中srcHelloAndroid.java代码替换成如下代码:

 
 
  1. package com.sunchis; 
  2.  
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. import android.util.Log; 
  6.  
  7. public class HelloAndroid extends Activity { 
  8.     /** Called when the activity is first created. */ 
  9.     String Tag = "MyLog"
  10.  
  11.     @Override 
  12.     public void onCreate(Bundle savedInstanceState) { 
  13.         super.onCreate(savedInstanceState); 
  14.         setContentView(R.layout.main); 
  15.         Log.v(Tag, "这里输出的是冗余信息。"); 
  16.         Log.d(Tag, "这里输出的是调试信息。"); 
  17.         Log.i(Tag, "这里输出的是普通信息。"); 
  18.         Log.w(Tag, "这里输出的是警告信息。"); 
  19.         Log.e(Tag, "这里输出的是错误信息。"); 
  20.     } 

运行Hello Android项目,将视图切换到DDMS,观察LogCat的输出,如下图所示:

点击放大图片

当LogCat输出的信息量很大时,需要对其内容进行过滤,可以在DDMS中根据标签进行过滤,这样能使应用程序的调试变得更加方便。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值