加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

android 真机调试--DDMS  模拟器

(2012-08-28 22:56:42)
标签:

it

http://developer.android.com/develop/index.html

http://source.android.com/source/using-eclipse.html

 

http://bbs.anzhi.com/thread-4986641-1-1.html

DDMS 的全称是Dalvik Debug Monitor Service,它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收 SMS、虚拟地理坐标等等。

如何启动 DDMS

DDMS 工具存放在SDK – tools/路径下,启动DDMS方法如下:

直接双击ddms.bat运行;

Eclipes调试程序的过程中启动DDMS,在Eclipes中的界面如下:

111
http://s14/middle/4cd5d2bbgc9a9bf8448cd&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


选择“Other”,界面如下:

222
http://s9/middle/4cd5d2bbgc9a9c3d01718&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


双击DDMS就可以启动了。

DDMSEmulator和外接测试机有同等效用。如果系统检测到它们(VM)同时运行,那么DDMS将会默认指向 Emulator。以上2种启动后的操作有些不一样,建议分别尝试下。

DDMS 的工作原理

DDMS将搭建起IDE与测试终端(Emulator 或者connected device)的链接,它们应用各自独立的端口监听调试器的信息,DDMS可以实时监测到测试终端的连接情况。当有新的测试终端连接后,DDMS将捕捉到 终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的。

333
http://s9/middle/4cd5d2bbg7a90fa67c1b8&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


DDMS
监听第一个终端App进程的端口为8600APP进程将分配8601,如果有更多终端或者更多APP进程将按照这个顺序依次类推。DDMS通过 8700端口(”base port”)接收所有终端的指令。

下边通过GUI详细了解DDMS的一些功能Devices

GUI的左上角可以看到标签为”Devices”的面板,这里可以查看到所有与DDMS 接的终端的详细信息,以及每个终端正在运行的APP进程,每个进程最右边相对应的是与调试器链接的端口。因为Android是基于Linux内核开发的操 作平台,同时也保留了Linux中特有的进程ID,它介于进程名和端口号之间。

444

http://s9/middle/4cd5d2bbgc9a9cadf42c8&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


在面板的右上角有一排很重要的按键他们分别是Debug the selected processUpdate ThreadsUpdate HeapStop ProcessScreenShot

Emulator Control

通过这个面板的一些功能可以非常容易的使测试终端模拟真实手机所具备的一些交互功能,比如:接听电话,根据选项模拟各种不同网络情况,模拟接受 SMS消息和发送虚拟地址坐标用于测试GPS功能等。

555
http://s11/middle/4cd5d2bbg7a90fafe234a&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


Telephony Status:
通过选项模拟语音质量以及信号连接模式。
Telephony Actions:
模拟电话接听和发送SMS到测试终端。
Location Control:
模拟地理坐标或者模拟动态的路线坐标变化并显示预设的地理标识,可以通过以下3种方式:

Manual 手动为终端发送二维经纬坐标。

GPX 通过GPX文件导入序列动态变化地理坐标,从而模拟行进中GPS变化的数值。

KML 通过KML文件导入独特的地理标识,并以动态形式根据变化的地理坐标显示在测试终端。

ThreadsHeapFile Exporler

666

http://s9/middle/4cd5d2bbgc9a9cf555128&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


这几项,我们在其他开发工具中也经常使用,就在不此详细说明了。通过File Exporler可以查看Android模拟器中的文件,可以很方便的导入/出文件。

LocateConsole

777

http://s12/middle/4cd5d2bbgc9a9d08ddfbb&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


Locate
:显示输出的调试信息,详见Android下如何调 试程序?
Console
:是Android模拟器输出的信息,加载程序等信息;

使用DDMS模拟发送短信,操作过程如下:

Emulator Control\Telephony Actions 中输入以下内容

888
http://s4/middle/4cd5d2bbgc9a9d2aff0d3&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


单击发送后,在Android模拟器中打开Messaging,看到下面的短信:

999
http://s4/middle/4cd5d2bbgc9a9d38f5603&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


单击新短信,详细查看短信内容:

10 10
http://s11/middle/4cd5d2bbg7a90fbbbcfda&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />


中文显示为乱码,在未来的开发中,我们必须要注意中文字符的问题。

总结说明

DDMS是我们开发人员最好的调试工具,它将是每个从事Android开发的人员都不可缺少的。

================================================================================

http://www.cnblogs.com/jerrychoi/archive/2009/09/26/1574422.html

 

Android开发工具之DDMS

      今天开始学习Android的数据库开发,这期间需要用到DDMS,就google了下,同时参考了   http://www.moandroid.com/?p=638   的文章,完整的整理如下。(关于DDMS的官方介绍可参考http://developer.android.com/guide/developing/tools/ddms.html 。不过由于伟大的GFW,这个网站天朝人民已经无法访问到,可以翻墙访问。)

      DDMS 的全称是Dalvik Debug Monitor Service,它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。DDMS为IDE和emultor及真正的android设备架起来了一座桥梁。开发人员可以通过DDMS看到目标机器上运行的进程/现成状态,可以android的屏幕到开发机上,可以看进程的heap信息,可以查看logcat信息,可以查看进程分配内存情况,可以像目标机发送短信以及打电话,可以像android开发发送地理位置信息。可以像GDB一样attach某一个进程调试。 SDKàtools目录下提供了ddms的完整版,直接双击ddms.bat运行即可。下面以Eclipse的DDMS perspective为例简单介绍DDMS的功能。

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

111
http://s9/middle/4cd5d2bbgc9aa0ee324e8&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

 如果perspective里没有显示DDMS,刚按如下步骤执行:
  •       点击上图中DDMS图标左边的那个图标,然后在下图中如果有DDMS,刚选择,如果没有,刚选择“其他”,然后在出现的窗口中双击“DDMS”即可。
 222 333
http://s1/middle/4cd5d2bbgc9aa1107abe0&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

 注意:DDMS对Emulator和外接测试机有同等效用。如果系统检测到它们(VM)同时运行,那么DDMS将会默认指向 Emulator。以上2种启动后的操作有些不一样,建议分别尝试下。

      DDMS 的工作原理

      DDMS将搭建起IDE与测试终端(Emulator 或者connected device)的链接,它们应用各自独立的端口监听调试器的信息,DDMS可以实时监测到测试终端的连接情况。当有新的测试终端连接后,DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的。

444

http://s6/middle/4cd5d2bbgc9aa14040855&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

DDMS监听第一个终端App进程的端口为8600,APP进程将分配8601,如果有更多终端或者更多APP进程将按照这个顺序依次类推。DDMS通过8700端口(“base port”)接收所有终端的指令。

      打开后的窗口为:

555

http://s14/middle/4cd5d2bbgc9aa1580a0bd&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

下边通过GUI详细了解DDMS的一些功能

      在GUI的左上角可以看到标签为”Devices”的面板,这里可以查看到所有与DDMS连接的终端的详细信息,以及每个终端正在运行的APP进程,每个进程最右边相对应的是与调试器链接的端口。因为Android是基于Linux内核开发的操作平台,同时也保留了Linux中特有的进程ID,它介于进程名和端口号之间。

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

666

http://s2/middle/4cd5d2bbgc9aa177df771&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

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

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

777

http://s1/middle/4cd5d2bbgc9aa183ef8d0&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

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

888

http://s16/middle/4cd5d2bbgc9aa18f42dff&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

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

            Telephony Status: 通过选项模拟语音质量以及信号连接模式。
            Telephony Actions: 模拟电话接听和发送SMS到测试终端。
            Location Control: 模拟地理坐标或者模拟动态的路线坐标变化并显示预设的地理标识,可以通过以下3种方式:

                  · Manual: 手动为终端发送二维经纬坐标。

                  · GPX: 通过GPX文件导入序列动态变化地理坐标,从而模拟行进中GPS变化的数值。

                  · KML: 通过KML文件导入独特的地理标识,并以动态形式根据变化的地理坐标显示在测试终端。

999

10

http://s4/middle/4cd5d2bbgc9aa1b39be13&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

http://s4/middle/4cd5d2bbgc9aa1c6039f3&690真机调试--DDMS  模拟器" TITLE="android 真机调试--DDMS  模拟器" />

LogCat:显示输出的调试信息。

      Console(控制台):是Android模拟器输出的信息,加载程序等信息;

      总结:

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

            另个要注意的是,在DDMS中模拟发送短信时,中文显示为乱码,在未来的开发中,我们必须要注意中文字符的问题。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有