第一章 工欲善其事 必先利其器—Android SDK工具(4)

1.4 Android调试—调试工具( DDMS)

DDMS 的全称是Dalvik Debug Monitor Service,它为我们提供了许多有用的服务,例如:可以为设备截屏;针对特定的进程查看正在运行的线程以及堆信息;Logcat信息;广播状态信息;模拟电话呼叫;接收SMS;虚拟地理坐标等等,是我们在开发过程当中十分重要的工具之一。

DDMS 工具存放在Android-sdk/tools/路径下,直接双击ddms.bat运行DDMS,如果是在eclipse中,则通过Window->Open Perspective->Other->DDMS打开DDMS。

图1-18 DDMS窗口

DDMS的工作原理:

DDMS搭建起IDE与我们测试终端(模拟器或真机)的链接,它们使用各自独立的端口来监听调试器的信息,DDMS可以实时监控测试终端的链接情况。当有新的测试终端链接后,DDMS将捕捉到终端的ID,并通过ADB建立调试器,从而实现发送指令到测试终端的目的。

DDMS是一座桥梁,它为IDE和Emultor(or GPhone)架起来了一座桥梁。开发者可以通过DDMS看到目标机器上运行的进程/线程状态;可以让Eclipse程序连接到开发机上运行;可以看进程的heap信息、logcat信息、进程分配内存情况;可以像目标机发送短信、发送地理位置信息以及打电话;可以像gdb一样attach某一个进程调试。

DDMS介绍:

1)Device选项卡

如图1-19所示。

图1-19 Device选项卡

Device中罗列了模拟器或真机中所有的进程,选项卡右上角那一排按钮分别为:调试进程、更新进程、更新进程堆栈信息、停止某个进程,最后一个图片按钮是抓取Emulator目前的屏幕。当你选中某个进程,并按下调试进程按钮时,如果eclipse中有这个进程的代码,那就可以进行源代码级别的调试。有点像gdb attach。图片抓取按钮可以对当前Android设备的显示界面进行截图,也是非常有用的。
    2)Threads选项卡

显示线程统计信息,如图1-20所示。

图1-20 Threads选项卡

3)Heap选项卡

显示栈信息,如图1-21所示。

图1-21 Heap选项卡


经验分享:

Heap选项卡在做应用的内存优化的时候,会发挥着重要的作用。具体的,会在后面的章节中仔细说明。

4)File Explorer选项卡

显示文件信息,如图1-22所示。

图1-22 FileExplorer选项卡

显示Android设备或模拟器上的文件系统信息。FileExplorer非常有用:它可以把文件上传到Android设备或模拟器;或者从设备上下载文件;也可以进行文件删除操作。选项卡右上角有上传、下载、删除三个按钮。一般情况下,File Explorer会有如下三个目录:data、sdcard、system。

data对应手机的RAM,会存放Android OS运行时的Cache等临时数据(/data/dalvik-cache目录);没有root权限时apk程序安装在/data/app中(只是存放apk文件本身);/data/data中存放Emulator或GPhone中所有程序(系统apk+第三方apk)的详细目录信息。

sdcard对应sd卡。

system对应手机的ROM,OS以及系统自带apk程序等存放在这里。

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

5)Emulator Control选项卡

模拟控制选项卡,如图1-23所示。

图1-23 EmulatorControl选项卡

 

通过它可以模拟出向手机发送短信、打电话、更新手机位置信息。

在Emulator Control\Telephony Actions 中输入以下内容,如图1-24所示。

图1-24 模拟发送短信

点击Send按钮后,则向Android模拟器发送短信,打开模拟器,则有一条短信提示,点击打开后,如图1-25所示。

图1-25 接收短信

 

6)Logcat选项卡

可以在程序中,通过使用Log类来向LogCat打印信息。示例请见图1-26。

图1-26 Logcat选项卡

 

我们可以通过点击右上角的“+”按钮添加Log Filter来过滤来查看Log信息,例如,我们只想查看“System.out”的日志信息,则为我们添加一个filter如图1-27所示。

图1-27 添加Log Filter

 

点击“OK”按钮后,则添加了一个Log Filter,里面显示的全是System.out打印出来的Log信息。

时间: 2024-10-11 05:10:49

第一章 工欲善其事 必先利其器—Android SDK工具(4)的相关文章

第一章 工欲善其事 必先利其器—Android SDK工具(2)

1.2设备管理工具-调试桥(ADB) 1.2.1ADB简介 ADB全称是Android Debug Bridge,是Android SDK里自带的一个工具,用这个工具可以直接操作管理Android 模拟器(Emulator)或者是真实的Android设备. ADB的功能很多,我们主要用到的功能有: 1)运行设备的shell命令行: 2)管理模拟器或设备的端口映射: 3)计算机和设备之间上传/下载文件: 4)将本地apk软件安装至模拟器或Android设备. ADB是一个客户端-服务器端程序,其中

第一章 工欲善其事 必先利其器—Android SDK工具(5)

1.5 UI布局分析工具-视图工具(Hierarchy Viewer) 在Android的SDK工具包中,有很多十分有用的工具,可以帮助程序员开发和测试Android应用程序,大大提高其工作效率.其中的一款叫Hierachy Viewer的可视化调试工具,可以很方便地在开发者设计.调试和调整界面时,提高用户的开发效率,达到事半功倍的效果.它主要有以下两个功能: 1)从可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设计: 2) 结合debug帮助观察特定的UI对象进行in

第一章 工欲善其事 必先利其器—Android SDK工具(3)

1.3没有真机一样开发--Android模拟器 有些时候,我们手头上可能并没有符合要求的Android设备.那么这时候我们是不是对调试或者开发就一筹莫展了呢?当然不是.由于我们有Android模拟器. 在这里.我们先来介绍一下Android SDK自带的模拟器. Android模拟器是Android SDK自带的一个移动设备模拟器,它是一个能够执行在你电脑上的一个虚拟设备,它能够模拟除了接听和拨打电话外的全部移动设备上的典型功能和行为. 它能够让你不须要使用物理设备就能够简单地预览.开发和測试A

第一章 工欲善其事 必先利其器—Android SDK工具(7)

1.7图片拉伸不失真-九宫格绘制工具(Draw 9-Patch) 1.7.1什么是"点九"文件 有的时候,我们需要拉伸图片来满足我们的需求,但是有的图片一旦拉伸,就会产生一个很严重的问题-图片失真.那么怎么样既可以拉伸图片而又不失真呢?Android平台上的.9.png格式的图片就是为了解决这一问题而产生的.为了方便,这里我们将.9.png格式的图片称作"点九"文件. 那么,我们先来了解一下什么是点九文件. 1)点九格式的图片是Android平台上新创的一种被拉伸却

第一章 工欲善其事 必先利其器—Android SDK工具(6)

1.6 Log打印-Log输出工具(logcat) 1.6.1 启动logcat 不仅仅是Android开发,对于所有的软件开发来说,Log的地位都是非常重要的,它是一位我们在开发和调试过程当中不可避免都会接触到的朋友,因此,怎么和这位朋友搞好关系,是我们必须要掌握好的. 在Android当中,Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命令来查看和使用. 我们可以使用adb logcat命令来运行lo

Xamarin.Forms教程Android SDK工具下载安装

Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. Xamarin.Form下载Android SDK 下载Android SDK具体的步骤如下. (1)打开浏览器,在地址栏中输入Android SDK官网地址http://developer.android.com/sdk/installing/ index.html,打开官网首页. (2)选项D

工欲善其事必先利其器---Android开发环境搭建

很早之前在developer.android.com/没被墙的时候,下载过集成好的adt,无需配置即可进行开发,也做出了简单的hello world,然后好久没有动过Android.最近想重新学习下Android,却纠结于要用eclipse还是android studio.as作为谷歌自己的主推产品,从功能完善性和后续的发展性来说肯定要比eclipse要好,但是8g的内存推荐配置,把好多小白挡之门外,装上后我的小x220内存马上逼近100%,吓得我赶紧卸载了,还是老老实实的用eclipse吧,毕

android深度探索第一章

Android深度探索HAL与驱动开发的第一章学习了android系统移植与系统开发详述. 正如书上的导言所说,,android已经成为当前智能手机操作系统的老大.所以其重要性可想而知,其学习的意义非比寻常.其发展的迅速,很大程度上取决于任何人都可以利用android的源代码定制完全属于自己的嵌入式系统,而不需要向Google交钱.而由于android原生的代码支持的设备不多,因此,要想在自己的设备(包括手机.智能电视.平板等)上完美运行android,就需要另外一些开发程序,使得android

Android深度探索第一章总结

Android深度探索第一章主要是Android系统移植与驱动开发概述.要想进行系统移植就必须先了解Android的系统架构,Android的系统架构主要是:第一层,Linux内核,主要包括驱动程序以及管理内存.进程.电源等资源的程序:第二层,C/C++代码库,主要包括Linux的.so文件以及嵌入到APK程序中的NDK代码:第三层,Android SDK API,直接面向应用程序的Java APK:第四层,应用程序,直接面向最终用户的Java应用程序(APK程序).接下来是Android移植的