原文链接:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=275774
一、简介
DDMS 的全称是DalvikDebug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务。提供测试设备截屏、查看特定进程正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、模拟接收及发送SMS、虚拟地理坐标等服务。
二、启动
Eclipse中启动方法:
1、点击右上角DDMS图标
2、没有DDMS图标,使用菜单栏window→open perspective→other选择
DDMS从安装目录中启动:
SDK\tools\ddms.bat
使用SDK\tools\monitor.bat可以启动Android debug monitor与DDMS
功能相同
三、工作原理
DDMS将IDE与测试终端(Emulator或者connected device)建立连接,各自使用独立的端口监听调试器的信息,DDMS可以实时监测到测试终端的连接情况。当有新的测试终端连接后,DDMS可以捕捉终端ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的。
DDMS监听第一个终端App进程的端口为8600,APP进程将分配8601,如果有更多终端或者更多APP进程将按照这个顺序依次类推。DDMS通过8700端口(”base port”)
接收所有终端的指令。
四、相关功能
左侧的面板上提供了相应功能的按钮,从左往右依次是:Debug the selected process、Update Heap、Dump HPROF File、Cause GC(Garbage Collection)、Update Threads、Start Method Profiling、Stop Process和Screen Capture
右侧显示相应的监测信息并进行文件管理
1、 截屏
2、 手机文件管理,如果虚拟机分配了SD卡空间或真机挂载了SD卡可以管理SD中的文件。从设备复制文件,在文件浏览器中找到该文件,然后单击“Pull file”按
钮。要复制一个文件到设备上的文件资源管理器“Push file
”按钮。
3、 获取进程以及内存信息
进程信息
获取进程信息需要点击左侧Update Threads按钮,然后在左侧显示相应的进程信息,
包括进程的名称、ID、状态等重要信息
内存信息
需要点击Update Heap,在Heap界面下,上部显示堆的详细信息,点击Cause GC进行垃圾回收,当完成后,可以看到一组对象类型和为每种类型已分配的内存,点击列表中的一个对象类型,为该种特定内存大小的对象分配的数量。
Allocation Tracing为内存分配过程跟踪,可跟踪系统分配内存的情况。
关于Dump HPROF File按钮的相关简介
heap dump就是一个程序heap的快照,它保存为一种叫做HPROF的二进制格式。Dalvik用的也是类似的格式,但是不完全一样。这里是Java的HPROF工具。有很多方法去生成一个运行时应用程序的heap dump。其中一种就是使用在DDMS里边的Dump HPROF file按钮。如果想产生更精确的dump数据,可以在程序中使用android.os.Debug.dumpHprofData() 方法。
4、 模拟拨入电话,模拟接收短信
模拟器接收模拟拨入电话的效果
模拟器接收模拟发送短信的效果,中文乱码
5、 虚拟地理坐标
如果您的应用程序依赖于位置的手机,你可以有的DDMS送您的设备或AVD一个模拟的位置。这是非常有用的,如果你想测试你的应用程序的特定位置的功能,而不必实际移动的不同方面。
您可以使用下面的地理位置数据类型:
手动设置(Manual)位置 - 通过手动指定十进制或六十进制的经度和纬度值。
GPX - GPS交换文件
KML -Keyhole标记语言文件
6、 网络状态获取
在Android 4.0, DDMS 具备监控详细的网络使用情况的功能,使得它可以跟踪您的应用程序的网络请求。使用这个工具,你可以监视应用程序的数据传输,并适当优化的底层代码。
7、 系统信息获取
包括三部分CPU相关信息(CPU load)、内存使用信息(MemoryUsage)、框架渲染时间信息(Frame Render Time)
CPU load
Memory Usage
Frame Render Time
测试使用模拟器