Android DDMS应用

具体可见http://developer.android.com/tools/debugging/ddms.html。 DDMS为IDE和emultor、真正的android设备架起来了一座桥梁。开发人员可以通过DDMS看到目标机器上运行的进程/现成状态,可以 android的屏幕到开发机上,可以看进程的heap信息,可以查看logcat信息,可以查看进程分配内存情况,可以像目标机发送短信以及打电话,可 以像android开发发送地理位置信息。可以像gdb一样attach某一个进程调试。 SDK tools目录下提供了ddms的完整版,直接运行即可。下面以Eclipse的DDMS perspective为例简单介绍DDMS的功能。

跟debug,java的perspective一样,安装好adt后会有一个DDMS得perspective,打开即可。

device窗口罗列模拟器中所有的进程,右上角那一排按钮分别为:调试某个进程,更新某个进程,更新进程堆栈信息,停止某个进程,最后一个图片按 钮时抓取android目前的屏幕。?

当你选中某个进程,并按下调试进程按钮时,如果eclipse中有这个进程的代码,那就可以进行源代码级别的调试。有点像gdb attach。图片抓取按钮可以把当前android的显示桌面抓到你的机器上,也是非常有用。

右边那个窗口中有threads, heap , file explorer选项卡。分别显示线程统计信息,栈信息,以及android的文件系统。

file explorer非常有用,他可以把文件上传到android手机,或者从手机下载下来,也可以进行删除操作。选中file explorer选项卡后,按下面三个按钮便可实现对android手机文件系统的上传,下载,删除操作。?

emulator control也是非常重要的,通过它可以像手机发送短信, 打电话,已经更新手机位置信息。

总结:eclipse adt目前提供的的ddms功能只是真正ddms的一小部分,你 可以直接使用tools下面的ddms来使用所有功能。其中有一个查看进程内存分配的功能比较有用。

DDMS全称:Dalvik Debug Monitor Service

?一,DDMS的作用它提供截屏,查看线程和堆的信息,logcat,进程,广播状态信息,模拟来电呼叫和短信,虚拟地理坐标等等。

二,DDMS怎样工作1,每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。虚拟机的
线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统而实现的。所有Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的
依赖操作系统的线程调度和管理机制。 2,DDMS在IDE与设备或模拟器之间的起着中间人的角色。 3,DDMS启动时会与ADB之间建立一个device
monitoring
service用于监控设备。当设备断开或链接时,这个service就会通知DDMS。 4,当一个设备链接上时,DDSM和ADB之间又会建立VM
monitoring service用于监控设备上的虚拟机。 5,通过ADB
Deamon与设备上的虚拟机的debugger建立链接,这样DDMS就开始与虚拟机对话了。

三,端口1,对于设备上每个虚拟机的debugger,
DDMS都会开启一个监听端口。端口从8600开始。 2,8700端口

四,左边面板1,左边显示了所有当前能找到的所有模拟器或设备列表和每个设备当前正在运行的虚拟机列表。虚拟机是按程序的包命来显示的。
?2,通过这些列表可以找到运行着想调试的activity的虚拟机。每个虚拟机旁边的是“debugger
pass-through”端口,链接到其中一个端口就会链接到设备上对应的虚拟机。不管如何,在用DDMS时,只需要链接到8700端口,因为DDSM
转发所有的通信到当前选择的虚拟机。这样,就不用在每次切换虚拟机是重新配置debugger端口。
3,当一个正在运行的程序调用waitForDebugger()函数时,客户端名字旁边会显示一个红色的icon,知道debugger连上对
应的虚拟机,这是debugger会变成绿色。 4,如果看到叉icon,着意味着DDMS用于不能打开虚拟机的端口而不能建立debugger与虚拟机建立连接。如果看到所有的虚拟机是这样,
很可能是有另外一个DDSM实例在运行。 五,右边面板1,info 这里显示关于选中的VM的一般的信息,包括进程ID,包名,和虚拟机版本。

2,Threads

?线程视图列出了此进程的所有线程。 ID:虚拟机分配的唯一的线程ID,在Dalvik里,它们是从3开始的奇数。 Tid:linux的线程ID,For
the main thread in a process, this will match the process
ID. Stauts:线程状态, running:正在执行程序代码 sleeping:执行了Thread.sleep() monitor:等待接受一个监听锁。 wait:Object.wait() native:正在执行native代码 vmwait:等待虚拟机 zombie:线程在垂死的进程 init:线程在初始化(我们不可能看到) starting:线程正在启动(我们不可能看到) utime:执行用户代码的累计时间 stime:执行系统代码的累计时间 name:线程的名字
?

4,VM Heap 

展示一些堆的状态,在垃圾回收其间更新。当选定一个虚拟机时, VM
Heap视图不能显示数据,可以点击右边面包上的带有绿色的”Show heap updates”按钮,然后在点击”Cause GC
“实施垃圾回收更新堆的状态。

6,Allocation
Tracker 
在这个视图里,我们可以跟踪每个选中的虚拟机的内存分配情况。点击”Start
Tracking”后点击”Get Allocations “就可以看到。

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

六,其他1,File
Explorer
 通过Device > File Explorer
就打开File Explorer。这里可以浏览文件,上传上载删除文件,当然这是有相应权限限制的。 ?

2,Screen
Capture 
通过Device > Screen Capture
就可以截图。

3,Exploring
Processes 
通过Device  >
Show process status ,这里的信息是通过shell命令”ps -x”输出的。

4,Examine Radio State 通过Device >
Dump radio,检测广播状态。

5,Stop a Virtual
Machine 
通过Actions > Halt VM ,停止一个虚拟机。
???

?

?

?

时间: 2024-10-12 21:10:49

Android DDMS应用的相关文章

Android DDMS ADB Hierarchy Viewer Lint

Dalvik调试监控服务(DDMS) 模拟器可以让你看到应用程序的外观.运行时反应以及与用户的交互,但是想要真正看到底层发生的内容,就需要使用DDMS.Dalvik调试监控服务(DDMS)是一个强大的调试工具,允许查询Activity的进程.查看栈.查看和暂停Activity的线程以及浏览任何已连接Android设备的文件系统. Eclipse中的DDMS视图还提供了对模拟器的屏幕的捕获以及对由LogCat生成的日志的简化访问. 如果正在使用ADT插件,那么DDMS就已经完全被集成到了Eclip

Android——DDMS简单介绍

DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务. 它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息.Logcat.广播状态信息.模拟电话呼叫.接收SMS.虚拟地理坐标等等. 一,切换DDMS视图 在左侧的Devices中,可以看到正在运行的虚拟设备. 二,DDMS各个菜单简单介绍 Debug Process 断点调试程序: 个人总结断点调试程序有2种情况.1.eclipse中的

Android DDMS如何使用(转)

DDMS 的全称是Dalvik Debug Monitor Service,它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息.Logcat.广播状态信息.模拟电话呼叫.**SMS.虚拟地理坐标等等. 如何启动 DDMS启动DDMS有两种方法.如下:       1.直接双击 SDK – tools\ddms.bat 运行:       2.在Eclipes中启动DDMS. 选择“Other”,界面如下: 双击DDMS就可以启动了. DDMS对Emulator和外接测试

android DDMS工具的正确使用方法

一:首先找到android sdk目录下的tools文件夹,点击monitor.bat 文件,(切记,打开DDMS工具前,关闭android studio和模拟器,否则会出现8700端口被占用的错误 信息) 二:打开android studio,打开项目,打开模拟器运行APP DDMS左侧会出现相关项目:如图 三:打不开storage文件夹下emulated文件夹的解决办法:  target的版本需为:google APIS(因为这个版本可以root) 四:打开android sdk下的plat

android DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹的解决办法

问题是没有权限,用360手机助手或豌豆荚也是看不见的. 简单的办法是用RE文件管理器(授予root权限),把data和data/data设置成777权限 注意:用RE管理器打开看到默认不是777的,只是可读写还是不够的. 另外就是使用adb shell命令,但android下的shell是阉割了的 不能用-R参数 既使su到root帐号也执行不了 C:\Documents and Settings\Administrator>adb shell [email protected]_spyder:

解决android DDMS无法打开data目录的问题

通过DDMS无法打开/data目录的问题通常是由于没有read权限造成的. 解决步骤: 1.使用第三方软件将手机root: 2.将手机通过USB连接到电脑: 3.在电脑上打开命令行窗口,进入sdk的platform-tool目录下: 4.输入以下三行命令:     >adb shell    $ su    # chmod 755 /data OK,再次通过DDMS访问 /data 目录,问题解决.

Android DDMS ADB启动失败错误解决!

ADB server didn't ACK && make sure the plugin is properly configured! adb启动失败一般是端口被占用! 解决方法和步骤: 1.输入命令netstat -ano | findstr "5037"  2.查看到端口2152被占用. 输入命令TASKLIST | findstr "2152"获取到最终被占用的进程名称,在任务管理器中结束进程,重启adb即可.

eclipse DDMS导出文件失败--android Failed to push the item

我们在写安卓程序的时候,经常会用Eclipse导出模拟器的文件管理里面的文件,但有时候会报错,导致无法导出文件. 报错信息 Failed to push selection: Local path doesn't exist. 遇到这种情况其实很好处理.只需要设置一下Eclipse就可以了. 步骤 Eclipse Windows -> Preferences -> Android -> DDMS 设置好了后,按下图操作

Android配置----DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹的解决办法

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3881477.html 联系方式:[email protected] [正文] Android DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹,问题在于data文件夹没有权限,用360手机助手或豌豆荚也是看不见的. 有以下两种解决方法: 方法一:使用adb