`
yand789
  • 浏览: 22366 次
社区版块
存档分类
最新评论

android调试工具DDMS-------open perspective 打开 DDMS

 
阅读更多
DDMS工作机制

   DDMS全称Dalvik Debug Monitor Service.DDMS为IDE和emultor及真正的android设备架起来了一座桥梁,Android DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的

1)每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统而实现的。所有Android应用的线程都对应一个Linux线程。

2)DDMS启动时会与ADB之间建立一个device monitoring service用于监控设备。当设备断开或链接时,这个service就会通知DDMS

3)当一个设备链接上时,DDSM和ADB之间又会建立VM monitoring service用于监控设备上的虚拟机。
4)通过ADB Deamon与设备上的虚拟机的debugger建立链接,这样DDMS就开始与虚拟机对话了


   通过DDMS看到目标机器上运行的进程/现成状态,可以 android的屏幕到开发机上,可以看进程的heap信息,可以查看logcat信息,可以查看进程分配内存情况,可以像目标机发送短信以及打电话,可以向android发送地理位置信息。可以像gdb一样attach某一个进程调试。 android SDK tools提供了ddms的功能。

    Eclipse安装好adt后会有一个DDMS得perspective.切换到DDMS的视图下:

   

DDMS视图组成

   如上图所示,DDMS视图由3部分组成:左上窗口(device窗口),左下窗口(Emulator Control),右边面板组成。

1、device窗口
device窗口显示了所有当前能找到的所有模拟器或设备列表和每个设备当前正在运行的虚拟机列表。虚拟机是按程序的包命来显示的。device标签栏右上角那一排按钮分别为:调试某个进程,更新某个进程,更新进程堆栈信息,停止某个进程,最后一个图片按钮时抓取android目前的屏幕。

2、Emulator Control
在这里,可以模拟一些设备状态和行为。
Telephony Status:改变电话语音和数据方案的状态,模拟不同的网络速度。
TelePhony Actions:发送模拟的电话呼叫和短信到模拟器。
Location Controls:发送虚拟的定位数据到模拟器里,我们就可以执行定位之类的操作。可以收工的在Manual里输入经度纬度发送到模拟器,也可以通过 GPX和KML文件。

3、右面板

右边那个窗口中有threads, heap ,Allocation Tracker, file explorer选项卡。分别显示线程统计信息,栈信息,分配跟踪器以及android的文件系统。
1)Threads
线程视图列出了此进程的所有线程。



ID:虚拟机分配的唯一的线程ID,在Dalvik里,它们是从3开始的奇数。
Tid:linux的线程ID,For the main thread in a process, this will match the process ID.
Stauts:线程状态,

utime:执行用户代码的累计时间
stime:执行系统代码的累计时间
name:线程的名字

2)VM Heap
    展示一些堆的状态,在垃圾回收其间更新。当选定一个虚拟机时, VM Heap视图不能显示数据,可以点击右边面包上的带有绿色的”Show heap updates”按钮,然后在点击”Cause GC “实施垃圾回收更新堆的状态。
3)Allocation Tracker
    在这个视图里,我们可以跟踪每个选中的虚拟机的内存分配情况。点击”Start Tracking”后点击”Get Allocations “就可以看到。
4)File Explorer
通过Device > File Explorer 就打开File Explorer。这里可以浏览文件,上传上载删除文件,当然这是有相应权限限制的。



常用工具

1、堆查看
点击Update Heap(更新堆)按钮,获得有关选定虚拟机中堆分配的信息。


图 2


图 3
    点击"Cause GC"开始.堆的详细信息被显示出来,并附有针对特定分配类型的分配大小图示。如果您有分配泄漏,这可能是一个很好的检查点,通过观看Heap Size(堆大小)的总体趋势,确保在应用运行期间它不会一直变大。


2、Allocation Tracker(分配跟踪器)
Allocation Tracker(分配跟踪器)视图中显示了有关分配的更深层细节。点击“Start Tracking(开始跟踪)”,在应用中执行某个操作,然后点击“Get Allocations(获得分配)”。

图 4

所示列表按分配排序,首先显示最新的分配。选中它可看到一个关于分配如何创建的堆栈轨迹(stack trace)。
仔细查看分配细节,下面的代码看起来有改进的空间:
dataStr += String.format(" Std. Dev.: %.3f, %.3f, %.3f\n", devX, devY, devZ);
上例可简单重构为下面的代码,节省构造临时char[]的开销。.
dataStrBuilder.append(String.format(" Std. Dev.: %.3f, %.3f, %.3f\n", devX, devY, devZ));

3、Method Profiling(方法分析)
Method Profiling(方法分析)是DDMS的一款工具,对于快速概览应用中时间的消耗分布非常有用,也可用于时间关键型函数的详细查看。



图 6

在应用运行并执行某个有趣的任务时,如果您想获得更多有关该任务的性能数据,点击“Start Method Profiling(开始方法分析)”。分析器只收集少量数据(没见过超过2或3秒),所以,几分钟后再次单击该图标以停止收集。从DDMS中激活方法分析器可使工具自动使用内部存储来存储分析结果,当捕捉完成后,将它们发送回主机,作进一步分析。

IDE将自动启动Traceview窗口,帮助您在IDE(图6)中分析结果。



图 6
解析结果是最有趣的部分。单击底部窗格中的方法调用可创建一个层级结构,为您显示目前的方法——先是调用该方法的母方法,然后是从选定方法中调用的子方法。

分享到:
评论

相关推荐

    apn-ddms-filemange

    apn-ddms-filemange

    精讲Android调试及DDMS的使用

    精讲Android调试及DDMS的使用

    一种基于Android开发环境的调试工具DDMS.pdf

    一种基于Android开发环境的调试工具DDMS.pdf

    android调试工具DDMS的使用详解

    本篇文章对android调试工具DDMS的使用进行了详细的分析介绍。需要的朋友参考下

    Android-ddms方法分析跟踪

    Android 调试工具ddms的devices栏目存在一个功能叫做start method profiling,此按钮顾名思义是启动method profiling的,而Android的Method Profiling功能,是可以在一段时间内记录所有运行过的函数,最后生成一个...

    android下如何调试程序,Eclipse使用DDMS

    向Android应用程序关联调试器 4 监视Android应用程序的线程活动 5 在Android应用程序中触发垃圾回收(GC) 5 监视Adroid应用程序的堆活动 5 终止Android进程 5 使用文件浏览器 6 从模拟器或设备上拷贝文件 6 向...

    Android 内存泄漏调试经验分享

    一、概述 1 二、Android(Java)中常见的...三、内存监测工具 DDMS --> Heap 5 四、内存分析工具 MAT(Memory Analyzer Tool) 7 (一) 生成.hprof文件 7 (二) 使用MAT导入.hprof文件 8 (三) 使用MAT的视图工具分析内存 8

    Android高级编程--源代码

    2.4.2 Dalvik调试监控服务(DDMS) 41 2.4.3 Android调试桥(ADB) 41 2.5 小结 42 第3章 创建应用程序和活动 43 3.1 Android应用程序的组成部分 43 3.2 程序清单简介 44 3.3 使用清单编辑器 47 3.4 Android应用...

    Android手机平台音乐播放器毕业论文

    4.3 Android常用工具的使用 - 25 - 4.3.1 命令行的使用 - 25 - 4.3.2 Dalvik Debug Monitor Service (DDMS)的使用 - 26 - 4.4 Android 音乐播放器的工程 - 26 - 4.4.1 Android项目 - 26 - 4.4.2 Android工程程序结构...

    android-sdk-linux r24.4.1 DDMS

    替换原来的DDMS文件,然后设置为可运行。 单独运行即可。

    Android音乐播放器毕业设计论文

    4.3 Android常用工具的使用 - 25 - 4.3.1 命令行的使用 - 25 - 4.3.2 Dalvik Debug Monitor Service (DDMS)的使用 - 26 - 4.4 Android 音乐播放器的工程 - 26 - 4.4.1 Android项目 - 26 - 4.4.2 Android工程程序结构...

    老罗android开发视频教程全集百度网盘下载

    Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源制作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及...

    Android Tracer文件分析工具

    Android 调试工具ddms的devices栏目存在一个功能叫做start method profiling,此按钮顾名思义是启动method profiling的,而Android的Method Profiling功能,是可以在一段时间内记录所有运行过的函数,最后生成一个...

    android中的DDMS视图&Button;.ppt

    android中的DDMS视图&Button;.ppt

    android无线真机调试工具

    在eclipse上利用avd调试android程序是非常浪费时间的一件事,apk上传安装都要等很长时间,avd运行速度也差,运行计算比较多的程序就有问题了。如果用真机调试就快多了,但连接usb线又非常不方便,有了这个程序 你就...

    Android Studio3.1的Tools下面没有Android,怎么打开ddms?

    在AS自带的命令行工具Terminal中输入monitor后回车即可。 如果还是没启动说明没配环境变量, 找到sdk安装目录,tools,复制monitor的全路径到terminal就可以了。 若此时报错:Java was started but returned exit ...

    Android 开发调试工具的使用总结

    Android 调试工具,这里做一个总结整理。 DDMS — Dalvik debug monitor service 调试监控服务 对模拟器进行相关配置。 ADB进程 Android debug bridge 建立eclipse和Android设备之间的连接 cmd 进入dos界面,...

    adb基本命令.txt

    显示系统中全部Android平台: android list target 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): android create avd --name 名称 --target 平台编号 android create avd --...

Global site tag (gtag.js) - Google Analytics