Android命令行工具(2)——DDMS

时间:2021-06-25 15:28:48

DDMS全称Dalvik Debug Monitor Service,功能很是强大,可以用来截取连接的设备或虚拟机屏幕,可以查看正在运行的进程的堆和线程信息,可以模拟电话拨打、短信发送,虚拟设置地理位置,还包括文件浏览器,内存分配跟踪等。本文继续结合官方文档,主要介绍一些关于DDMS的用法。(下图是通过Eclipse启动的DDMS)

Android命令行工具(2)——DDMS


启动DDMS

有两种启动方式:

一是在命令行定位到sdk安装路径的tools目录下启动;

还有就是在Eclipse中,点Window>Open Perspective>Other>DDMS

值得注意的是通过这两种方式启动的DDMS是有一点差异的,不过整体功能大体类似,可以比照一下。(下图是通过命令行启动的。)

Android命令行工具(2)——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打印信息。


模拟手机操作和定位

可以通过DDMSEmulator Control标签页来向模拟器发送短信,拨打电话,设置经纬度等。


另请参看:

http://developer.android.com/guide/developing/debugging/ddms.html