网络棋牌游戏下载_网上棋牌游戏大全

如何使用Android中的DDMS进行调试开发文档站长资讯

更新时间:2019-08-10 23:58点击:

  长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。安卓附带了一个叫Dalvik调试跟踪服务(DDMS)的调试工具它提供端口转发服务,屏幕截屏,线程和堆栈信息,日志,进程,电话状态信息,模拟来电和短信,模拟本地数据,等等。本页提供DDMS最新的功能概述;但不是所有功能和要点的详尽介绍。

  DDMS集成在Eclipse中,同时也附带在SDK下的tools目录下。DDMS既可以在模拟器中工作也可以在已连接的设备上工作。如果同时连接了设备和运行了模拟器,DDMS默认在模拟器中运行。

  在安卓平台上,每个应用都运行在自己的进程上,同时每个应用也都运行在自己的虚拟机(VM)上。每个VM公布了唯一的端口号以供调试器连接。

  当DDMS启动后,会连接到adb。当有设备连接上,VM监测服务就在adb和DDMS之间创建,它会通知DDMS 设备上的VM是启动了还是终止了。一旦VM是运行的,DDMS就获取VM的进程ID(pid),通过adb和设备上的adb守护进程(adbd)建立到VM调试器的连接。到此,DDMS就可以使用约定的线协议与VM通信。

  DDMS给设备上的每个VM分配一个调试端口。通常,DDMS分配的第一个可调试端口号是8600,下一个是8601,依次往下类推。当调试器连接到已分配的一个端口时,VM上的所有通信都会被关联到调试器。一个调试器只能连接一个单独的端口,但是DDMS同时可以处理多个连接的调试器。

  默认的,DDMS也会监听DDMS的“基本端口”(默认为8700)。基本端口是一个端口转发端口,可以通过8700端口接受来自VM所有调试端口的通信并可以发送信息到调试器。这就允许你将调试器连接到8700端口,然后可以调试所有设备上的虚拟机。在DDMS设备视图下,转发的通信可以被当前所选进程终止。

  接下来的屏幕截图会在Eclipse中显示标准的DDMS屏幕视图。如果你是从命令行启动的DDMS,截图会略有不同,但绝大部分功能是相同的。注意这个特殊进程,com.android.email它在模拟器上运行时的调试端口是8700,而分配给它的端口是8606。这就表明DDMS当前将8606端口转发到静态调试端口8700。

  在Dalvik虚拟机中调试的应用和在其他虚拟机中的应用一样运行。然而,当单步跳出同步代码时,“当前位置”指针可能一下跳到方法中的最后位置

  下一部分讲述怎么使用DDMS和DDMS图形用户界面中的各个选项和面板。Eclipse版本和命令行版本界面有较小的不同,但是功能上是相同的。要获得运行中的DDMS的信息,参见前一部分的文档,Running DDMS.

  DDMS允许查看进程堆内存的使用情况。在程序的特定执行时间跟踪堆使用情况是非常有用的信息。

  1.在设备选项,选择要查看堆使用信息的进程。2.点击 Update Heap 按钮获取进程的堆信息。3.在堆选项中,点击Cause GC来激活垃圾收集,它会让堆数据收集变得可用。当操作完成,会看到一组对象类型和每种类型已分配的内存。再次点击Cause GC就可以刷新数据。4.点击一个对象类型列表中看到一个条形图显示对象的数量分配给一个特定的内存字节大小。

  DDMS提供一个很有用的功能,它跟踪正在分配内存的对象和查看那些类和线程正分配对象。这样,在应用中执行特定操作时你就可以实时跟踪哪些对象正在被分配资源。分析影响到应用性能的内存使用是很有价值的信息。

  1.在设备选项,选择需要跟踪内存分配的进程。2.在分配内存选项,点击Start Tracking按钮开始分配跟踪。这时,任何在应用中的操作都会被跟踪。3.点击Get Allocation

推荐文章

官方微信公众号