Android应用开发入门教程(经典版)

注脚

展开查看详情

1. www.linuxidc.com Android 应用开发入门教程(经典版) Linux公社(LinuxIDC.com)于 2006 年 9 月 25 日注册并开通网站,Linux现在 已经成为一种广受关注和支持的一种操作系统,IDC是互联网数据中心,LinuxIDC 就是关于Linux的数据中心。 LinuxIDC.com提供包括Ubuntu,Fedora,SUSE技术,以及最新IT资讯等Linux专 业类网站。 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

2. www.linuxidc.com 目 录 第一篇 Android 系统结构和 SDK 使用............................................................................................................................ 5 第 1 章 Android 的系统介绍........................................................................................................................................... 5 1.1 系统介绍 ........................................................................................................................................................... 5 1.2 软件结构和使用的工具 ................................................................................................................................... 7 第 2 章 Android SDK 的开发环境.................................................................................................................................. 10 2.1 Android SDK 的结构 ...................................................................................................................................... 10 2.2 Android SDK 环境安装 .................................................................................................................................. 11 2.2.1. 安装 JDK 基本 Java 环境。................................................................................................................ 11 2.2.2. 安装 Eclipse........................................................................................................................................... 12 2.2.3. 获得 Android SDK ............................................................................................................................... 12 2.2.4(1). 在 Eclipse 3.4(Ganymede)中安装 ADT ............................................................................... 14 2.2.4(2). 在 Eclipse 3.5(Galileo)中安装 ADT ..................................................................................... 17 2.2.5. 在 Eclipse 中配置 Android SDK ......................................................................................................... 20 2.3 Android 中运行仿真器环境............................................................................................................................ 21 2.3.1. 建立 Android 虚拟设备 ....................................................................................................................... 21 2.3.2. 运行虚拟设备........................................................................................................................................ 22 2.3.3. 使用 Android 中的工具 ....................................................................................................................... 23 2.3.4. 使用 logcat............................................................................................................................................. 24 2.3.5. 使用仿真器控制.................................................................................................................................... 25 2.3.6. 命令行工具 adb、mksdcard 等 .......................................................................................................... 26 2.3.7. 使用设备控制........................................................................................................................................ 28 2.4 Android 中建立工程........................................................................................................................................ 29 2.4.1. 建立工程................................................................................................................................................ 29 2.4.2. 查看和编辑各个文件............................................................................................................................ 31 2.4.3. 运行工程................................................................................................................................................ 33 第二篇 Android 应用程序的概述和框架....................................................................................................................... 36 第 3 章 Android 应用层程序的开发方式....................................................................................................................... 36 3.1 应用程序开发的结构 ....................................................................................................................................... 36 3.2 API 参考文档的使用 ........................................................................................................................................ 36 第 4 章 Android 应用程序示例........................................................................................................................................ 40 4.1 HelloActivity 程序的运行 ............................................................................................................................ 40 4.2 HelloActivity 的源文件结构 ........................................................................................................................ 41 4.2.1.Android.mk 文件................................................................................................................................. 41 4.2.2.AndroidManifest.xml 文件 ................................................................................................................. 42 4.2.3.源代码文件........................................................................................................................................... 42 4.2.4.布局文件............................................................................................................................................... 43 4.2.5.其他资源文件....................................................................................................................................... 43 4.3 HelloActivity 的编译结构 ............................................................................................................................ 43 4.4 SkeletonApp 的程序的运行........................................................................................................................ 44 4.5 SkeletonApp 的源文件结构........................................................................................................................ 44 4.6 SkeletonApp 的编译结构............................................................................................................................ 46 第 5 章 Android 应用程序的内容................................................................................................................................... 47 5.1 Android 应用程序的概念性描述 ................................................................................................................. 47 5.1.1.应用程序的组成部分........................................................................................................................... 47 5.1.2.应用程序的生命周期........................................................................................................................... 48 5.2 应用程序包含的各个文件 ............................................................................................................................. 50 5.3 使用 am 工具启动 Android 应用程序 ........................................................................................................ 51 2 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

3. www.linuxidc.com 第三篇 Android 的 UI 系统实现 ..................................................................................................................................... 53 第 6 章 UI 的基本外形和控制........................................................................................................................................ 53 6.1 控件和基本事件的响应 ................................................................................................................................. 53 6.1.1.事件响应方法....................................................................................................................................... 54 6.1.2.第二种响应方法................................................................................................................................... 56 6.1.3.第三种响应方法................................................................................................................................... 57 6.2 键盘事件的响应 ............................................................................................................................................... 57 6.3 运动事件的处理 ............................................................................................................................................... 59 6.4 屏幕间的跳转和事件的传递 ........................................................................................................................... 62 6.4.1.跳转的方法........................................................................................................................................... 62 6.4.2.带有返回值的跳转............................................................................................................................... 63 6.5 菜单的使用 ........................................................................................................................................................ 66 6.6 弹出对话框 ........................................................................................................................................................ 67 6.6.1. 提示信息和两个按钮的对话框............................................................................................................ 68 6.6.2. 提示信息和三个按钮的对话框............................................................................................................ 69 6.6.3. 列表项对话框........................................................................................................................................ 70 6.6.4. 单选项和按钮对话框............................................................................................................................ 70 6.6.5. 复选项和按钮对话框............................................................................................................................ 71 6.6.6. 文本的按键对话框(使用布局文件)................................................................................................ 72 6.7 样式的设置 ....................................................................................................................................................... 74 6.7.1.预定样式对话框................................................................................................................................... 74 6.7.2.自定义样式对话框............................................................................................................................... 74 6.7.3.窗口透明样式示例............................................................................................................................... 75 第 7 章 控件(Widget)的使用 ..................................................................................................................................... 78 7.1 Android 中控件的层次结构......................................................................................................................... 78 7.2 基本控件的使用 ............................................................................................................................................. 79 7.2.1.普通按钮............................................................................................................................................... 79 7.2.2.图像区域............................................................................................................................................... 80 7.2.3.图像按钮............................................................................................................................................... 82 7.2.4.进度条................................................................................................................................................... 83 7.2.5.多种控件............................................................................................................................................... 85 7.3 自定义的视图 ................................................................................................................................................... 86 第 8 章 视图组(ViewGroup)和布局(Layout)的使用 ........................................................................................... 89 8.1 Android 的屏幕元素体系................................................................................................................................ 89 8.2 几种独立使用的视图组 ................................................................................................................................... 90 8.2.1.网页视图............................................................................................................................................... 90 8.2.2.旋转按钮............................................................................................................................................... 91 8.2.3.文本切换器........................................................................................................................................... 93 8.2.4.图像切换器........................................................................................................................................... 94 8.3 作为简单容器使用的视图组 ........................................................................................................................... 95 8.3.1.单选按钮组........................................................................................................................................... 95 8.3.2.使用滚动条........................................................................................................................................... 96 8.4 布局(Layout) .............................................................................................................................................. 99 8.4.1.基本的布局内容................................................................................................................................... 99 8.4.2.线性布局(LinearLayout) ............................................................................................................. 100 8.4.3.相对布局(RelativeLayout)........................................................................................................... 101 8.4.4.表单布局(Table Layout).............................................................................................................. 103 8.5 网格(Grid)视图组 ................................................................................................................................... 103 3 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

4. www.linuxidc.com 8.6 列表(List)视图组 .................................................................................................................................... 107 8.7 使用 Tab 组织 UI ......................................................................................................................................... 109 第 9 章 2D 图形接口的使用 ......................................................................................................................................... 113 9.1 使用 2D 图形接口的程序结构。 .................................................................................................................. 113 9.2 图像、图形、文本的基本绘制 ..................................................................................................................... 114 9.3 文本的对齐方式 ............................................................................................................................................. 116 9.4 使用路径效果(PathEffect) ..................................................................................................................... 118 9.5 剪裁效果 ......................................................................................................................................................... 119 9.6 记录绘制的过程 ............................................................................................................................................. 121 9.7 动画效果 ......................................................................................................................................................... 123 第 10 章 OpenGL 3D 图形的使用 ................................................................................................................................ 125 10.1 使用 OpenGL 图形接口的程序结构。 ..................................................................................................... 125 10.2 基本的绘制 ................................................................................................................................................... 126 10.3 渲染器的实现 ............................................................................................................................................... 127 10.4 3D 动画效果的实现...................................................................................................................................... 129 4 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

5. www.linuxidc.com 第一篇Android系统结构和SDK使用 第1章 Android的系统介绍 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ 1.1 系统介绍 1.2 软件结构和使用的工具 1.1 系统介绍 Android 是 Google 开发的基于 Linux 平台的、开源的、智能手机操作系统。Android 包括操作系统、中间 件和应用程序,由于源代码开放,Android 可以被移植到不同的硬件平台上。 OHA(Open Handset Alliance,开放手机联盟),为 Google 与 33 家公司联手为 Android 移动平台系统的发 展而组建的一个组织。 HTC 和 Google 合作推出了几款手机:G1、G2、Hero 和 Nexus One,其他的手机厂商也推出了几款 Android 手机,如下图所示: 5 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

6. www.linuxidc.com 图 G1、G2、Hero 和 Nexus One 手机 围绕在 Google 的 Android 系统中,形成了移植开发和上层应用程序开发两个不同的开发方面。手机厂商从 事移植开发工作,上层的应用程序开发可以由任何单位和个人完成,开发的过程可以基于真实的硬件系统,还 可以基于仿真器环境。 Android 1.5 以前的仿真环境,Android 1.6 以后的仿真器环境如下所示: 图 Android 1.5 以前的仿真器环境 6 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

7. www.linuxidc.com 图 Android 1.6 以后的仿真器环境 作为一个手机平台,Android 在技术上的优势主要有以下几点: „ 全开放智能手机平台 „ 多硬件平台的支持 „ 使用众多的标准化技术 „ 核心技术完整,统一 „ 完善的 SDK 和文档 „ 完善的辅助开发工具 Android 的开发者可以在完备的开发环境中进行开发,Android 的官方网站也提供了丰富的文档、资料。这 样有利于 Android 系统的开发和运行在一个良好的生态环境中。 1.2 软件结构和使用的工具 从宏观的角度来看,Android 是一个开放的软件系统,它包含了众多的源代码。从下至上,Android 系统分 成 4 个层次: „ 第 1 层次:Linux 操作系统及驱动; „ 第 2 层次:本地代码(C/C++)框架; „ 第 3 层次:Java 框架; „ 第 4 层次:Java 应用程序。 Android 系统的架构如图所示: 7 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

8. www.linuxidc.com Java 系统API Java C/C++ <--> JAVA Java 内核空间 <--> 用户空间 Linux 图 Android 系统的架构 Android 的第 1 层次由 C 语言实现,第 2 层次由 C 和/C++实现,第 3、4 层次主要由 Java 代码实现。 第 1 层次和第 2 层次之间,从 Linux 操作系统的角度来来看,是内核空间与用户空间的分界线,第 1 层次 运行于内核空间,第 2、3、4 层次运行于用户空间。 第 2 层次和第 3 层次之间,是本地代码层和 Java 代码层的接口。 第 3 层次和第 4 层次之间,是 Android 的系统 API 的接口,对于 Android 应用程序的开发,第 3 层次以下 的内容是不可见的,仅考虑系统 API 即可。 由于 Android 系统需要支持 Java 代码的运行,这部分内容是 Android 的运行环境(Runtime),由虚拟机和 Java 基本类组成。 对于 Android 应用程序的开发,主要关注第 3 层次和第 4 层次之间的接口。 除了软件本身的代码之外,Android 还提供了一系列工具来辅助系统开发,这些主要的工具包括: „ aapt(Android Asset Packaging Tool):用于建立 zip 兼容的包(zip、jar、apk) ,也可用于将资源编译到二进 制的 assets。 „ adb(Android Debug Bridge,Android 调试桥):使用 adb 工具可以在模拟器或设备上安装应用程序的.apk 文件,并从命令行访问模拟器或设备。也可以用它把 Android 模拟器或设备上的应用程序代码和一个标准 的调试器连接在一起。 „ android 工具:android 工具是一个脚本,用于创建和管理 Android Virtual Devices (AVDs)。 „ AIDL 工具(Android Interface Description Language,Android 接口描述语言工具),AIDL 工具可以生成进程 间接口的代码,诸如 Service 可能使用的接口。 „ AVDs(Android Virtual Devices,Android 虚拟设备) „ 用于配置模拟器,模拟出类似的设备效果 „ DDMS(Dalvik Debug Monitor Service,Dalvik 调试监视器服务):这个工具集成了 Dalvik,能够在模拟器 或者设备上管理进程并协助调试。可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观 察堆(heap)和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。 „ dx:dx 工具用于将.class 字节码(bytecode)转换为 Android 字节码(保存在.dex 文件中)这个字节码文件 是给 Android 的 Java 虚拟机运行用的。 „ Draw 9-patch:Draw 9-patch 工具允许使用所见即所得(WYSIWYG)的编辑器轻松地创建 NinePatch 图形。 „ Emulator(模拟器):模拟器是一个运行于主机上的程序,可以使用模拟器来模拟一个实际的 Android 系统 的运行,使用模拟器非常适合调试和测试应用程序。 „ Hierarchy Viewer(层级观察器):层级观察器工具允许调试和优化用户界面。它用可视的方法把视图(view) 的布局层次展现出来,此外,还给当前界面提供了一个具有像素栅格(grid)的放大镜观察器。 „ mksdcard:帮助创建磁盘映像(disk image),可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如 SD 卡)。 „ Monkey:Monkey 是在模拟器或设备上运行的一个小程序,它能够产生随机的用户事件流,例如:点击 (click)、触摸(touch)、挥手(gestures),还包括一系列系统级事件。可以使用 Monkey 给正在开发的程序 8 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

9. www.linuxidc.com 做随机的但可重复的压力测试。 „ sqlite3:sqlite3 工具能够方便地访问 SQLite 数据文件,这是一个 sqlite 标准命令行工具。 „ Traceview:这个工具可以将 Android 应用程序产生的跟踪日志(trace log)转换为图形化的分析视图。 9 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

10. www.linuxidc.com 第 2 章 Android SDK的开发环境 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ 2.1 Android SDK 的结构 2.2 Android SDK 的环境安装 2.3 Android 中运行仿真器环境 2.4 Android 中建立中程 Android 的 SDK 开发环境使用预编译的内核和文件系统,屏蔽了 Android 软件架构第三层及以下的内容, 开发者可以基于 Android 的系统 API 配合进行应用程序层次的开发。在 SDK 的开发环境中,还可以使用 Eclipse 等作为 IDE 开发环境。 2.1 Android SDK的结构 Android SDK 在 IDE 环境中使用的组织结构如图所示: ADT 安装 插件 设置SDK Eclipse 运行仿真器 Android SDK 开发环境 工具 底层映像 Windows Linux 建立 工程 示例代码 文档 本机JAVA环境 图 Android 系统的 IDE 开发环境 Android 提供的 SDK 有 Windows 和 Linux(其区别主要是 SDK 中工具不同),在 Android 开发者的网站上 可以直接下载各个版本的 SDK。 Android 的 SDK 命名规则为: android-sdk-{主机系统}_{体系结构}_{版本} 例如,Android 提供 SDK 的几个文件包如下所示: „ android-sdk-windows-1.5_r2.zip „ android-sdk-linux_x86-1.5_r2.zip „ android-sdk-windows-1.6_r1.zip „ android-sdk-linux_x86-1.6_r1.zip SDK 的目录结构如下所示: „ add-ons:附加的包; 10 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

11. www.linuxidc.com „ docs:HTML 格式的离线文档; „ platforms:SDK 核心内容; „ tools:工具。 在 platforms 中包含了的各个 Android SDK 版本的目录中,包含系统映像,工具、示例代码等内容。 „ data/ :包含默认的字体、资源等内容; „ images/ :包含默认的 Android 磁盘映像,包括了系统映像(Android system image), 默认的用户数据映像 (userdata image),默认的内存盘映像 (ramdisk image)等等,这些映像是仿真器运行的时候需要使用的; „ samples/:包含一系列的应用程序,可以在 Android 的开发环境中,根据它们建立工程,编译并在仿真器上 运行; „ skins/:包含了几个仿真器的皮肤,每个皮肤对应了一种屏幕尺寸; „ templates/:包含了几个用 SDK 开发工具的模板; „ tools/:特定平台的工具; Any development tools that are specific to the platform version. „ android.jar:Android 库文件的 JAVA 程序包,在编译本平台的 Android 应用程序的时候被使用。 不同保本的 API 对应着不同的 API 级别,Android 已经发布,并且属于正式支持的各个版本的 SDK 如下所 示: Android 的发布版本 API 级别 Android 1.1 2 Android 1.5 3 Android 1.6 4 Android 2.0 5 Android 2.0.1 6 Android 2.1 7 Android 的 SDK 需要配合 ADT 使用,ADT(Android Development Tools)是 Eclipse 集成环境的一个插件。 通过扩展 Eclipse 集成环境功能,使得生成和调试 Android 应用程序既容易又快速。 2.2 Android SDK环境安装 Android 的 SDK Windows 版本需要以下的内容: „ JDK 1.5 或者 JDK 1.6 „ Eclipse 集成开发环境 „ ADT(Android Development Tools)插件 „ Android SDK 其中 ADT 和 Android SDK 可以到 Android 开发者的网站去下载,或者在线安装亦可,ADT 的功能如下所 示: „ 可以从 Eclipse IDE 内部访问其他的 Android 开发工具。例如,ADT 可以让你直接从 Eclipse 访问 DDMS 工 具的很多功能——屏幕截图、管理端口转发(port-forwarding)、设置断点,观察线程和进程信息。 „ 提供了一个新的项目向导(New Project Wizard) ,帮助你快速生成和建立起新 Android 应用程序所需的最基 本文件 „ 使构建 Android 应用程序的过程变得自动化,以及简单易行。 „ 提供了一个 Android 代码编辑器,可以帮助你为 Android manifest 和资源文件编写有效的 XML 在 Eclipse 环境中使用 Android SDK 的步骤如下所示: 2.2.1. 安装JDK基本Java环境。 Eclipse 的运行需要依赖 JDK,因此需要下载使用 JDK 的包,并进行安装。 JDK 1.6 版本其文件为 jdk-6u10-rc2-bin-b32- windows-i586-p-12_sep_2008.exe,点击直接进行安装即可。 11 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

12. www.linuxidc.com 2.2.2. 安装Eclipse Eclipse 集成开发环境是开放的软件,可以到 Eclipse 的网站上去下载: http://www.eclipse.org/downloads/ Eclipse 包含了以下的几个版本 „ Eclipse 3.3(Europa) „ Eclipse 3.4(Ganymede) „ Eclipse 3.5(Galileo) 在 Android 的开发中, 推荐使用 Eclipse 3.4 和 Eclipse 3.5, Eclipse 3.3 虽然也可以使用, 但是没有得到 Android 官方的验证。 如果使用 Eclipse 3.4,可以去下载 eclipse-SDK-3.4-win32.zip 包;如果使用 Eclipse 3.5,可以去下载 eclipse-SDK-3.5.1-win32.zip 包。这个包不需要安装,直接解压缩即可,解压缩后执行其中的 eclipse.exe 文件。 2.2.3. 获得Android SDK Android 的 SDK 是一个比较庞大的部分,包含了 Android 系统的二进制内容、工具和文档等。得到 Android SDK,可能使用到两种方式: „ 下载 Android SDK 的包(Archives) „ 通过软件升级的方式(Setup) 下载 Android SDK 的包:对于 Android SDK 1.6 之前的版本, 包括 Android SDK 1.1, Android SDK 1.5, Android SDK 1.6 可以直接从 Android 开发者中下载得到,每个 SDK 包含 Linux、 Windows 和 MAC 三个版本。 在 Windows 环境中,使用 Windows 的版本,例如:android-sdk-windows-1.5_r2.zip,android-sdk-windows-1.6_r1.zip,这个 包通常用几百 M 的大小。 以这种方式下载的 Android SDK,不需要安装,直接解压缩即可。 目前 Android 系统推荐使用的方式软件升级获得 Android 包: „ 第一步:获得 android-sdk_r04-windows.zip 从 Android 开发者上,获取 Android SDK 的相关包 android-sdk_r04-windows.zip, 这个包比实际的 Android 的 SDK 要小得多,只有 20 多 M,其中包含了一个 Setup 可执行程序,获取完整的 SDK 是通过这个可执行程序获得的。解 压缩这个包,获得 Android SDK 的基本目录结构,但是其中还没有实际的内容。 „ 第二步:运行 SDK Setup.exe 程序,下载实际的 Android SDK 运行程序,Android SDK 的,出现 SDK 的下载界面: 12 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

13. www.linuxidc.com 图 Android SDK 的安装界面 在 Settings 中进行设置,选中 Force ……项,并且选择保存(Save and Apply)。 图 设置安装路径 回到 Installed Packages 中,进行安装,出现 Android 的各个版本的 SDK、工具、文档的安装界面,如下所 示: 图 选择要安装的组件 每个组件可以选择,接受(Accept)表示安装,拒绝(Reject)表示不安装,接受全部(Accept All)表示 安装所有的内容。文档一般安装成最新的版本。 选择后,安装程序将依次安装各个组件。 13 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

14. www.linuxidc.com 图 安装界面 下载过程中,每个组件将首先被放置到 temp 中,以一个 zip 包的形式存在。下载完成后,得到完整的 Android SDK。 2.2.4(1). 在Eclipse 3.4(Ganymede)中安装ADT 第一步:启动 Eclipse 选择“Help”>“Software Updates...”准备安装插件。 图 Eclipse 3.4 中选择软件升级 第二步:在打开的对话框中点击“Available Software”,出现 Eclipse 的现有软件对话框。 14 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

15. www.linuxidc.com 图 Eclipse 3.4 中选择要安装的插件 点击右侧自上而下的第 3 个按钮,“Add Site...”准备增加插件。 图 增加 ADT 的路径 在“Add Site”对话框中,输入 Android 插件的路径: https://dl-ssl.google.com/android/eclipse/ 另外的一种方式是点击 Archive…按钮,这样可以不使用网络,直接指定磁盘中的 ADT 包(目前最新的版 本是 ADT-0.9.5.zip)。 第三步:回到安装对话框,可以看到 plugin 的 URL 下面有“Developer Tools”。选择到“Developer Tools” 中, 图 Eclipse 3.4 中选择安装 Android 的 DDMS 和 ADT 然后点击“Install...”按钮,继续运行,如图所示: 15 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

16. www.linuxidc.com 图 Eclipse 3.4 中进行安装 Android 的 DDMS 和 ADT 选择 Next 将出现如图的对话框: 图 Eclipse 3.4 中选择同意 Android 的协议 选择接受(accept)并且选择 Finish 完成安装之前的配置,后面的将进入安装的 Android 组件的阶段。 安装的过程要经过寻找依赖和安装两个阶段,如图所示: 16 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

17. www.linuxidc.com 图 Eclipse 3.4 中解决依赖关系和安装 第四步:安装完成,关闭并重新启动 Eclipse。再次进入 Eclipse 3.4 后,将发现 ADT 已经被安装。 2.2.4(2). 在Eclipse 3.5(Galileo)中安装ADT 第一步:启动 Eclipse 选择 “Help”>“Install New Software...”准备安装插件。 图 Eclipse 3.5 中选择安装新软件 第二步:出现软件升级的对话框 图 Eclipse 3.5 的软件升级的对话框 点击右侧自上而下的第 3 个按钮,“Add Site...”准备增加插件。 17 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

18. www.linuxidc.com 图 Eclipse 3.5 中增加 ADT 插件的路径 在“Add Site”对话框中,输入 Android 插件的路径: https://dl-ssl.google.com/android/eclipse/ 另外的一种方式是点击 Archive…按钮,这样可以不使用网络,直接指定磁盘中的 ADT 包(最新的版本是 ADT-0.9.5.zip)。 第四步:回到软件升级对话框,work with 的路径变为了 https://dl-ssl.google.com/android/eclipse/,后面的列 表变为了“Developer Tools”,其中包含了两个项目: „ Android DDMS „ Android Development Tools 选择继续进行安装: 图 Eclipse 3.5 中选择安装 Android 的 DDMS 和 ADT 选中后,点击 Finish 将出现安装的详细信息的对话框,如图所示: 18 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

19. www.linuxidc.com 图 Eclipse 3.5 中选择安装 Android 的插件 选择 Next 进行下一步的安装。 图 Eclipse 3.5 中选择同意 Android 的协议 19 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

20. www.linuxidc.com 选择接受(accept)并且选择 Finish 完成安装之前的配置,后面的将进入安装的 Android 组件的阶段。安装 的过程如图所示: 图 Eclipse 3.5 中选择进行 Android 的插件 第五步:安装完成,关闭并重新启动 Eclipse。再次进入 Eclipse 3.5 后,将发现 ADT 已经被安装。 2.2.5. 在Eclipse中配置Android SDK 进入安装 ADT 的 Eclipse 环境后,选择“Window”>“Preference”,从左侧的列表中选择 Android 项: 图 Eclipse 中选择 Android SDK 的路径 左侧的 Android 选项是由于安装了 Android 的 SDK 而出现的。 20 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

21. www.linuxidc.com 在 SDK 设置 SDK Location 中,点击“Browse”…按钮;选择 Android,SDK 的目录,点击“OK”按钮。 2.3 Android中运行仿真器环境 2.3.1. 建立Android虚拟设备 为了运行一个 Android 仿真器的环境,首先需要建立 Android 虚拟设备(AVD)。在 Eclipse 的菜单中,选 择“Window”>“Android AVD Manager”,出现“Android SDK and AVD Device Manager”窗口,界面如图所 示: 图 Android SDK 和 AVD 管理器 界面中间的列表表示了目前可以使用的 Android 虚拟设备,在没有虚拟设备的情况下点击右侧的 New 选择 建立一个虚拟设备。 建立新的 Android 虚拟设备的窗口为 Create new AVD,如图所示: 图 建立新的 AVD 21 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

22. www.linuxidc.com Android 虚拟设备的建立包含了以下的一些选项: „ 名字(Name):这个虚拟设备的名称,由用户自定义; „ 目标(Target):选择不同的 SDK 版本(依赖一目前 SDK 的 platform 目中包含了哪些版本的 SDK) „ SD 卡:模拟 SD 卡,可以选择大小或者一个 SD 卡映像文件,SD 卡映像文件是使用 mksdcard 工具建立的。 „ 皮肤(Skin):这里皮肤的含义其实是仿真器运行尺寸的大小,默认的尺寸有 HVGA-P(320x480),HVGA-L (480x320)等,也可以通过直接指定尺寸的方式制定屏幕的大小。 „ 属性:可以由用户指定仿真器运行的时候,Android 系统中一些属性 2.3.2. 运行虚拟设备 在“Android SDK and AVD Device Manager”窗口中,选择一个设备,点击右侧的 Start,将启动虚拟设备, 运行一个 Android 系统,一个 HVGA-P(320x480)尺寸的运行结果如图所示: 图 使用仿真器的运行 Android 系统 出现窗口的左侧是运行的仿真器的屏幕,右侧是模拟的键盘。设备启动后,可以使用右侧的键盘模拟真实 设备的键盘操作,也可以用鼠标点击(或者拖拽和长按)屏幕,模拟触摸屏的操作。 除了使用右侧的模拟键盘之外,也可以使用 PC 机的键盘来进行模拟真实设备的键盘操作。尤其是当仿真 器的大小不是标准值的时候,可能不会出现按键的面板,在这种情况下只能使用键盘的按键来控制仿真器的按 键 按键之间的映射关系如下表所示: 仿真器的虚拟按键 键盘的按键 Home HOME Menu (左软按键) F2 or Page-up button Star (右软按键) Shift-F2 or Page Down Back ESC Call/dial button F3 Hangup/end call button F4 Search F5 Power button F7 Audio volume up button KEYPAD_PLUS, Ctrl-5 22 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

23. www.linuxidc.com Audio volume down button KEYPAD_MINUS, Ctrl-F6 Camera button Ctrl-KEYPAD_5, Ctrl-F3 切换到上一个布局方向(例如 portrait 和 landscape) KEYPAD_7, Ctrl-F11 切换到下一个布局方向(例如 portrait 和 landscape) KEYPAD_9, Ctrl-F12 切换 Cell 网络的开关 on/off F8 切换 Code profiling F9 切换全屏模式 Alt-Enter 切换跟踪球(trackball)模式 F6 临时进入跟踪球(trackball)模式(当长按按键的时候) Delete DPad left/up/right/down KEYPAD_4/8/6/2 DPad center click KEYPAD_5 Onion alpha 的增加和减少 KEYPAD_MULTIPLY(*) / KEYPAD_DIVIDE(/) Android 仿真器启动虚拟设备之后,默认就可以使用主机的网络作为自己的网络、使用主机的音频设备作 为自己的声音输出。 2.3.3. 使用Android中的工具 在仿真器环境中,可以使用集成的 Android 相关工具。使用的方法是 Window-> Show View -> Other 选项, 可以开启 Android 的各个工具。调用的过程如下图所示: 图 选择 Android 的各个工具 选择 Android 工具的对话框如图所示: 23 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

24. www.linuxidc.com 图 选择 Android 工具的对话框 这里可以选择的主要工具有 Device(设备控制)、Emulator Control(仿真器控制)、File Explore(文件浏 览)、Heap(堆内存)、Logcat、Resource Explore(资源浏览)、Threads(线程等)。每个工具开启之后,将 出现一个单独的选项卡。 2.3.4. 使用logcat Logcat 工具是查看系统 Log 信息的工具,可以获得 Android 系统运行的时候打印出来的信息。工具的界面 如下所示: 图 使用 Logcat 工具显示 LOG 24 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

25. www.linuxidc.com Logcat 实际上是一个运行在目标系统的工具,也就是一个 Linux 的命令行程序,这是界面种是带有 GUI 的 效果。Logcat 的窗口中记录的信息也就是实际的 Android 系统打印出来的。包含了时间(Time)、级别(Level)、 进程 ID(Pid)、标签(tag)、Log 内容(Message)等项目。 Logcat 窗口可以设置 Log 的过滤器(Filter),这样可以仅仅获得自己需要的 Log 信息,屏蔽其他的信息。 命令行程序 logcat,位于目标文件系统中该工具位于 system/bin 目录中,Logcat 的使用方法如下所示: # logcat [options] [filterspecs] logcat 工具的选项如下所示: -s 设置过滤器,例如指定 '*:s -f <filename> 输出到文件,在默认情况下是标准输出 -r [<kbytes>] 循环 log 的字节数(默认为 16),需要 –f -n <count> 设置循环 log 的最大数目,默认为 4 -v <format> 设置 log 的打印格式,<format> 是下面的一种: brief process tag thread raw time threadtime long -c 清除所有 log 并退出 -d 得到所有 log 并退出(不阻塞) -g 得到环形缓冲区的大小并退出 -b <buffer> 请求不同的环形缓冲区('main'(默认)、'radio'、'events') -B 将 log 输出到二进制文件中 2.3.5. 使用仿真器控制 选择 Emulator Control 选项可以开启仿真器的控制对话框,它的界面如下所示: 图 Android 仿真器控制界面 它甚至可以模拟打电话,发短信的过程。例如在 incoming number 中输入电话号码,然后点击 Call 按钮。 这是仿真器的运行界面如图所示: 25 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

26. www.linuxidc.com 图 Android 仿真器接收来电 接受电话的程序已经被调用起来,这里显示的电话号码 1-234-56,也是在仿真器控制的窗口中设置的。 模拟发送短信的界面显示如下所示: 图 Android 仿真器接收短信 2.3.6. 命令行工具adb、mksdcard等 有一些 Android 的工具需要在命令行的环境中运行,只是可以选择 Windows 的开始->运行,键入 cmd 并确 定,进入命令行的界面中运行。主要的命令行工具包括 adb 和 mksdcard 等。命令行的工具在 Android SDK 的 tools 目录中,使用命令行的窗口如图所示: 26 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

27. www.linuxidc.com 图 在命令行中使用 adb adb(Android Debug Bridge,Android 调试桥)是 Android 的主要调试工具,它可以通过网络或者 USB 连 接真实的设备,也可以连接仿真器。使用 adb 进行调试,通常在命令行的界面中。 将出现 shell 提示符,这就是 Android 所运行的 Linux 系统中的 shell 终端,可以在这个 shell 提示符后执行 Android 系统提供的 Linux 命令。 使用 ls 命令查看 Android 系统根目录: # ls -l drwxrwxrwt root root 2009-06-15 02:17 sqlite_stmt_journals drwxrwx--- system cache 2009-06-15 02:18 cache d--------- system system 2009-06-15 02:17 sdcard lrwxrwxrwx root root 2009-06-15 02:17 etc -> /system/etc drwxr-xr-x root root 2009-05-28 02:16 system drwxr-xr-x root root 1970-01-01 00:00 sys drwxr-x--- root root 1970-01-01 00:00 sbin dr-xr-xr-x root root 1970-01-01 00:00 proc -rwxr-x--- root root 9075 1970-01-01 00:00 init.rc -rwxr-x--- root root 1677 1970-01-01 00:00 init.goldfish.rc -rwxr-x--- root root 106568 1970-01-01 00:00 init -rw-r--r-- root root 118 1970-01-01 00:00 default.prop drwxrwx--x system system 2009-05-28 02:49 data drwx------ root root 1970-01-01 00:00 root drwxr-xr-x root root 2009-06-15 02:18 dev Android 根目录中的主要文件夹与目标系统的 out/target/product/generic/root 内容相对应,此外 etc、proc 等 目录是在 Android 启动后自动建立的,system 映像被挂接到根文件系统的 system 目录中,data 映像被挂接到根 文件系统的 data 目录中。 使用 ps 命令可以查看 Android 系统的进程: # ps USER PID PPID VSIZE RSS WCHAN PC NAME root 1 0 280 188 c008de04 0000c74c S /init root 2 0 0 0 c004b334 00000000 S kthreadd root 3 2 0 0 c003cf68 00000000 S ksoftirqd/0 root 4 2 0 0 c00486b8 00000000 S events/0 root 5 2 0 0 c00486b8 00000000 S khelper root 10 2 0 0 c00486b8 00000000 S suspend root 42 2 0 0 c00486b8 00000000 S kblockd/0 root 45 2 0 0 c00486b8 00000000 S cqueue 27 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

28. www.linuxidc.com root 47 2 0 0 c016f13c 00000000 S kseriod root 51 2 0 0 c00486b8 00000000 S kmmcd root 96 2 0 0 c0065c7c 00000000 S pdflush root 97 2 0 0 c0065c7c 00000000 S pdflush root 98 2 0 0 c006990c 00000000 S kswapd0 root 100 2 0 0 c00486b8 00000000 S aio/0 root 269 2 0 0 c016c884 00000000 S mtdblockd root 304 2 0 0 c00486b8 00000000 S rpciod/0 root 540 1 740 328 c003aa1c afe0d08c S /system/bin/sh system 541 1 808 264 c01654b4 afe0c45c S /system/bin/servicemanager root 542 1 836 364 c008e3f4 afe0c584 S /system/bin/vold root 543 1 668 264 c0192c20 afe0cdec S /system/bin/debuggerd radio 544 1 5392 684 ffffffff afe0cacc S /system/bin/rild root 545 1 72256 20876 c008e3f4 afe0c584 S zygote media 546 1 17404 3496 ffffffff afe0c45c S /system/bin/mediaserver bluetooth 547 1 1168 568 c008de04 afe0d25c S /system/bin/dbus-daemon root 548 1 800 300 c01f3b04 afe0c1bc S /system/bin/installd root 551 1 840 356 c00ae7b0 afe0d1dc S /system/bin/qemud root 554 1 1268 116 ffffffff 0000e8f4 S /sbin/adbd system 570 545 175652 23972 ffffffff afe0c45c S system_server radio 609 545 105704 17584 ffffffff afe0d3e4 S com.android.phone app_4 611 545 113380 19492 ffffffff afe0d3e4 S android.process.acore app_12 632 545 95392 13228 ffffffff afe0d3e4 S com.android.mms app_4 645 545 97192 12964 ffffffff afe0d3e4 S com.android.inputmethod.latin app_5 655 545 95164 13376 ffffffff afe0d3e4 S android.process.media app_7 668 545 97700 14264 ffffffff afe0d3e4 S com.android.calendar app_11 684 545 94132 12624 ffffffff afe0d3e4 S com.android.alarmclock root 702 540 888 340 00000000 afe0c1bc R ps 从系统的进程中可以看到,系统 1 号和 2 号进程以 0 号进程为父进程。init 是系统运行的第 1 个进程,即 Android 根目下的 init 可执行程序,这是一个用户空间的进程。kthreadd 是系统的 2 号进程,这是一个内核进程, 其他内核进程都直接或间接以它为父进程。 Zygote、/system/bin/sh、/system/bin/mediaserver 等进程是被 init 运行起来的,因此它们以 init 为父进程。其 中 android.process.acore(Home)、com.android.mms 等进程代表的是应用程序进程,它们的父进程都是 zygote。 使用 adb 连接目标系统终端的方式如下所示: > adb shell 使用 adb 安装应用程序的方法为: > adb install XXX.apk 使用 adb 在主机和目标机之间传送文件的方法为: > adb push {host_path} {target_path} > adb pull {target_path} {host_path} mksdcard 是用来建立 SD 卡映像的工具,用来建立一个 Fat32 格式的磁盘映像,其使用方法如下所示: mksdcard [-l label] <size> <file> mksdcard 的参数-l 用于指定磁盘映像的标签,size 用于指定磁盘映像的大小,其后面可以跟 K、M、G 等 参数,file 是磁盘映像的文件名称,这个文件也就是在仿真器运行过程中指定的文件。 mksdcard 的一个使用的示例如下所示: > mksdcard 128M sdcard.img 这表示建立了一个大小为 128M,名称为 sdcard.img 的 Fat32 磁盘映像文件。 2.3.7. 使用设备控制 Device 工具可以用于进一步控制仿真器的运行状况,在其中可以查看 Heap(堆内存)、Threads(线程) 的信息,还具有停止某个进程的运行,截取屏幕等功能。Device 工具的窗口如图所示: 28 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。

29. www.linuxidc.com 图 Android 的设备工具 点击 Device 窗口工具栏最右侧的 Screen Capture 按钮,可以打开截取屏幕的窗口,如上图所示。 2.4 Android中建立工程 2.4.1. 建立工程 Android 的 SDK 环境安装完成后,就可以在 SDK 中建立工程并进行调试了。 建立 Android 工程步骤如下: 选择“File”>“New”>“Project” 选择“Android”>“Android Project”,点击“Next”按钮: 选择 the contents for the project。 29 Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。