DDMS 的全称是Dalvik Debug Monitor Service,即Dalvik调试监控服务,是一个可视化的调试监控工具。(Dalvik是Android平台的Java虚拟机,可以支持 .dex(即Dalvik Executable)格式的Java应用程序的运行)。它主要是对系统运行后台日志的监控,还有系统线程,模拟器状态的监控。此外,它还可以模拟收发短信,拨打电话和发送GPS位置信息等。
在eclipse里运行创建好的android虚拟机,并在eclipse右上角打开DDMS视图
全局视图如下
1、Devices可以查看到所有与DDMS连接的模拟器详细信息,以及每个模拟器正在运行的APP进程。DDMS监听第一个终端App进程的端口为8600,APP进程将分配8601,如果有更多终端或者更多APP进程将按照这个顺序依次类推。DDMS通过8700端口接收所有终端的指令。
如图最后一个进程,就是我们之前运行的例子。通过上方的工具条,可以调试某个进程或者对虚拟机屏幕进行截屏等等。
2、LogCat日志信息
level为日志级别,类似java开发的log4j
V:详细(Verbose)信息,输出颜色为黑色
D:调试(Debug)信息,输出颜色是蓝色
I:通告(Info)信息,输出颜色为绿色
W:警告(Warn)信息,输出颜色为橙色
E:错误(Error)信息,输出颜色为红色,
assert:懒懒的笔者没有查资料,先无视……
在Android程序调试过程中,引入android.util.Log包,然后使用Log.v()来记录详细信息的、用Log.d()来记录调试信息、用Log.i()来记录通告信息、用Log.w()来记录警告信息的、用Log.e()来记录错误。日志会在LogCat里输出。
我们还可以自定义日志过滤器,只看我们想要看的日志
3、Threads进程信息
获取进程信息需要选中右侧某一进程,点击Update Threads按钮,该进程所有的线程就会在Threads窗口中列出显示
Tid:linux的线程ID,
Stauts:线程状态,
——running:正在执行程序代码
——sleeping:执行了Thread.sleep()
——monitor:等待接受一个监听锁。
——wait:Object.wait()
——native:正在执行native代码
——vmwait:等待虚拟机
——zombie:线程在垂死的进程
——init:线程在初始化(我们不可能看到)
——starting:线程正在启动(我们不可能看到)
utime:执行用户代码的累计时间
stime:执行系统代码的累计时间
name:线程的名字
4、Heap内存信息
选中某一进程,点击Update Heap按钮,在Heap界面下,上部显示堆的详细信息,点击Cause GC进行垃圾回收,当完成后,可以看到一组对象类型和为每种类型已分配的内存,点击列表中的一个对象类型,下部为该种特定内存大小的对象分配的数量。
5、Allocation Tracker内存分配过程跟踪,可跟踪系统分配内存的情况。点击”Start Tracking”后点击”Get Allocations “就可以看到。
6、File Explorer手机文件管理,通过Pull或push按钮可以在虚拟机和电脑上传文件
7、Emulator Control模拟控制,可以模拟手机来电和发短信,以及发送虚拟地址坐标用于测试GPS功能等
点击send之后,模拟器收到了短信
中文乱码了,这个问题先忽略。
8、System Information系统信息,包括三部分CPU占用信息(CPU load)、内存使用信息(MemoryUsage)、框架渲染时间信息(Frame Render Time)