当前位置:城玮文档网 >作文大全 > 第2章Android开发环境与开发工具

第2章Android开发环境与开发工具

时间:2022-07-26 13:45:03 来源:网友投稿

 第 2 章

 Android 开发环境与开发工具 本章主要介绍如何搭建 Android 的开发环境,Android 模拟器的使用以及 Android SDK中常用的开发工具。

 虽然在使用集成开发环境时,不需要这些工具,但是掌握这些工具的使用方法会对以后的开发起到良好的辅助作用,有助于开发技能的提高。

 学习要点  掌握 JDK 的安装和配置。

  掌握 ADT 的安装。

  掌握 Android SDK 的更新方法。

  熟悉 Android 模拟器的使用。

  熟悉 Android、MKsdcard 和 Emulator 工具的使用。

  了解对 Android 应用程序进行签名的过程。

  掌握 ADB 工具的使用。

  熟悉 DDMS 控制台环境。

 2.1

 配置 Android 开发环境 第 1 章曾介绍过 Android 用 Java 作为开发语言,因此 Java 开发环境也是 Android 开发环境的基础。下面以 Windows 平台为例介绍 Android 开发环境的配置过程,依次包括 JDK工具包、Eclipse 工具、ADT 插件和 Android SDK 工具包。

 2.1.1

 安装 JDK 工具包 Eclipse 和 Android 的运行都要依赖于 JDK,因此 JDK(Java Development Kits)是第一个需要安装的开发工具包。

 【范例 1】

 JDK 的下载网址为。下面以 Windows XP 系为例进行介绍,其具体安装过程如下。

 (1) 使用上面的网址进入 Oracle 官方网站的 Java 栏目,单击 Java Platform(JDK)图标打开新的网页。单击 Accept License Agreement 单选按钮同意协议,然后单击相应的超链接将文件下载到本地,这里下载的文件是。

 (2) 双击文件,开始安装 JDK 7。首先进入安装对话框,如图 2-1 所示。

 (3) 单击“下一步”按钮进入自定义安装对话框,如图 2-2 所示。这里会显示开发工具、源代码和公共 JRE 三个选项,默认全部被选中。

 (4)

 JDK 的默认安装路径是 C:\Program File\Java,单击“更改”按钮可以更改安装路径,更改完成后单击“下一步”按钮可以继续 JDK 的安装。直到出现如图 2-3 所示的对话框,则说明安装成功,单击“关闭”按钮完成安装。

  图 2-1

 JDK 安装向导对话框

  图 2-2

 JDK 自定义安装对话框 (5) 安装完成后会在C:\Program File\Java\目录下会产生一个名为jdk1.7.0_10的文件夹,文件夹中的内容如图 2-4 所示。

 图 2-3

 JDK 安装完成对话框

  图 2-4

 JDK 安装目录 从图 2-4 中可以看出,JDK 的目录下包含很多文件夹和文件,其中重要的目录如下。

  bin 目录:提供 JDK 工具程序,包括 javac、javadoc、appletviewer 等可执行程序。

  demo 目录:为 Java 使用者提供的一些编写好的范例程序。

  include 目录:存放用于本地方法的文件。

  jre 目录:存放 Java 运行环境文件。

  lib 目录:存放 Java 的类库文件。

  :Java 提供的 API 类的源代码压缩文件,包含 API 中某些功能的具体实现。

 2.1.2

 配置环境变量 在 Java 7 以前的旧版本中,需要配置 Classpath 和 Path 两个环境变量。其中 Path 用于指定 JDK 工具程序所在的位置;Classpath 是 Java 程序运行所需的环境变量,用于指定运行的 Java 程序所需的类的加载路径。而在 JDK 7 中只需要 Path 环境变量即可。配置 JDKT

 中的 Path 的方法有两种,分别如下。

 【范例 2】

 第一种方法是用命令行设置 Path 变量。具体方法是打开命令行窗口,输入如下命令。

 set path=%path%;C:\Program Files\Java\jdk1.7.0_10\bin

 在上述代码中,C:\Program Files\Java\jdk1.7.0_10\bin 是 JDK 的安装目录,读者可以根据自己的安装情况另行设置。设置好 Path 之后,可在任何目录下执行 Java 命令,如图 2-5所示。

 图 2-5

 使用命令行设置 Path 【范例 3】

 第二种方法是使用图形界面设置 Path 变量。首先右击“我的电脑”选择“属性”命令,在弹出的对话框中选择“高级”选项卡,如图 2-6 所示。接着单击下方的“环境变量”按钮,弹出“环境变量”对话框,如图 2-7 所示。

  图 2-6

 “系统属性”对话框

  图 2-7

 “环境变量”对话框

 单击“系统变量”下方的“新建”按钮,弹出“编辑系统变量”对话框,在“变量值”文本框中输入“.;C:\Program Files\Java\jdk1.7.0_10\bin”即可,如图 2-8 所示。

 图 2-8

 编辑系统变量 2.1.3

 安装 ADT 插件 Eclipse 是最受欢迎的 Java 开发工具,同时也是一个开源平台。Eclipse 的插件很多,通过它们可以扩展 Eclipse 的功能。例如其扩展功能可用于 JavaEE 语言、C 语言和 C++语言开发,Android 开发等。本节要介绍的 ADT(Android Development Tools)其实就是 Eclipse中的“Android 开发插件”。

 目前 ADT 插件有两种安装方法。第一种是先在,下载完成后直接解压即可使用,然后打开 Eclipse 工具,通过远程来安装 ADT 插件,当然也可以在本地安装。

 第二种是采用 Google 为开发人员准备的集成 ADT 插件的 Eclipse 安装包。安装包下载后直接解压即可使用,无须再安装和配置 ADT 插件。下面介绍这种方式的安装过程。

 【范例 4】

 在浏览器地址栏中输入“”,按 Enter 键,在打开的页面中单击VIEW ALL DOWNLOADS AND SIZES 链接,展开下载列表,如图2-9 所示。

 图 2-9

 下载页面 在下载页面同时显示了该安装包中包含的组件,例如 Eclipse 工具、ADT 插件、Android SDK 工具和 Android Platform 工具等等。

  技巧:

 如果无法正常访问上面的网址,建议读者设置代理服务器后再试试。

 从下载列表中选择相应平台的安装包,这里选择的是 Windows 32bit 平台。单击其后的超链接打开下载安装协议页面,选中底部的复选框。最后单击底部的 Download adt bundle widnows 按钮,开始下载,如图 2-10 所示。

 图 2-10

 开始下载 在弹出的下载对话框中单击“保存”按钮下载到本地硬盘。解压下载的文件会看到一个 eclipse 目录、一个 sdk 目录和一个 SDK Manager 程序,如图 2-11 所示。

 图 2-11

 解压后的目录内容 进入 Eclipse 目录,双击即可启动 Android 应用程序开发工具——ADT。启动后可将该图标的快捷方式发送至桌面方便以后使用。启用之后在菜单中选择 Help|About ADT 命令可以查看当前 ADT 的版本和说明信息,如图 2-12 所示。

 图 2-12

 About Eclipse 窗口

 提示:

 为了在命令行窗口调用 Android SDK 提供的各种工具,建议将 Android SDK下的 tools 目录和 platform-tools 目录添加到系统的 Path 环境变量中。

 2.1.4

 实验指导——手动安装 ADT 插件和汉化 Eclipse 工具 本次实验指导介绍手动安装 ADT 插件和汉化 Eclipse 工具的方法。具体步骤如下。

 (1) 从。

 (2) 解压下载的压缩包,双击其中的文件运行 Eclipse 程序 (3) 在 Eclipse 中选择 Help|Install New Software 命令,打开安装新插件窗口。

 (4) 在窗口中输入“”,然后从插件列表中展开 Developer Tools,选中 Android Development Tools 复选框来安装 ADT 插件,如图 2-13 所示。

 (5) 单击 Next 按钮,开始安装 ADT 插件。安装完成之后单击 Finish 按钮关闭窗口。

 图 2-13

 安装 ADT 插件窗口 (6)

 Eclipse 汉化插件的安装方法也是打开 Install 窗口,然后输入“http://download. /technology/babel/update-site/R0.12.0/juno”。

 (7) 从插件列表中展开Babel Language Packs for eclipse节点,并选中包含Chinese(Simplified)字符的复选框,如图 2-14 所示。

 (8) 单击 Next 按钮,开始安装汉化插件。安装完成之后单击 Finish 按钮关闭窗口。如图 2-15 所示为汉化后的 Eclipse 程序主窗口。

  图 2-14

 安装汉化插件窗口

 图 2-15

 汉化后的 Eclipse 窗口 2.2

 安装 Android SDK 工具包 Android SDK(Software Development Kit,软件开发包)包含开发、测试和调试 Android应用程序需要的所有东西。其中主要部分如下。

 1.

 Android API SDK 的核心是 Android API 库,它为开发人员提供了对 Android 栈进行访问的方法。Google 也是使用相同的库来开发原生的 Android 应用程序。

 2. 开发工具 为了让 Android 源代码变成可执行的 Android 应用程序,SDK 提供了多个开发工具供用户编译和调试应用程序时使用。本章后面将详细讲述这些开发工具,在此暂不叙述。

 3.

 Android 虚拟设备管理器和模拟器 Android 模拟器是一个完全交互式的移动设备模拟器,并有多个皮肤可供选择。模拟器运行在模拟设备硬件配置的 Android 虚拟设备中。通过使用模拟器,可以了解应用程序在实际的 Android 设备上的外观和运行情况。所有 Android 应用程序都运行在 Dalvik VM 中,所以软件模拟器是一个非常好的开发环境。

 4. 完整的文档 SDK 中包含大量代码级的参考信息,详细地说明了每个包和类中都包含哪些内容,以及如何使用它们。除了代码文档之外,Android 的参考文档和开发指南还解释了如何着手进行开发,尤其详细地解释了 Android 开发背后的基本原理。此外还强调了最佳开发实践,并深入阐述了关于框架的主题。

 5. 示例代码 Android SDK 包含一些示例代码集,它们解释了使用 Android 的某些可能性,以及一些用来强调如何使用每个 API 功能的简单程序。

 【范例 5】

 安装 Android SDK 的方法是在如图 2-11 所示的目录中,运行 SDK Manager 程序。程序将自动检测当前安装的版本情况,以及是否有更新的 SDK 版本可供下载。完成检测后进入 SDK 管理器窗口,如图 2-16 所示。

 图 2-16

 SDK 管理器窗口

 提示:

 在ADT中也可以选择Window|Android SDK Manager命令打开SDK管理器。

 图 2-16 中罗列了所有 Android 的 SDK 版本、Android 开发的工具以及扩展包。选中相应版本前面的复选框,或展开节点选择具体的某一项,单击窗口右下角的 Install 按钮,打开 Choose Packages to Install 窗口,如图 2-17 所示。

 图 2-17

 Choose Packages to Install 窗口 在这里可以阅读每个要安装软件包的许可协议,选中 Accept License 单选按钮,即可批量同意所有协议。然后单击 Install 按钮,开始安装指定的 SDK 版本,本书中使用的是Android 4.4.2 SDK,即 API 19。所有安装包更新完毕之后,单击 Done 按钮关闭窗口。

 在安装的过程中需要从 Google 服务器上下载 Android SDK 文件,若限于带宽和节点问题无法更新,可打开 C:\windows\System32\drivers\etc\hosts 文件,在文件最后添加以下内容:

 203.208.46.146

  203.208.46.146

 dl.

 203.208.46.146

 e.com

 2.3

 使用 Android 模拟器 经过上面的步骤,Android 开发所需的 Java 环境、开发工具和 SDK 都已准备就绪。接下来将介绍如何在本地通过虚拟器 Android Virtual Device(AVD)模拟 Android 系统。有了Android 模拟器,开发人员不必使用真实物理设备就可以开发、测试 Android 应用程序。

 2.3.1

 创建模拟器 除了不能拨打真实电话之外,Android 模拟器可以模拟真实设备的所有硬件和软件特性。模拟器提供了多种导航和控制键,开发人员通过单击鼠标或者键盘可以为应用程序生成事件。它还提供了一个屏幕来显示开发的应用程序以及其他正在运行的 Android 应用。

 为了简化模拟和测试应用程序,模拟器使用 Android 虚拟设备(AVD)配置。AVD 允许用户设置模拟手机的特定硬件属性(例如 RAM 的大小),并且允许用户创建多个配置,以便在不同的 Android 平台和硬件组合下进行测试。一旦应用程序在模拟器上运行,它可以使

 用 Android 平台的服务来启动其他应用、访问网络、播放声音和视频、存储和检索数据、通知用户以及渲染图形渐变和主题。

 Android 虚拟设备是模拟器的一种配置。开发人员通过定义需要的硬件和软件选项,可使用 Android 模拟器模拟真实的设备。

 一个 Android 虚拟设备由以下几部分组成。

  硬件配置:定义虚拟设备的硬件特性。例如,开发人员可以定义该设备是否包含摄像头、是否使用物理键盘和拨号键盘、内存大小等。

  映射的系统镜像:开发人员可以定义虚拟设备运行的 Android 平台版本。

  其他选项:开发人员可以通过指定需要使用的模拟器皮肤,来控制屏幕尺寸、外观等。此外,还可以指定 Android 虚拟设备使用的 SD 卡。

  专用存储区域:用于存储当前设备的用户数据(安装的应用程序、设置等)和模拟SD 卡。

 【范例 6】

 创建一个模拟器的步骤如下。

 (1) 从 ADT 启动 Eclipse,执行 Window|Android Virtual Device Manager 命令打开模拟器管理窗口。

 (2) 在图 2-18 所示的 Android Virtual Devices 选项卡下显示了可用的所有模拟器。当前界面为空是因为还没有创建模拟器。

 (3) 单击 Create 按钮,在弹出的对话框中设置模拟器的名称、设备类型、模拟器采用的 SDK 版本、键盘类型、设备皮肤、是否使用摄像头、内存大小及 SD 卡的大小等,如图 2-19 所示。

 图 2-18

 模拟器管理窗口

 图 2-19

 新建模拟器对话框 (4) 设置完成后单击 OK 按钮,关闭该对话框。此时新建的模拟器名称将出现在图 2-18

 所示的窗口列表中。

 切换到图 2-18 所示的 Device Definitions 选项卡,可以看到默认提供的 Android 设备类型,如图 2-20 所示。单击 Create Device 按钮,可在图 2-21 所示的对话框中新建一个 Android设备。

  图 2-20

 可用 Android 设备列表

 图 2-21

 新建 Android 设备对话框 2.3.2

 启动模拟器 要启动 Android 模拟器,最简单的方式是使用 AVD 管理工具,也可以使用 Emulator工具(本章第 2.5 节有介绍)。本节将使用 AVD 管理工具,启动在上一节中创建的名为 avd4.4的模拟器,具体操作方法如下。

 【范例 7】

 启动模拟器的操作如下。

 (1) 打开 AVD 管理器,从列表中选择名称为 avd4.4 的模拟器,然后单击 Start 按钮,打开启动选项对话框,如图 2-22 所示。

 (2) 单击 Launch 按钮确认运行,之后会弹出如图 2-23 所示的模拟器加载进度对话框。

 图 2-22

 启动模拟器对话框

 图 2-23

 加载模拟器对话框

 (3) 待模拟器加载完成之后会弹出一个显示有模拟器名称的窗口。稍待片刻,如果看到如图 2-24 所示的欢迎界面,则说明 Android 系统启动成功。

 图 2-24

 模拟器欢迎界面 (4) 根据屏幕提示进行解锁,即可进入 Android 模拟器的操作界面,其右侧为一些物理按键。

  提示:

 如果需要停止模拟器,只需将模拟器窗口关闭即可。

 2.3.3

 控制模拟器 当模拟器运行时,用户可以像使用真实的移动设备那样使用模拟移动设备。所不同的是,模拟器的使用需要用鼠标来“触摸”触摸屏,用键盘来“按下”按键。

 模拟器按键与键盘按键的对应关系如表 2-1 所示。

 表 2-1

 模拟器按键与键盘按键映射 模拟器按键 键盘按键 Home Home 键 Menu Page Up 键或 F2 键 Start Page Down 键或 Shift+F2 键 Back Esc 键 电话拨号 F3 键 电话挂断 F4 键 查询 F5 键 锁屏幕 F7 键

 续表 模拟器按键 键盘按键 音量放大 +键(台式机数字键盘)或 Ctrl+F5 键(笔记本) 音量缩小 -键(台式机数字键盘)或 Ctrl+F6 键(笔记本) 全屏幕切换 Alt+Enter 键 轨道球模式 F6 键 横竖屏切换 7 键(台式机数字键盘)或 Ctrl+F11 键(笔记本) 9 键(台式机数字键盘)或 Ctrl+F12 键(笔记本)

 在运行游戏时,可将 Android 模拟器切换到横屏模式,其显示效果如图 2-25 所示。

  图 2-25

 横屏显示的模拟器 2.3.4

 使用模拟器控制台 每个运行中的模拟器实例都含有一个控制台,通过控制台可以查询和控制模拟器设备的运行环境。连接到模拟器实例控制台的命令如下:

 telnet localhost <port>

 例如,第一个模拟器实例的控制台如果使用的端口是 5554,那么用户连接到模拟器5554 上的命令就要写为

 telnet localhost 5554

 连接上控制台后,用户可以输入“help [command]”来查看命令列表和某一命令的帮助文档。离开控制台时使用 quit 和 exit 命令即可。

 下面介绍一些常用的控制台命令。

 1.端口重定向命令 使用以下命令可以在模拟器运行期间重看、添加或删除重定向。

 (1)

 redir <list>

 说明:redir list 列出了当前的重定向,其最小值为 150,最大值为 550。

 (2)

 redir add <protocol> : <host-port> : <guest-port>

 说明:此命令用于添加新的端口重定向。

 <protocol>必须是 TCP 或 UDP,<host-port>

 是主机上打开的端口号,<guest-port>是向模拟器/设备发送数据的端口号。

 (3)

 redir del <protocol> : <host-port>

 说明:此命令用于删除端口重定向,<protocol>和<host-port>的含义同上。

 2.网络状况查询命令 使用以下命令可以检测模拟器运行的网络状态。

 network status

 执行后的输出结果类似如下:

 Current network status:

  download speed:

 0 bits/s (0.0 KB/s)

 upload speed:

 0 bits/s (0.0 KB/s)

 minimum latency:

 0 ms

 maximum latency:

 0 ms

  3.电话功能模拟命令 与电话相关的是 gsm 命令,该命令有以下 3 种格式。

 (1)

 gsm call <phonenumber> 说明:该命令用于模拟来自电话号码为<phonenumber>的呼叫。

 (2)

 gsm voice <state>

 说明:该命令用于修改 GPRS 语音连接的状态为<state>。State 的可选值有:unregistered为无可用网络;home 为处于本地网,无漫游;roaming 为处于漫游网;searching 为查找网络;denied 为仅能用紧急呼叫;off 同 unregistered;on 同 home。

 (3)

 gsm data <state>

 说明:该命令用于修改 GPRS 数据连接的状态为<state>,可选值与 Voice 相同,此处不再介绍。

 2.4

 Android 工具 在 Android SDK 中提供了一个名为 Android 的工具,该工具可用来查看 Android 的版本信息,以及创建、删除和查看 AVD 设备。

 2.4.1

 查看 Android 版本的 ID 信息 为了对 Android 程序进行全面的测试,在开发时用户通常会安装多个 Android 版本。每个 Android 版本都有一个唯一的 ID 标识。

 【范例 8】

 要查看所有 Android 版本的 ID 信息,可使用如下命令:

 android list targets

 执行后将看到每个 Android 版本的 ID 信息、API 版本、名称、类型和适用屏幕等,如图 2-26 所示。

 图 2-26

 查看 Android 版本的 ID 信息 2.4.2

 创建 AVD 设备 AVD 表示一种 Android 设备的配置信息,例如一个 AVD 可以表示一个运行 2.0 版本SDK,且使用 512MB 作为 SD 卡的 Android 设备。AVD 的使用理念是,首先创建将要支持的 AVD,然后在开发和测试应用程序时,将模拟器指向其中一个 AVD。

 默认情况下,所有的 AVD 都存储在 HOME\.android\AVD 目录中。要创建一个 AVD设备可以使用 android 命令的 create avd 选项,其语法格式如下:

 android create avd <option>

  其中,option 参数有如下几个选项。

  -t:新 AVD 设备的 ID,可通过 android list targets 查看,必选项。

  -c:指向一个共享 SD 卡的路径或者指定一个新的 SD 卡。

  -p:指定 AVD 设备的存储路径。

  -n:指定 AVD 设备的名称,必选项。

  -f:此选项表示覆盖已存在的同名 AVD。

  -s:指定 AVD 设备使用的皮肤。

 【范例 9】

 创建一个名为 testAvd 的AVD设备,要求 SD卡容量为 1024MB,并将其保存在 G:\AVD目录下。其实现语句如下:

 android create avd -n testAvd -t 1 -c 1024M -p G:\AVD\

 语句中-t 后面的 1 表示使用的是列表中编号为 1 的 Android 版本。执行该语句后会看到输出的信息,如图 2-27 所示。

  图 2-27

 创建 AVD 设备 2.4.3

 删除 AVD 设备 删除 AVD 设备的语法如下:

 android delete avd -n <avd_name>

 其中 avd_name 表示要删除的 AVD 设备的名称。

 【范例 10】

 在删除之前可以先运行如下命令,查看当前所有的 AVD 设备信息,包含名称、存储路径、SD 卡容量以及使用的皮肤等。

 android list avds

 如图 2-28 所示为运行结果,从中可以看出当前所包含的 AVD 设备有 avd 4.4、myAvd、testAvd。

  图 2-28

 查看所有 AVD 设备 【范例 11】

 假设要删除名为 testAvd 的 AVD 设备,可用以下语句:

 android delete avd -n testAvd

 执行该语句后再次使用 android list avds 命令,即可看到 testAvd 没有出现在列表中,如图 2-29 所示。

 图 2-29

 删除 AVD 设备 2.5

 Emulator 工具 Emulator 是一款命令行的模拟器管理工具,它可以控制模拟器实例的所有参数,例如是否允许使用视/音频、接收数据、使用调试和屏幕信息等。

 Emulator 的语法格式如下:

 emulator [option] [-qemu args]

 其中,option 表示选项,args 是选项的具体参数。

 Emulator 为 Android 模拟器工具提供了很多启动选项,可以在启动模拟器时指定,控制其外观和行为。下面从六个方面介绍 Emulator 工具的命令格式。

 1.数据命令选项 数据命令选项主要有四个,下面分别介绍。

 (1)

 emulator -data <file>

 说明:使用<file>当作用户数据的磁盘镜像,如果没有-data,模拟器会在~/.android (Linux/Mac)或 c:\Documents and Settings\<user>\Local Settings\Android(Windows)中查找文件名为的文件。如果使用了-data<file>但<file>不存在,模拟器会创建一个文件。

 (2)

 emulator -ramdisk <file> 说明:使用<file>作为 RAM 镜像,默认值为<system>/。

 (3)

 emulator -sdcard<file> 说明:使用<file>作为 SD 卡镜像,默认值为<system>/。

 (4)

 emulator -wipe-data 说明:启动前清除用户磁盘镜像中的所有数据。

 2.调试命令选项 调试命令选项主要有五个,下面分别介绍。

 (1)

 emulator -console 说明:允许当前中断使用控制台。

 (2)

 emulator -debug-kernel 说明:将内核输出发送到控制台。

 (3)

 emulator -logcat <logtags> 说明:允许根据给定的标签为输出分类。如果定义了环境变量 ANDROID_LOG_TAGS,并且不为空,那么它的值将被作为 logcat 的默认值。

 (4)

 emulator -trace <name> 说明:允许代码剖析(按 F9 键开始)。

 (5)

 emulator -verbose 说明:允许详细信息输出。

 3.媒体命令选项 媒体命令选项主要有四个,下面分别介绍。

 (1)

 emulator -mic <device or file> 说明:使用设备或者 WAV 文件作为音频输出。

 (2)

 emulator -noaudio 说明:禁用 Android 的音频支持,默认禁用。

 (3)

 emulator -radio <device> 说明:将无线调制解调器接口重定向到主机特征设备。

 (4)

 emulator -useaudio 说明:启用 Android 音频支持,默认不启用。

 4.网络命令选项 网络命令选项主要有两个,分别是-netdelay 和-netspeed。

 (1)

 emulator -netdelay <delay> 说明:设置网络延迟模拟的延迟时间为<delay>,默认值是 none。具体参数说明如下。

  gprs:min 150, max 550。

  edge:min 80, max 400。

  umts:min35, max 200。

  none:无延迟。

  <num>:模拟一个准确的延迟(毫秒)。

  <min>:<max>:模拟一个指定的延迟范围(毫秒)。

 (2)

 emulator -netspeed <speed> 说明:设置网速模拟的加速值为<speed>,默认值为 full。具体参数说明如下。

  gsm:up : 14.4, down 14.4。

  hscsd:up : 14.4, down : 43.2。

  gprs:up : 40.0, down : 80.0。

  edge:up :118.4, down : 236.8。

  umts:up : 128.0, down : 1920.0。

  hsdpa:up : 348.0, down : 14400.0。

  full:无限。

  <num>:设置一个上行和下行公用的准确速度。

  <up> : <down>:分别为上行和下行设置准确的速度。

 5.系统命令选项 系统命令选项主要有五个,下面分别介绍。

 (1)

 emulator -image <file> 说明:使用<file>作为系统镜像。

 (2)

 emulator -kernel <file> 说明:使用<file>作为模拟器内核。

 (3)

 emulator -qemu 说明:传递 qemu 参数。

 (4)

 emulator -qemu -h 说明:显示 qemu 帮助信息。

 (5)

 emulator -system <dir> 说明:在<dir>目录下查找系统、RAM 和用户数据镜像。

 6.界面命令选项 界面命令选项主要有六个,下面分别介绍。

 (1)

 emulator -flashkeys 说明:在设备皮肤上闪烁按下的键。

 (2)

 emulator -noskin 说明:不使用任何模拟器皮肤。

 (3)

 emulator -onion <image> 说明:在屏幕上使用覆盖图,不支持 JPEG 格式图片,仅支持 PNG 格式。

 (4)

 emulator -onion-alpha <percent> 说明:指定 onion 皮肤的半透明值,默认值为 50,单位为%。

 (5)

 emulator -skin <skinID> 说明:指定皮肤启动模拟器,SDK 提供了以下四个可选皮肤。

  QVGA-L(320*240,风景)默认。

  QVGA-P(240*320,肖像)。

  HVGA-L(480*320,风景)。

  HVGA-P(320*480,肖像)。

 (6)

 emulator -skindir <dir>

 说明:在<dir>目录下查找皮肤。

 2.6

 实验指导——管理 SD 卡 在 Android 模拟器实例上测试程序时经常需要使用 SD 卡。为此 Android SDK 提供了SD 卡创建工具——Mksdcard,它位于 Tools 目录中。

 Mksdcard 工具的语法格式如下:

 mksdcard [-l label] <size> <file>

 语法中各个参数的含义如下:

  -l:指定 SD 卡的卷标,可选参数。

  size:指定 SD 卡的容量大小,默认单位是 bytes,也可以使用 K 或者 M 作为单位。

  file:指定 SD 卡镜像文件的路径。

 【范例 12】

 创建一个卷标为 myCard,大小为 100MB 的 SD 卡,将文件保存为 D:\data\。其语句如下:

 mksdcard -l myCard 100MB d:\data\

 该语句执行成功后没有输出结果。此时打开 D:\data 会看到镜像文件,如图 2-30 所示。

 如果要管理 myCard 里面的内容,可通过以下步骤实现。

 (1) 使用 AVD Manager 或者 Emulator 工具加载 myCard 的镜像文件。Emulator 工具的加载命令如下:

 emulator -sdcard D:\data\ (2) 使用 ADB push 上传文件或者目录,也可以使用 ADT 的 File Explorer 工具管理。

 图 2-30

 创建 SD 卡镜像文件

 2.7

 Keytool 工具和 Jarsigner 工具 要使编写的 Android 应用程序能在真实的 Android 设备上运行,必须对 Android 应用程序的 APK 文件进行签名。APK 是 Android Package 的缩写,它可以直接在 Android 系统上运行,类似 Windows 系统下的 EXE 文件。

 Android SDK 提供了两个命令行工具对 APK 文件进行签名:和。其中 Keytool 用于生成一个 Android 程序使用的密钥文件(Private Key);Jarsigner 则根据该密钥文件对 Android程序进行打包并设置签名。

 Keytool 工具的语法如下:

 keytool -genkey -v -keystore ore -alias androidguy -keyalg RSA -validity 3000

 其中,各个参数的说明如下。

  ore:表示要生成的密钥文件名,可以是任意合法的文件名。

  androidguy:表示密钥的别名,在签名时会用到。

  RSA:表示密钥使用的算法。

  3000:表示签名的有效时间,以“天”为单位。

 进入命令行按照上述格式执行 Keytool 命令时,会要求用户输入一系列与密钥有关的信息,如图 2-31 所示。

 在输入完密钥信息后,按回车键会自动创建指定的密钥文件,并设置签名信息。运行成功后会出现图 2-32 所示界面,提示已经创建密钥文件到当前目录中。

 假设要对 C:\文件进行签名,则使用 Jarsigner 命令的语法格式如下:

 jarsigner -verbose -keystore ore C:\ androidguy

  图 2-31

 输入密钥信息

  图 2-32

 生成密钥文件 上述命令将指定的密钥文件 ore 对 Android 程序的 APK 文件进行签名,执行后还需要输入密钥的密码,执行成功后的输出如图 2-33 所示。经过签名后的 APK 文件占用的内存会比原始文件大。

 图 2-33

 对 APK 进行签名 2.8

 实验指导——使用 ADT 签名程序 在使用命令对 APK 文件进行签名时,通常需要熟记各个命令参数,比较麻烦。为此ADT 工具提供了一个图形化向导进行签名。向导的打开方法是:在 ADT 中右击项目名称,在弹出的菜单中选择 Android Tools|Export Signed Application Package 命令,具体操作步骤如下。

 (1) 在打开的窗口中输入或选择要签名的项目名称,如图 2-34 所示。

 (2) 单击“下一步”按钮,在打开的 Keystore selection 界面中选择 Create new keystore选项创建一个新的密钥文件,并指定密钥文件的名称和输入密码,如图 2-35 所示。

 (3) 单击“下一步”按钮,在进入的界面中输入密钥和签名信息,如图 2-36 所示。

 (4) 单击“下一步”按钮,指定生成后 APK 文件的名称和位置,如图 2-37 所示。

 (5) 单击“完成”按钮完成设置。打开目标位置,会看到除了生成的 APK 文件之外,还包括一个密钥文件。该密钥文件在给以后的程序签名时仍然可以继续使用。

  图 2-34

 选择项目

  图 2-35

 指定密钥文件和密码

 图 2-36

 指定密钥和签名信息

 图 2-37

 指定要生成的 APK 文件 2.9

 ADB 工具 ADB(Android Debug Bridge)实际上是一个“客户端—服务器端”程序,默认情况下它会监听 TCP 5554 端口,让客户端与服务器端通信。其中,客户端就是用来操作的计算机,服务器端是目标设备,例如 Android 设备、实体手机或虚拟机。

 ADB是Android SDK中最常用的调试工具之一,下面详细介绍该工具的具体应用情况。

 2.9.1

 查看 ADB 版本 ADB 工具位于 Android SDK 的 platform-tools 目录下,它的主要功能如下。

 (1) 运行设备的 shell 命令行。

 (2) 管理模拟或设备的端口映射。

 (3) 在计算机与设备之间上传和下载文件。

 (4) 将本地 APK 软件安装到模拟器或设备上,使应用或者系统升级。

 【范例 13】

 假设要查看 ADB 的版本,则可运行以下命令:

 adb version

 执行后的结果如图 2-38 所示,从中可以看到当前版本为 1.0.31。

 图 2-38

 查看 ADB 版本

 2.9.2

 查看设备信息 ADB 启动时首先会在服务器开启 5554~5585 端口,等待客户端 Android 设备或者模拟器的接入。

 【范例 14】

 要查看当前所有设备的信息可以使用以下命令:

 adb devices

 该命令返回的结果为 Android 设备或模拟器的序列号及其状态,运行效果如图 2-39所示。

  图 2-39

 查看设备信息 从输出结果中可以看出,当前 ADB 监听了两个端口的设备,它们的序列号分别是CoolPad8190 和 emulator-5554。其中,前者是一台真实的 Android 设备,后者是模拟器实例(5554 表示 ADB 为该实例分配的端口号)。返回结果的第二列表示当前设备的状态,它有如下两个值。

  offline:设备没有连接到 ADB 或者实例没有响应。

  device:设备已经连接到 ADB,并处于在线状态。

  注意:

 device 状态并不表示当前 Android 设备可用。因为当 Android 设备处于启动阶段时,若连接成功也会返回该状态。

 2.9.3

 管理软件 在使用 ADB 连接到 Android 设备之后便可以进行各种操作了。最常见的操作是在Android 设备中安装新的软件,或者卸载已有的软件。在这里需要注意的是,Android 设备中的软件都以.apk 为扩展名。

 1.安装软件 ADB 安装软件的语法格式如下:

 adb install <apk 文件路径>

 命令执行后会将指定的 apk 文件安装到设备上。如果在 install 后面添加了-r 选项,则表示重新(覆盖)安装此软件。

 【范例 15】

 假设要安装 d:\apk\软件包,安装命令如下。

 adb install d:\apk\

 命令执行后如果在窗口中出现 Success 字样,则说明安装成功,如图 2-40 所示。如图 2-41 所示为软件安装后,打开的运行效果。

  图 2-40

 安装软件成功窗口

 图 2-41

 Popogame 软件运行效果 假设该软件出现问题无法正常打开,则可以用如下命令进行修复安装。

 adb install -r d:\apk\

 2.卸载软件 如果不需要该软件了,还可以使用 ADB 命令卸载,语法格式如下:

 adb uninstall <软件名>

 上述命令执行后将卸载指定的软件。卸载时需要指定完整的软件包名称,而不是安装包的名称,但软件包不需要写扩展名。如果在 uninstall 后面添加-k 选项,则表示卸载软件时保留原配置和缓存文件。

 【范例 16】

 假设安装完包后的应用程序包有误,其名称是 id.popogame。若此时需要卸载该应用程序,则其卸载命令如下:

 adb uninstall id.popogame

 如果使用如下命令,则在删除该应用程序包时还可以保留原配置和缓存文件。

 adb uninstall -k id.popogame

  提示:

 使用 ADB 工具进入 Shell 命令状态可以卸载软件。

 【范例 17】

 如果当前 ADB 有多个 Android 设备或者模拟器实例,那么就需要使用-s 选项指定目标设备的序列号。

 设备序列号可通过 adb devices 命令获取。例如,要在 emulator-5554 实例上安装软件,则其命令如下:

 adb -s emulator-5554 install -r d:\apk\

 若要在 emulator-5554 实例上卸载软件,则其命令如下:

 adb -s emulator-5554 uninstall id.popogame 2.9.4

 移动文件 既然 ADB 工具在本机与 Android 设备之间建立了连接,那么就可以使用该工具在两者之间传输文件。例如,上传一个本地软件包到 Android 设备,或者从 Android 设备下载一个配置文件。

 1.上传文件 使用push命令可以把本地硬盘上的文件或者目录上传(复制)到远程的目标设备(模拟器实例)。其语法格式如下:

 adb push <本地路径> <远程路径>

 【范例 18】

 假设将 d:\apk\复制到 Android 设备的 data 目录中。其命令如下:

 adb push d:\apk\ /data/

 执行结果如图 2-42 所示。

  注意:

 本地硬盘上的路径符号是\,而设备/模拟器上的路径符号则是/,两个路径符号所使用的斜杠的方向不同。

 2.下载文件 使用 pull 命令可以将远程文件下载(复制)到本地硬盘上,其语法格式如下:

 adb pull <远程路径>

 <本地路径>

 【范例:19】

 假设将 Android 设备中 data 目录下的文件复制到 C 盘根目录,命令如下。

 adb pull /data/

 c:\

 执行结果如图 2-43 所示。

 图 2-42

 上传文件

  图 2-43

 下载文件

  提示:

 在 ADT 的 DDMS 透视图中可以很方便地使用 File Explorer 来管理文件。

 2.9.5

 执行 Shell 命令 由于 Android 是基于 Linux 内核的操作系统,因此在 Android 上可以执行 Shell 命令。具体方法是执行如下命令进入 Shell 命令状态:

 adb shell

 上述命令执行后,如果窗口显示一个#符号,则说明当前是 Shell 控制台,可以执行各种 Shell 命令。例如执行 ls 命令查看所有的系统文件,执行结果如图 2-44 所示。

 图 2-44

 执行 ls 命令窗口

  注意:

 如果没有 Android 系统的 root 权限,Shell 控制台的提示符将是一个$符号,而不是#符号。此时若想退出 Shell 控制台,则输入“exit”命令即可。

 【范例 20】

 在 Shell 控制台可以查看 Android 系统和设备的全部参数信息,如硬件信息、ROM版本信息以及系统信息等。具体方法是在 Shell 提示符下执行 getprop 命令,执行结果如图 2-45 所示。

 【范例 21】

 如果只想执行一条 Shell 命令,则可以使用如下语法格式:

 adb shell <shell_command>

 例如,执行 adb shell dmesg 语句可以查看 Android 内核的调试信息,执行结果如图 2-46

 所示。

 图 2-45

 执行 getprop 命令后的效果图

  图 2-46

 查看调试信息窗口 执行 pm 命令可以在 Shell 中删除软件,例如删除 id.popogame 的命令如下:

 adb shell pm uninstall id.popogame

 2.9.6

 查看 Bug 报告 在命令提示符中输入“adb bugreport”可以显示当前 Android 系统的运行状态,例如内存状态、CPU 状态、内核输出信息、调试信息以及错误信息等。由于该命令返回的输出结果有很多,图 2-47 中仅显示了部分信息。

 图 2-47

 查看 bug 报告

 2.9.7

 转发端口 使用 forward 命令可以进行任意端口的转发,即将一个模拟器/设备实例的某一特定主机端口,向另一个不同端口转发。

 【范例 19】

 以下语句演示了如何建立从主机端口 7100 到模拟器/设备端口 8100 的转发。

 adb forward tcp:7100 tcp:8100

 同样地,可以使用 ADB 来建立抽象的 UNIX 域套接口,其语句如下:

 adb forward tcp:7100 local:logd 2.9.8

 启动和关闭 ADB 服务 若添加新的设备或者移除设备时,ADB 服务没有立即生效;或者 ADB 服务运行时间过长产生了异常。出现这些类似情况时,就需要关闭当前的 ADB 服务,并重新启动。

 关闭 ADB 服务的命令如下:

 adb kill-server

 启动 ADB 服务的命令如下:

 adb start-server

 执行启动命令的效果如图 2-48 所示。

  图 2-48

 管理 ADB 服务 2.10

 AAPT 工具 在开发 Android 应用时,该应用中可能会包含很多资源文件,例如图片、音频和素材等。而当用户需要发布 Android 应用时,就必须将这些资源文件包含进去,打包为 APK文件。

 Android SDK 中的 AAPT 工具可以实现对资源的打包。AAPT 工具的英文全称是Android Asset Packaging Tool,它支持很多子命令,常用的有以下几种。

  aapt list:列出资源包中的内容。

  aapt dump:查看 APK 包内指定的内容。

  aapt package:打包生成资源压缩包。

  aapt remove:从压缩包中删除指定文件。

  aapt add:向压缩包中添加指定文件。

  aapt version:查看 aapt 工具版本。

 用于打包资源的 aapt package 命令的语法格式如下:

 aapt package –A <附件资源路径> -S <资源路径> -M <Android 应用清单文件> -I <额外包> -F 目标文件路径

 以下是 AAPT 工具的使用示例:

 aapt package –A assets –S res –M

 –I D:\adt\platforms\ –F bin\_

 上述命令将当前目录下的 assets 目录、res 目录、文件都打包到了 bin\_资源包中。

 2.11

 DDMS 工具 DDMS 的英文全称是 Dalvik Debug Monitor Service,其主要功能是监控 Android 应用程序的运行并输出日志,同时还可以模拟电话的拨打、接听以及模拟短信的接收和地理位置等。借助 DDMS 工具,开发人员可以对 Android 应用程序进行调试和测试,从而大大降低程序的开发成本。

 打开 DDMS 工具的方法是:在 ADT 中选择 Window|Open Perspective|DDMS 命令,此时将进入 DDMS 工具的工作视图。在 DDMS 的工作视图中会看到很多面板,可用于调试、监视和查看 Android 系统的运行状态,下面进行详细介绍。

 1.Devices 面板 在 Devices 面板中可以看到与 DDMS 工具连接的设备终端信息,以及在该设备终端上运行的应用程序。如图 2-49 所示为 Devices 面板,工具栏上各图标按钮的作用描述如下。

  :用于调试进程。

  :用于更新堆栈。

  :用于转存 HPROF 文件。

  :用于执行垃圾回收。

  :用于更新线程。

  :用于启动开发方法执行分布图。

  :用于停止进程。

  :用于屏幕截图。

 2.Threads 面板 从 Devices 面板的列表中选择一项应用程序,单击 按钮即可在 Threads 面板中查看该应用程序调用线程的信息。Threads 面板如图 2-50 所示,单击 Refresh 按钮可以实时刷新面板。

  图 2-49

 Devices 面板

 图 2-50

 Threads 面板 3.File Explorer 面板 File Explorer 面板是一个文件浏览器,用于管理 DDMS 工具连接的 Android 设备上的文件,如图 2-51 所示。单击 File Explorer 面板上的 按钮可以将 Android 设备上的文件复制到本地单击 按钮可以将本地文件上传到 Android 设备,单击 按钮可以删除文件,单击 按钮可以创建目录。

 4.Emulator Control 面板 Emulator Control(设备控制)面板用于管理 Android 设备上的硬件,如图 2-52 所示。它可以模拟真实 Android 设备具有的电话拨打和接听、短信的收送和地理位置识别功能。

  图 2-51

 File Explorer 面板

  图 2-52

 Emulator Control 面板 5.LogCat 面板 LogCat 面板是 DDMS 工具视图中最常用的面板,也是 Android 应用程序开发和调试过程中作用最大的面板,如图 2-53 所示。

 图 2-53

 LogCat 面板

 LogCat 面板中显示了应用程序的六类运行信息,分别是调试信息(Debug)、警告信息(Warn)、错误信息(Error)、普通信息、冗余信息(Verbose)和中断信息(Assert),并且不同类型的信息具有不同的显示颜色,可方便开发人员观察。在 LogCat 面板右上角的下拉列表中,可以对显示信息的类型进行筛选。

 2.12

 思考与练习 一、填空题 1. 安装好 JDK 后,还需要将它的 BIN 目录添加到__________环境变量中。

 2. 在 Android 模拟器中按下__________键可以锁定屏幕。

 3. ADB在默认情况下监听的是__________端口的Android设备或者模拟器实例连接。

 4. 假设要将 C:\.apk 安装到 Android 模拟器,可以使用命令__________。

 二、选择题 1. Android SDK 中包含__________。

 A.Android API

  B.硬件管理 C.开发工具

 D.Android 虚拟设备管理器 2. 以下操作在 Android 模拟器中受限制的是__________。

 A.访问网络

 B.USB 连接

 C.播放声音

 D.通知用户 3. 使用 Emulator 工具时指定__________选项可以禁用音频支持。

 A.-console

 B.-mic

  C.-noaudio

 D.-radio 4. 下列 Mksdcard 工具的使用方法中,错误的是__________。

 A.mksdcard -l myCard 10M d:\ B.mksdcard 10M d:\ C.mksdcard d:\ D.mksdcard 1G d:\ 5. Android 设备的状态值为__________表示在线。

 A.online

 B.device

 C.offline

 D.enable 6. 下列 ADB 工具的使用方法中,错误的是__________。

 A.adb –v

 B.adb version C.adb devices D.adb bugreport 三、简答题 1. 列举搭建 Android 开发环境需要的软件。

 2. 简述模拟器对 Android 应用程序开发的作用。

 3. 简述创建一个 AVD 设备的过程。

 4. 简述如何创建一个自定义的 SD 卡。

 5. 举例说明使用 ADB 管理软件的方法。

相关热词搜索: 开发工具 环境 开发