DDMS全称Dalvik Debug Monitor Service,功能很是强大,可以用来截取连接的设备或虚拟机屏幕,可以查看正在运行的进程的堆和线程信息,可以模拟电话拨打、短信发送,虚拟设置地理位置,还包括文件浏览器,内存分配跟踪等。本文继续结合官方文档,主要介绍一些关于DDMS的用法。(下图是通过Eclipse启动的DDMS)
启动DDMS
有两种启动方式:
一是在命令行定位到sdk安装路径的tools目录下启动;
还有就是在Eclipse中,点Window>Open Perspective>Other>DDMS。
值得注意的是通过这两种方式启动的DDMS是有一点差异的,不过整体功能大体类似,可以比照一下。(下图是通过命令行启动的。)
具体用法(这里以在Eclipse中启动的DDMS为例):
查看进程的堆使用情况:
1.在DDMS的左侧视图中,选择要查看的进程。
2.然后点击上方的Update Heap按钮。
3.在右侧点Heap,就可以看到该进程分配的对内存大小和使用的对内存大小等。
4.还可以通过点击下面列表的中的type,来查看Allocation count per size。
查看对象的实时内存分配情况:
1.在DDMS的左侧视图中,选择要查看的进程。
2.在右侧的Allocation Tracker标签页,单击Start Tracking按钮开始追踪对象的内存分配。
3.单击Get Allocations按钮查看从单击Start Tracking按钮到目前为止产生的对象,具体信息还包括对象所在的类和线程等。再单击Get Allocations按钮会查看新产生的对象。
4.单击Stop Tracking按钮,可以停止追踪。
5.通过单击列表中的某一项,还可以查看更详细的信息,比如对象所在的类、方法和文件等。
屏幕捕捉:
可以通过点击DDM的左侧视图的上方的Screen Capture按钮,来显示当前的设备或模拟器的屏幕。
使用文件浏览器:
通过点击右侧的File Explorer,可以查看、删除、复制设备或模拟器中的文件。并且可以通过点击Pull File将设备或模拟器上的文件复制下来,而向设备上传送文件可以通过点击Push File按钮。
查看进程的线程信息:
可以通过在DDMS左侧的试图中选择感兴趣的进程,然后点上方的Update Threads来在右侧的Threads标签页中,查看线程信息,包括线程ID、状态、名称等信息。
进行函数剖析(method profiling)
通过函数剖析,可以查看函数在某段时间内被调用的次数、执行的时间等信息。
还有点需要注意的是,对于函数剖析功能,Android1.5是不支持的,Android2.1和之前的版本必须要有SD卡,并且程序具有向SD卡的写权限,Android2.2和之后的版本则不需要
使用LogCat
可以在程序中,通过使用Log类来向LogCat打印信息。
模拟手机操作和定位
可以通过DDMS的Emulator Control标签页来向模拟器发送短信,拨打电话,设置经纬度等。
另请参看:
http://developer.android.com/guide/developing/debugging/ddms.html