天天看点

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

本节书摘来自异步社区《android 应用案例开发大全(第3版)》一书中的第1章,第1.4节ddms的灵活应用,作者 吴亚峰 , 苏亚光 , 于复兴,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 ddms的灵活应用

作为一名合格的软件开发人员,必须要学会怎样去调试程序。调试是一个程序员最基本的技能,其重要性甚至超过学好一门语言。那么什么是调试呢?所谓调试,就是在软件投入实际使用前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证软件系统正确性的必不可少的步骤。

android为开发人员提供了一个强大的调试工具——ddms,通过ddms可以调试并监控程序的运行,更好地帮助开发人员完成软件的调试和开发。本节将对ddms的使用进行详细的讲解,帮助读者提高对软件整体的把握能力。

1.4.1 初识ddms

一般情况下,在eclipse中安装了adt插件后,eclipse窗口的右上角会有ddms的选项按钮图片 49,如图1-36所示。若ddms按钮图片 50是隐藏的,读者可以通过eclipse窗口界面右上角的图片 51(open perstective)按钮来打开ddms,如图1-37所示。单击图片 52按钮即可切换到ddms界面,如图1-38所示。

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

说明

该窗口的布局可自行调整,主要包括devices(设备列表面板)、emulator control(模拟器控制器面板)、logcat(日志显示面板)、threads(线程监控面板)、heap(内存堆监控面板)、allocation tracker(对象分布监控面板)、file explorer(文件浏览器面板)等。

1.4.2 强大的日志管理功能——logcat的使用

查看日志文件,可以使程序员完全了解程序的运行状况,从而进一步优化和修改程序代码,logcat为开发人员提供了强大的日志管理功能,通过logcat可以查看模拟器运行的所有状态,还可以通过过滤器来筛选出自己需要的日志。

打开ddms后单击logcat选项卡,打开logcat面板,默认看到的是模拟器所有的日志,如图1-39所示,其中包括verbose、debug、info、warn、error和assert共6种类别。开发人员可以使用java中的system.out.println()方法来打印输出,辅助调试程序。运行程序后,打印输出的内容便显示在logcat中,如图1-39所示。

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

1.4.3 devices的管理

devices选项卡提供了软件截图的功能,可以方便地对多个模拟器和模拟器的进程、线程、堆等进行管理,如图1-42所示。其中devices面板还可以与其他面板共同使用,例如threads选项卡、heap选项卡等,从而进行程序线程和堆的管理。

1.devices简介

首先介绍devices选项卡的基本功能,如图1-42所示,这里开启了两个android模拟器,从图中可以看到两个模拟器都出现在了devices选项卡面板中,名称分别为emulator-5554和emulator-5556,通过单击模拟器的名称,可以在多个模拟器中进行切换。

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

截图功能。在模拟器中运行程序,如需要对软件运行效果进行抓图,则可在需要抓图的界面停留,然后单击“devices”选项卡右上角的“screen capture”按钮,显示截图对话框。在对话框中可以预览图片,并进行刷新、图片旋转、保存、复制等,如图1-43所示。

结束进程功能。先单击选中模拟器中要结束的进程,然后单击“devices”选项卡右上角的“stop process”按钮,即可强制结束进程。如要结束模拟器中的“com.anroid.music”进程,如图1-44所示。

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

在“devices”面板中,还可对某一进程进行“心电图”测试。首先选中要测试的进程,单击“devices”面板右上角的“star method profiling”按钮,待程序运行一段时间后,单击“devices”面板右上角的“stop method profiling”按钮,等待一段时间后,自动弹出“心电图”窗口,如图1-45所示。

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

2.devices与threads

上面介绍的只是“devices”面板简单的两个功能,下面介绍devices面板与threads面板共同使用,进行程序线程的管理。一个程序假如开太多的线程即使机器性能再好,也会慢如龟速,所以线程的控制就显得尤为重要了,线程的查看方法如下。

(1)选中“devices”面板中要查看的程序进程。

(2)单击“devices”面板右上角的“update threads”按钮。

(3)单击“threads”选项卡,即可查看该进程的所有线程及线程的运行情况,如图1-46所示。

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

3.devices与heap

虽然当下的手机性能越来越好,手机内存当然也越来越大,但是程序过多地占用内存也是不允许的,这不仅会使程序显得很慢造成用户的不满,而且会造成程序的臃肿,甚至瘫掉。作为合格的软件开发人员,必须严格地管理自己程序的内存使用情况,在条件允许的情况下,尽量优化程序,用最小的内存完美地运行程序。堆的查看和管理方法如下。

(2)单击“devices”面板右上角的“update heap”按钮。

(3)单击“heap”选项卡,在该选项卡中单击“cause gc”按钮,即可进行程序堆的详细查看和管理,如图1-47所示。

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

1.4.4 模拟器控制(emulator control)详解

emulator control顾名思义,即模拟器控制。通过“emulator control”面板(如图1-48所示)可以非常容易地使用模拟器模拟真实手机所具备的一些交互功能,如接听电话、模拟各种不同网络环境、模拟接收sms消息和发生虚拟的地址坐标用于测试gps相关功能等。

《Android 应用案例开发大全(第3版)》——第1.4节DDMS的灵活应用

telephony status:通过选项模拟语音质量以及信号连接模式。

telephony actions:模拟电话接听和发送sms到测试终端。

location controls:模拟地理坐标或者模拟动态的路线坐标变化并显示预设的地理标识。

模拟地理坐标的三种方式为:manual(手动为终端发送经纬度坐标)、gpx(通过gpx文件导入序列动态变化地理坐标,从而模拟行进中gps变化的数值)和kml(通过kml文件导入独特的地理标识,并以动态形式根据变化的地理坐标显示在测试终端)。

1.4.5 file explorer——sd card文件管理器

file explorer是android sdk提供的管理sd card的文件管理器。通过file explorer可以查看程序对sd card的使用情况,从而判断程序是否正确运行,具体步骤如下。

(1)选择要查看的模拟器。

(2)单击file explorer选项卡,如图1-49所示。从图1-49中可以看到该管理器很类似于windows的资源管理器,可以通过单击方便地查看任何文件。

(3)单击file explorer选项卡右上角的两个按钮,可以方便地进行文件的导入和导出。

继续阅读