• DDMS简介
  • DDMS功能详解
  • 1 Devices面板
  • 2 功能面板
  • 3 LogCat and Console


1.DDMS简介

DDMS的全称是Dalvik Debug Monitor Service。可以实现IDE与连接终端设备(包含仿真器与真机)的调试,DDMS可以实现查询终端设备运行状态,终端设备进程状态,线程状态,文件系统,日志信息(logcat)等。以及控制终端设备,完成一些操作。总的来说它是一款性能分析工具,可以帮助开发者快速了APP的运行情况。

2.DDMS功能详解

首先DDMS被分为三个部分。左上角为Device面板,详细罗列了与电脑相连的终端设备的信息。右上角为详细的功能选项卡,下方为日志信息以及终端信息.

2.1 Devices面板

这个面板包含了所有的与IDE相连的设备列表以及每个设备上运行的进程的列表,如下图所示:



android 仿真效果 android studio仿真器被终止_终端设备



显示进程时会显示进程ID(上图中online那一列显示的即是终端上运行的进程的ID) 以及与进程相关联的端口号,连接端口号从

8600端口依次往下增加,8700是DDMS接收所有连接终端返回信息的端口,即是base端口。Devices面板顶端从左往右有多个按钮,下面一一分析这些按钮的功能


1.

Debug: 实现使用DDMS对代码进行调试,使用该功能的前提是

IDE中具有该运行进程的源代码,否则该按钮为灰色,功能无法使用.


2.

Update heap: 实现对进程中的堆进行更新的操作。只有当选择这个按钮后,在右侧的功能面板中的heap选项卡中就能够看见当前进程的堆使用情况:




android 仿真效果 android studio仿真器被终止_终端设备_02



点击Cause GC 可以触发虚拟机的垃圾回收机制。


3.

Dump HPROF file: 将当前进程堆使用情况生成文档,使用这个功能可以更加详细的分析当前堆的情况,有利于查找内存泄等问题。


4.

Cause GC: 触发垃圾回收机制,可以点击后查看当前进程的堆使用情况


5.

Update thread: 这个功能与update heap一样,当点击了这个按钮才能在右侧面板的thread选项卡中查看当前进程的所用的线程运行状态




android 仿真效果 android studio仿真器被终止_终端设备_03



6.

Start Method Profiling: 开始进行方法分析。这个功能比较重要,后面单独写文章分析


7.

Stop: 终止当前选中的进程。


8.

Screen Capture: 截屏按钮,捕获当前设备的屏幕状态,该功能具有一定的延时





android 仿真效果 android studio仿真器被终止_android 仿真效果_04


2.2 功能面板

功能面板从左到右有多个选项卡分别是:



android 仿真效果 android studio仿真器被终止_端口号_05



1.

Threads: 这个不必多说,表示当前进程中的所有线程状态。


2.

Heap: 表示当前进程堆使用情况。


3.

Allocation Tracker: 分配跟踪器,后面单独写文章分析


4.

NetWork Statistics: 网络分析功能。


5.

File Explorer: 浏览终端的文件系统,进行文件相关操作。在这里面可以进行将外部文件导入到终端中,或者将终端文件导出,或者删除终端文件,具体操作是右上角三个按钮:




android 仿真效果 android studio仿真器被终止_终端设备_06



文件操作还是比较重要的,比如一个应用涉及到了SQLite数据库使用,此时可以使用这个功能,导出数据库文件单独分析


6.

Emulator Control: 可以实现往模拟器中打电话,发送短信,发送地理位置坐标等功能。有了AndroidStudio 如果启动了模拟器,可以直接在模拟器上实现相关信息的发送而不需要借助于DDMS




android 仿真效果 android studio仿真器被终止_android 仿真效果_07





android 仿真效果 android studio仿真器被终止_端口号_08


7.

System Information: 这个选项卡里面可以查看终端的CPU负载以及内存使用情况。具体的试过就知道了。


2.3 LogCat and Console

这一部分就是系统运行产生的日志信息以及终端打印的信息。比较关心的还是LogCat。



android 仿真效果 android studio仿真器被终止_android 仿真效果_09



这里的LogCat 与AndroidStudio中的LogCat是一样的。使用LogCat可以根据程序中的运行日志判断当前程序运行的状态。终端设备一般运行较多的进程,每个进程运行都有大量的日志产生。因此一般需要使用

过滤器过滤其他进程信息。过滤器在Saved Filter中的以添加过滤器:




android 仿真效果 android studio仿真器被终止_终端设备_10



如果指定要观察某一个进程的日志信息,那过滤器就使用PID(进程ID)进行过滤即可,进程ID可以在Devices面板中得到,过滤的等级根据自己代码中写的等级酌情考虑,这样就能够实现只是观察一个进程的日志信息。