1.2 基于Android SDK的IDE开发环境
Android的SDK开发环境使用预编译的系统,开发者可以基于Android的标准平台API进行应用程序层次的开发。在SDK的开发环境中,还可以使用Eclipse等作为IDE开发环境。
1.2.1 Android IDE开发环境的组成和结构
Android的IDE开发环境需要以下的内容。
JDK环境(Java开发包);
Eclipse集成开发环境;
ADT(Android Development Tools)插件;
Android SDK。
Android SDK在IDE环境中使用的结构如图1-2所示。
图1-2 Android SDK在IDE环境中使用的结构
Android的SDK具有Windows、Linux和MAC三种不同版本,其中的基础映像文件、示例代码和文档都是相同的,它们之间的主要差别是主机的工具不同。例如,很多主机运行的工具在Window环境中为.exe文件,而在Linux环境中为Elf可执行程序;很多脚本在Window环境中是.bat批处理脚本,在Linux环境中是shell脚本。
1.2.2 Windows中的Android SDK开发环境安装
1.安装JDK基本Java环境
Eclipse的运行需要依赖JDK(Java Develop Kit,Java开发包),因此需要下载使用JDK的包并进行安装。JDK 1.6版本使用一个可执行程序来安装,例如jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe,双击直接进行安装即可。
2.安装Eclipse
Eclipse集成开发环境是开放的软件,可以到Eclipse的网站上去下载:
http://www.eclipse.org/downloads/
在Android系统发展的早期,各个版本的Eclipse在Android中均有所使用。经历了Android版本的多次升级过程后,目前推荐使用Eclipse 3.5以上的版本,较低版本Eclipse可能不能使用。
3.在Eclipse中安装ADT
ADT的含义为Android Development Tools(Android开发工具包),它主要具有以下一些功能:
可以从Eclipse IDE内部访问其他的Android开发工具。例如,ADT可以直接从Eclipse访问DDMS工具的很多功能——屏幕截图、管理端口转发(port-forwarding)、设置断点、观察线程和进程信息。
提供了一个新的项目向导(New Project Wizard),帮助快速生成和建立起新Android应用程序所需的最基本文件。
使构建Android应用程序的过程变得自动化、简单易行,提供了一个Android代码编辑器,可以帮助完成Android中各种源文件的编写。
第一步:进入Eclipse环境,选择“Help”→“Install New Software”,准备安装插件,如图1-3所示。
图1-3 Eclipse中选择安装新软件
第二步:选择后将出现软件升级对话框,如图1-4所示。
图1-4 Eclipse的软件升级对话框
以上界面出现后,单击右侧自上而下的第3个按钮“Add Site”,表示准备增加一些路径,在这个路径中获得插件,单击后界面如图1-5所示。
图1-5 Eclipse中增加ADT插件的路径
在“Add Site”对话框中,在Location文本框中输入Android插件的路径:
https://dl-ssl.google.com/android/eclipse/
以上的方式是通过一个网络地址获取ADT插件。除了这种方式以外,另外一种方式是使用本地文件。单击“Archive…”按钮,使用这种方式将直接指定磁盘中的一个ADT包文件(例如ADT-12.0.0.zip等)。
获得ADT插件文件包的方法,可以从如下的网站上下载:
http://developer.android.com/sdk/eclipse-adt.html
ADT文件包的本质是一个Eclipse中使用的插件,由于是Java插件,因此在Windows和Linux环境中使用的ADT包相同。
ADT文件本身是一个ZIP包,经过解压缩之后,其结构如下所示:
ADT-<version>/ |-- features [特性jar的目录] |-- plugins [插件jar的目录] |-- index.html HTML格式的网页描述文件 |-- site.xml XML格式的网站管理文件 `-- web [关联网页]
ADT文件包的plugins目录中包含了com.android.ide.eclipse.adt_<version>.jar等Java插件包。
在大多数情况下,由于ADT对其他包有依赖,即使使用本地磁盘中的ADT文件包,依然不能脱离网络环境完成安装。
第三步:ADT相关的设置完成后,回到软件升级对话框,work with的路径变为了https://dl-ssl.google.com/android/eclipse/。后面的列表则变成了“Developer Tools”,即(项目就表示了)Android插件包中的工具,其中包含了以下几个项目。
Android DDMS;
Android Development Tools;
Android Hierarchy Viewer;
Android Traceview。
其中的主工具为Android Development Tools,其他为辅助工具。一般情况下它们应该被一起安装。选择它们后,继续进行安装,出现的界面如图1-6所示。
图1-6 Eclipse中选择安装ADT
选择接受(accept)并且选择Finish完成安装之前的配置,然后将进入安装Android组件的阶段。
在安装的过程中,可能出现缺少某些包的情况,如图1-7所示。
图1-7 安装Android的插件
这时,可以选择“Window”→“Preference”,从左侧的列表中选择Install/Update项目,如图1-8所示。
图1-8 ADT相关的插件
在项目中,增加以下的内容:
Eclipse GEF,地址为:
http://download.eclipse.org/tools/gef/updates/releases/
Eclipse EMF,地址为:
http://download.eclipse.org/modeling/emf/updates/releases/
Eclipse GMF,地址为:
http://download.eclipse.org/modeling/gmf/updates/releases
Eclipse Webtools,地址为:
http://download.eclipse.org/webtools/updates/
Google eclipse Plugin,地址为:
http://dl.google.com/eclipse/plugin/3.5
第四步:安装完成,关闭并重新启动Eclipse。再次进入Eclipse后,将发现ADT已被安装。
提示:ADT包是Android官方升级较快的内容,从最初2009年10月的ADT 0.9.4到2011年的12.0.0,其间推出过十余个版本。新版本的功能更强,且新版本也可以支持旧版本SDK。因此,无论SDK的版本是哪个,一般情况下都推荐使用最新版本的ADT。
4.获得Android SDK
Android SDK可以在Android的网站上进行下载,相关部分的网址为:
http://developer.android.com/sdk/
早期Android的SDK获得方式是使用直接下载包,这个包通常有几百兆的大小。在目前的Android开发中,使用下载工具包+在线升级的方式。
第一步:获得android-sdk_<version>-windows.zip。
从Android的网站上,获取Android SDK的android-sdk_<version>-windows.zip。这个包不是完整的Android的SDK,而是SDK的预备包,它只有几十兆大小。
解压缩这个包,获得Android SDK的基本目录结构,包中包含了一个名称为Setup的可执行程序,完整的SDK是通过这个可执行程序来获得的。
第二步:运行SDK Setup.exe程序,将出现SDK的下载界面,如图1-9所示。
图1-9 Android SDK的下载界面
在Settings中进行设置,选中Force……项,表示强制使用网址,选择后进行保存(Save and Apply)。回到Installed Packages中进行安装,出现Android的各个版本的SDK、工具、文档的安装界面,如图1-10所示。
图1-10 选择要安装的组件
图1-1 4 建立新的AVD
每个组件可以选择接受(Accept)表示安装,拒绝(Reject)表示不安装,接受全部(Accept All)表示安装所有的内容。文档一般安装成最新的版本。
选择后,安装程序将依次安装各个组件,安装流程如图1-11所示。
图1-11 Android的SDK安装界面
SDK的下载安装过程中,每个组件将首先被放置到temp中,以一个ZIP包的形式存在。下载完成后,得到完整的Android SDK。
Android的完整SDK的目录结构如下所示。
add-ons:附加的包;
docs:HTML格式的离线文档;
platforms:SDK核心内容;
platforms-tools:平台相关的工具;
samples:应用程序的示例代码(较新版本的SDK中具有);
tools:工具。
在platforms中包含的各个Android SDK版本的目录中,包含系统映像、工具、示例代码等内容。
data/:包含默认的字体、资源等内容;
images/:包含默认的Android磁盘映像,包括内存盘映像(ramdisk image),系统映像(system image),用户数据映像(userdata image)等,这些映像是仿真器运行的时候需要使用的;
samples/:应用程序的示例代码(较旧版本的SDK中具有);
skins/:包含了几个仿真器的皮肤,每个皮肤对应了一种屏幕尺寸;
templates/:包含了几个使用SDK开发工具的模板;
android.jar:Android库文件的Java程序包,在编译本平台的Android应用程序的时候被使用。
提示:SDK的“升级安装”实际上是一个下载的过程,得到环境后可以打包放到其他相同的主机环境中使用。
5.在Eclipse中配置Android SDK
以上的几个步骤中1~3和4这两部分内容可以分别进行,二者之间没有依赖关系。这些步骤完成后,可以使用具有ADT的Eclipse环境配置Android的SDK。方法为:在Eclipse中选择“Window”→“Preference”,从左侧的列表中选择Android项,如图1-12所示。
图1-12 Eclipse中选择Android SDK的路径
图1-12 中,左侧的Android选项是由于安装了Android的ADT而出现的。在SDK Location文本框中,单击“Browse”按钮;选择Android SDK的目录,单击“OK”按钮。
在Window的Eclipse安装完成Android的SDK开发环境之后,将会形成一个android环境私有的目录,用于存放Android的安装信息,其路径为:
Documents and Settings\<用户名>\.android
1.2.3 Linux环境中的Android SDK开发环境安装
1.安装JDK基本Java环境
在Ubuntu环境中,获得Java JDK的方法如下所示:
$ sudo apt-get install sun-java6-jdk
JDK的安装路径一般为usr/lib/jvm。
2.安装Eclipse
在Eclipse网站上下载Linux版本的Eclipse,其他过程与Windows中相同。
3.在Eclipse中安装ADT
与Windows中的步骤相同。
4.获得Android SDK
获得Linux版本的SDK包,android-sdk_<version>-linux_x86.zip,经过解压缩之后,在根目录中执行如下命令:
$ tools/android update sdk
这里使用的是命令行执行的方式,虽然也会出现SDK的安装界面。其他步骤与Windows中相同。在Linux版本的SDK中,与Windows的主要差别是主机运行的工具和脚本。
5.在Eclipse中配置Android SDK
与Windows中的步骤相同。
在Linux的Eclipse安装完成Android的SDK环境之后,将会形成一个android环境私有的目录,用于存放Android的安装信息,其路径为:
Home/<用户名>/.android
1.2.4 Android中运行仿真器环境
1.建立Android虚拟设备
为了运行一个Android仿真器的环境,首先需要建立Android虚拟设备(AVD),表示一个模拟真实设备的运行环境。
在Eclipse的菜单中,选择“Window”→“Android AVD Manager”,出现“Android SDK and AVD Manager”窗口,界面如图1-13所示。
图1-13 Android SDK和AVD管理器
界面中间的列表表示了目前可以使用的Android虚拟设备。在没有虚拟设备的情况下单击右侧的“New”按钮选择建立一个虚拟设备。
建立新的Android虚拟设备的窗口为Create new AVD,如图1-14所示。
Android虚拟设备的建立包含了以下一些选项。
名字(Name):这个虚拟设备的名称,由用户自定义。
目标(Target):选择不同的SDK版本(依赖于目前SDK的platform目录中包含了哪些版本的SDK)。
SD卡:模拟SD卡,可以指定SD卡的容量或者使用一个SD卡的映像文件。SD卡映像文件实际上是使用mksdcard工具建立的。
皮肤(Skin):这里皮肤的含义其实是仿真器运行尺寸的大小(并非仅仅是一个外观)。可以选择的尺寸一般有HVGA-P(320×480),HVGA-L(480×320)等,也可以通过直接指定尺寸的方式指定屏幕的大小。
属性(Property):可以由用户指定仿真器运行的Android系统的一些运行时属性,例如LCD密度、设备内存等。
在建立一个虚拟设备后,将在android环境私有的目录中建立这个设备的临时目录,包括临时的system、data映像文件、SD卡映像文件等。
2.运行虚拟设备
在“Android SDK and AVD Manager”窗口中,选择一个设备,单击右侧的“Start”按钮,将调用仿真器从虚拟设备运行一个Android系统。
一个运行于HVGA-P(320×480)尺寸的仿真器的界面如图1-15所示。
图1-15 运行仿真器的界面
窗口的左侧是运行的仿真器的屏幕,右侧是模拟的键盘。设备启动后,可以使用右侧的键盘模拟真实设备的键盘操作,也可以用鼠标点击(或者拖曳和长按)屏幕,模拟触摸屏的操作。
除了使用右侧的模拟键盘之外,也可以使用PC的键盘来模拟真实设备的键盘操作。尤其是当仿真器的大小不是标准值的时候,可能不会出现按键的面板,在这种情况下只能使用键盘的按键来控制仿真器的按键。
Android中的按键和键盘上的按键之间的映射关系如表1-1所示。
表1-1 仿真器和主机按键的对应关系
Android仿真器启动虚拟设备之后,可以使用主机的网络作为自己的网络,使用主机的声音系统作为自己的声音设备。
1.2.5 Android中建立工程
1.建立工程
Android的SDK环境安装完成后,就可以在SDK中建立工程并进行调试了。在Android的Eclipse环境中,建立Android工程分成几个步骤。
首先,选择“File”→“New”→“Project”,然后选择“Android”→“Android Project”,单击“Next”按钮,将出现工程建立界面,如图1-16所示。
图1-16 建立新的Android工程界面
选择建立一个Android工程之后,将出现工程建立的对话框,在其中通过配置可以建立一个Android应用程序的功能。显示的界面如图1-17所示。
图1-17 建立Android工程(左:工程建立窗口;右:从已有代码建立工程)
建立工程的第一个选项是在当前工作区建立一个空的工程,第二个选项是从已有的代码(工程目录)建立工程,可以使用SDK的platforms/android-<level>/samples或者samples中的各个子目录建立工程,这是SDK自带的示例程序。如果从其他源代码建立工程,那么所指定的目录中需要具有Android的工程描述文件(AndroidManifest.xml文件)。
在建立工程的时候,具有几个选项:指定应用程序名、包名、创建活动,其中Min SDK表示目标可以支持的最小SDK。这里有不同API级别可以选择,选择了某个级别后,工程生成的APK包也就默认是基于这个级别的。
越高版本的SDK具有越多的功能,但是低版本的SDK可以在低版本的设备上兼容运行(前提是没有使用到超出这个版本SDK的接口)。
回到建立工具的界面后,单击“Finish”按钮,工程将被建立。
提示:SDK建立工程的过程中,如果应用程序包没有名字,将默认使用第一个组件的名字作为应用程序包的名字,在这种情况下最好手动输入一个更恰当的名字。
一个Android的工程建立后,在Eclipse的工程环境中(一般在工作区的左部分)将列出工程的组成,如图1-18所示。
图1-18 工程结构
图1-18中是通过包浏览器(Package Explorer)来浏览一个Android应用程序包的结构。Android应用程序包分成以下几个部分。
AndroidManifest.xml文件:工程文件;
default.properties文件:默认属性文件;
src目录:源代码部分;
res目录:资源文件部分;
assets目录:资产文件部分;
gen:生成的中间目录;
bin:目标二进制文件目录。
在一个Android工程中,AndroidManifest.xml文件、src、assets和res一般为工程中具有的,gen、bin目录和default.properties文件一般为工程建立后生成的。
2.查看和编辑各个文件
建立工程后,可以通过IDE环境查看和编辑Android应用程序中的各个文件。不同的文件将使用不同的工具查看,具有不同的效果,主要的类型包括工程描述文件、布局文件、表示数值的XML文件、Java源代码文件等。
(1)工程描述文件
Android的工程描述文件也就是根目录中的AndroidManifest.xml文件,其查看和编辑的情况如图1-19所示。
图1-19 查看和编辑AndroidManifest.xml文件
如图1-19所示,在界面的下端具有多个不同的标签,其中的前面几个标签如下所示。
Manifest:表示全局性描述内容;
Application:表示应用以及各个组件;
Permissions:表示各个许可;
Instrumentation:表示各个用于测试的命令。
以上几个标签用于使用窗口查看和编辑AndroidManifest.xml的不同方面的内容。
最后一个标签一般为AndroidManifest.xml,单击它将切换到文本模式,使用文本的形式查看和编辑AndroidManifest.xml中的内容。
提示:窗口化编辑和文本化编辑的最终效果是相同的,都体现在最终的XML格式的文件上。
(2)布局文件
布局文件就是res/layout目录中的各个表示布局的XML文件,其查看和编辑的情况如图1-20所示。
图1-20 查看和编辑布局文件
布局查看器的一个比较有用的功能是可以直观地查看程序的UI布局。利用IDE的布局查看器,可以在程序没有运行的情况下直接查看和组织目标UI界面。单击标签(布局文件的名称)可以切换到文本模式。
布局文件的可视化浏览还有几个配置选项,例如屏幕的大小、屏幕的方向(landscape或portrait)、主题、SDK的版本。在不同的选项情况下,程序运行的效果不同。
提示:布局浏览器提供的布局文件的可视化查看仅供参考,具体的效果可能因设备的不同而不同。
(3)表示数值的XML文件
res目录中的value等子目录中的大部分XML文件表示数值,在界面中可以查看各个文件和编辑数值,如图1-21所示。
图1-21 查看各个value文件和建立数值
Resources标签,用于使用窗口化的环境查看和建立各个资源,在建立数值的时候,将出现一个对话框,这里显示的Color、Drawable、Integer Array等内容,表示的就是各个数据的类型。
在数值查看界面中,如果切换到后面的xxx.xml标签,则表示通过文本的方式查看和编辑当前的XML文件。
(4)Java源代码文件
Java源代码文件一般在src目录当中,IDE环境使用一个特殊的界面编写各个Java源代码文件,如图1-22所示。
图1-22 Java源代码文件的编辑界面
Java源代码采用文本的方式显示,右边也列出了Java源代码中类的层次结构。在IDE的源代码环境开发Java程序,主要具有以下几个特性。
自动修正:自动修正调用的方法名称;
类方法属性查找:显示类的属性方法的相关提示信息;
自动增加依赖包:根据代码引用类的情况,自动增加import的内容;
显示代码中的警告信息(例如,import多余包,没有使用的变量等)。
其中,自动增加依赖包的功能非常实用,可以减少开发中使用一个类就要手动写入import内容的烦琐工作。
3.运行工程
在Android中运行一个工程,可以通过右键单击工程名称,选择“Run As”或者“Debug As”来运行和调试工程。
提示:开始运行的时候,如果现在已连接到真实的设备或者仿真器设备上,将直接使用这个设备,否则将启动一个新的仿真设备。
按照上述方式运行一个应用程序包,实质上是一个安装+启动的双重过程,第一次运行后包就安装到目标设备中了。开始运行后,在IDE下层的控制台(Console)标签中,将出现目标运行的log信息,可以获取目标运行的信息。在仿真器环境中,运行一个包之后,控制台如图1-23所示。
图1-23 包运行阶段控制台
一个应用程序包开始运行的时候,出现类似的Log信息如下所示:
[2011-04-02 09:38:54- Skeleton] ------------------------------ [2011-04-02 09:38:54- Skeleton] Android Launch! [2011-04-02 09:38:54- Skeleton] adb is running normally. [2011-04-02 09:38:54 - Skeleton] Performing com.example.android.skeletonapp. SkeletonActivity activity launch [2011-04-02 09:38:54- Skeleton] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'Android_23' [2011-04-02 09:38:54- Skeleton] WARNING: Application does not specify an API level requirement! [2011-04-02 09:38:54- Skeleton] Device API version is 10 (Android 2.3.3) [2011-04-02 09:38:54- Skeleton] Uploading Skeleton.apk onto device 'emulator-5554' [2011-04-02 09:38:54- Skeleton] Installing Skeleton.apk...
在运行一个仿真设备的时候,可以进一步通过选择“Run As”中的“Run Configurations”进行进一步的配置,启动后的界面如图1-24所示。
图1-24 选择工程中运行的动作
在Project选项中可以选择启动的工程。启动活动(Launch Action)选项中可以选择启动哪一个活动(Android的一个工程中可以包含多个活动)。在Target标签中可以选择启动的时候使用的设备。
1.2.6 在IDE中使用各种Android工具
在仿真器环境中,可以使用集成的Android相关工具。使用的方法是选择“Window”→“Show View”→“Other”选项,开启Android的各个工具。
选择Android工具的对话框如图1-25所示。
图1-25 选择Android工具的对话框
在工具选择界面中,可以选择的Android主要工具包括:Device(设备控制)、Emulator Control(仿真器控制)、File Explore(文件浏览)、Heap(堆内存)、Logcat(Log输出)等。
每个工具开启之后,将出现一个单独的选项卡。
1.使用设备(Device)工具和Heap(堆)工具
Device工具是Android中运用调试的主要工具,可以用于监测仿真器的运行状况。Device工具基本的功能是显示各个Java进程的信息。使用其菜单还可以查看Heap(堆内存)、Threads(线程)的信息,还具有停止某个进程的运行的功能。Device窗口工具栏最右侧的Screen Capture(截屏)按钮,可以打开一个窗口用于截取屏幕的窗口。
Device工具和屏幕截取工具的窗口如图1-26所示。
图1-26 Android的Device工具和屏幕截取窗口
单击Dump Hprof File还可以获得后缀名为hprof的文件。如果当前系统的Eclipse环境中安装了MAT(Memory Analyzer Tool,内存分析工具),可以使用Eclipse的“Windows”→“Open Perspective”→“Other”→“Memory Analyzer”来分析hprof文件,获得当前进程内存泄漏的情况。
2.使用Logcat工具
Logcat工具是查看系统Log信息的工具,可以获得Android系统运行的时候打印出来的信息。工具的界面如图1-27所示。
图1-27 使用Logcat工具显示Log
这里通过GUI界面显示文字信息,显示的内容是从目标系统(真实设备或者仿真器)的Log输出。Log的窗口中记录的信息也就是实际的Android系统打印出来的,包含了时间(Time)、级别(Level)、进程ID(pid)、标签(tag)、Log内容(Message)等项目。
Logcat窗口可以设置Log的过滤器(Filter),这样可以仅仅获得自己需要的Log信息,屏蔽其他的信息。
3.使用仿真器控制(Emulator Control)工具
选择“Emulator Control”选项卡可以开启仿真器的控制对话框,界面如图1-28所示。
图1-28 Android仿真器控制界面
仿真器控制包含了以下几个方面的功能。
Telephony Status:控制电话系统的状态。
Telephony Actions:可以模拟打电话,发短信。首先需要在“Incoming number”文本框中输入电话号码,表示当前的电话号码。此后,选择“Voice”,单击“Call”按钮,表示以当前号码呼叫仿真器,如果在“Message”文本框中输入文本,单击“Send”按钮,表示以当前号码向仿真器发送一个短信息。
Location Controls:定位系统的控制,主要用于向仿真器输入GPS信息。例如Longitude和Latitude可用于发送经纬度信息。
提示:仿真器控制中的几个选项仅用于控制仿真器,它们通过和仿真器运行的硬件仿真程序打交道,来实现模拟几种硬件。当连接到实际的硬件设备的时候,这些功能就不起作用了。
4.使用文件浏览器(File Explorer)工具
文件浏览器可以从主机访问目标机的几个文件系统,用来上传文件、下载文件、删除内容和新建目录等。
文件浏览器的界面如图1-29所示。
图1-29 Android文件浏览器工具(左:浏览器界面;右:上传文件界面)
文件浏览器的界面中,列出了目标系统的几个重要目录:data、system、mnt等,并可以展开成树状结构。使用右侧的pull和push工具可以将内容从目标系统取出或者放入。
5.使用Windows工具
Windows工具用于查看当前系统的窗口情况,如图1-30所示。
图1-30 窗口工具
Windows工具有以下几个选项。
Refresh List of This Device:刷新当前设备;
Load view hierarchy into viewer tree:查看View的层次结构;
Inspect a screenshot in the Pixel Perfect view:调用Pixel Perfect查看具体的树状结构。
6.使用属性查看(View Properties)工具
View Properties是属性查看工具,可以查看界面的属性,工具运行情况如图1-31所示。
图1-31 属性查看工具
使用属性查看工具可以查看到的内容为当前视图的一些属性。
7.使用Pixel Perfect工具
Pixel Perfect,Pixel Perfect Loupe和Pixel Perfect Tree,实际上这里调用了Hierarchy Viewer工具,这是一个可以辅助更好地检查和设计用户界面的工具。
例如:使用Pixel Perfect Tree可以列出某个界面中视图的层次结构,显示的效果如图1-32所示。
图1-32 Pixel Perfect Tree工具
Pixel Perfect Tree中的树状结构表示的也就是当前界面中的UI的层次结构,根据Layout的嵌套关系划分层次。
Pixel Perfect可以从细节上查看某个View的效果,这种观察比实际产品上的显示状况更细,可以作为进一步优化显示效果的依据。
Pixel Perfect还具有一个特殊的功能:加载一个图片以查看这个图片在界面上的显示效果。
8.使用Tree Overview和Tree View
Tree Overview和Tree View用于以界面的方式显示当前View的层次结构。Tree Overview是一个宏观的视图,移动其矩形框的位置,得到的就是使用Tree View的详细显示。
Tree View的效果如图1-33所示。
图1-33 Tree View工具
这里选中一个项目(Vi e w)后,可以查看它的详细情况,通过这种方式依次得到系统在界面层次上的各部分的开销。
当设备上的窗口有所变化的时候,可以通过单击界面右上角的Refresh按键更新界面的显示。
提示:Windows工具中的Load view hierarchy into viewer tree更新的就是Tree View的内容。
Tree View中的树状结构和Pixel Perfect Tree中的树状结构表示的内容类似,只是Tree Vi e w采用了更加图形化的方式,并且可以看到进一步的信息。
9.使用Layout View
Layout View工具用于查看界面中每一个元素的情况。Layout View工具的界面如图1-34所示。
图1-34 Layout View工具
当启动后Layout View列出的只是界面的大体框架结构,单击右上角的“Load all View Image”并单击框架结构,可以看到每一个元素的情况。
1.2.7 其他Android工具
在Android SDK的tools目录中,具有一些可以脱离SDK环境独立使用的工具。在Windows和Linux不同的SDK环境中,这些工具不相同,例如某些工具在Windows中是批处理文件(*.bat),在Linux中是可执行程序。但是它们的使用方法是类似的。
主要有以下具有界面环境的工具。
ddms:相当于IDE环境中的Device、Emulator Control、Logcat、Heap、File Explorer等工具的集合。
hierarchyviewer:相当于IDE环境中的Windows、Pixel Perfect、Tree Overview、Tree View和Layout View等工具。
有一些Android的工具需要在命令行的环境中运行:在Linux中打开Shell界面来运行;在Windows中选择“开始”→“运行”,输入“cmd”并单击“确定”按钮,进入命令行的界面中运行。
命令行的工具是在Android SDK的tools目录中的脚本和可执行程序,主要为adb和mksdcard等。
adb(Android Debug Bridge,Android调试桥)是Android的主要调试工具,它可以通过网络或者USB连接真实的设备,也可以连接仿真器。通常在命令行的界面中,使用adb进行调试。
使用adb连接目标系统终端的方式如下所示:
> adb shell
将出现shell提示符,这就是Android所运行的Linux系统中的shell终端,可以在这个shell提示符后执行Android系统提供的Linux命令。
使用adb安装应用程序的方法为:
> adb install XXX.apk > adb uninstall <package_name>
使用adb在主机和目标机之间传送文件的方法为:
> adb push <host_path> <target_path> > adb pull <target_path> <host_path>
提示:IDE中的几个图形化的工具也都是基于adb和目标系统进行联系的。
mksdcard是用来建立SD卡映像的工具,用来建立一个Fat 32格式的磁盘映像,其使用方法如下所示:
mksdcard [-l label] <size> <file>
mksdcard的参数-l用于指定磁盘映像的标签,size用于指定磁盘映像的大小,其后面可以跟K、M、G等参数,file是磁盘映像的文件名称,这个文件也就是在仿真器运行过程中指定的文件。
mksdcard的一个示例如下所示:
> mksdcard 128M sdcard.img
这表示建立了一个大小为128MB,名称为sdcard.img的Fat32磁盘映像文件。这个映像文件可以在AVD中被选择。