没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
本文示例代码下载地址:
http://www.ibm.com/developerworks/cn/education/
opensource/os-eclipse-android/downloads.html
简介
黑莓和 iPhone 都提供了受欢迎的、高容量的移动平台,但是却分别针对两个不同的消费
群体。黑莓是企业业务用户的不二选择。但是,作为一种消费设备,它在易用性和 “新奇
特性” 方面难以和 iPhone 抗衡。Android 则是一个年轻的、有待开发的平台,它有潜力同
时涵盖移动电话的两个不同消费群体,甚至可能缩小工作和娱乐之间的差别
如今,很多基于网络或有网络支持的设备都运行某种 Linux 内核。这是一种可靠的平台:
可经济有效地进行部署和提供支持,并且可直接作为面向部署的良好的设计方法。这些设
备的 UI 通常是基于 HTML 的,可通过 PC 或 Mac 浏览器查看。但并不是每个设备都需要
通过一个常规的计算设备来控制。想象一下传统的家用电器,例如电炉、微波炉或面包机。
如果您的家用电器由 Android 控制,并且有一个彩色触摸屏,会怎么样?如果电炉上有一
个 Android UI,那么操控者甚至可以烹饪点什么东西。
在本文中,了解 Android 平台,以及如何将它用于移动和非移动应用程序。安装 Android
SDK,并构建一个简单的应用程序。下载 本文中的示例应用程序的源代码。
回页首
Android 简史
Android 平台是 Open Handset Alliance的成果,Open Handset Alliance 组织由一群共同
致力于构建更好的移动电话的公司组成。这个组织由 Google 领导,包括移动运营商、手
持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。从软件开
发的观点看,Android 正处在开源领域的中心位置。
市场上第一款支持 Android 的手机是由 HTC 制造并由 T-Mobile 供应的 G1。这款设备从
设想到推出花了大约一年的时间,惟一可用的软件开发工具是一些实行增量改进的 SDK
发行版。随着 G1 发行日的临近,Android 团队发布了 SDK V1.0,用于这个新平台的应用
程序也浮出水面。
为了鼓励创新,Google 举办了两届 “Android Developer Challenges”,为优胜的参赛作品
提供数百万美金的奖励。G1 问世几个月之后,随后就发布了 Android Market,它使用户
可以浏览应用程序,并且可以将应用程序直接下载到他们的手机上。经过大约 18 个月,
一个新的移动平台进入公众领域。
回页首
Android 平台
Android 有丰富的功能,因此很容易与桌面操作系统混淆。Android 是一个分层的环境,构
建在 Linux 内核的基础上,它包括丰富的功能。UI 子系统包括:
窗口
视图
用于显示一些常见组件(例如编辑框、列表和下拉列表)的小部件
Android 包括一个构建在 WebKit 基础上的可嵌入浏览器,iPhone 的 Mobile Safari 浏览器
同样也是以 WebKit 为基础。
Android 提供多种连接选项,包括 WiFi、蓝牙和通过蜂窝(cellular)连接的无线数据传输
(例如 GPRS、EDGE 和 3G)。Android 应用程序中一项流行的技术是链接到 Google 地
图,以便在应用程序中显示地址。Android 软件栈还提供对基于位置的服务(例如 GPS)
和加速计的支持,不过并不是所有的 Android 设备都配备了必需的硬件。另外还有摄像支
持。
过去,移动应用程序努力向桌面应用程序看齐的两个领域分别是图形/媒体和数据存储方法。
Android 通过提供对 2D 和 3D 图形的内置支持,包括 OpenGL 库,解决了图形方面的挑
战。由于 Android 平台包括流行的开源 SQLite 数据库,因此缓解了数据存储的负担。图 1
显示一个简化的 Android 软件层次结构。
图 1. Android 软件层次结构
回页首
应用程序架构
如前所述,Android 运行在 Linux 内核上。Android 应用程序是用 Java 编程语言编写的,
它们在一个虚拟机(VM)中运行。需要注意的是,这个 VM 并非您想象中的 JVM,而是
Dalvik Virtual Machine,这是一种开源技术。每个 Android 应用程序都在 Dalvik VM 的一
个实例中运行,这个实例驻留在一个由 Linux 内核管理的进程中,如下图所示。
图 2. Dalvik VM
Android 应用程序由一个或多个组件组成:
活动
具有可视 UI 的应用程序是用活动实现的。当用户从主屏幕或应用程序启动器选择
一个应用程序时,就会开始一个动作。
服务
服务应该用于任何需要持续较长时间的应用程序,例如网络监视器或更新检查应用
程序。
内容提供程序
可以将内容提供程序看作数据库服务器。内容提供程序的任务是管理对持久数据的
访问,例如 SQLite 数据库。如果应用程序非常简单,那么可能不需要创建内容提
供程序。如果要构建一个较大的应用程序,或者构建需要为多个活动或应用程序提
供数据的应用程序,那么可以使用内容提供程序实现数据访问。
广播接收器
Android 应用程序可用于处理一个数据元素,或者对一个事件(例如接收文本消
息)做出响应。
Android 应用程序是连同一个 AndroidManifest.xml 文件一起部署到设备的。
AndroidManifest.xml 包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类
名和应用程序能够处理的事件类型,以及运行应用程序所需的许可。例如,如果应用程序
需要访问网络 — 例如为了下载一个文件 — 那么 manifest 文件中必须显式地列出该许可。
很多应用程序可能启用了这个特定的许可。这种声明式安全性有助于减少恶意应用程序损
害设备的可能性。
下一节讨论构建 Android 应用程序所需的开发环境。
回页首
所需的工具
开始开发 Android 应用程序的最简捷的方式是下载 Android SDK 和 Eclipse IDE(参见 参
考资料)。Android 开发可以在 Microsoft® Windows®、Mac OS X 或 Linux 上进行。
本文假设您使用的是 Eclipse IDE 和用于 Eclipse 的 Android Developer Tools 插件。
Android 应用程序是用 Java 语言编写的,但是是在 Dalvik VM(非 Java 虚拟机)中编译
和执行的。在 Eclipse 中用 Java 语言编程非常简单;Eclipse 提供一个丰富的 Java 环境,
包括上下文敏感帮助和代码提示。Java 代码通过编译后,Android Developer Tools 可确
保适当地将它打包,包括 AndroidManifest.xml 文件。
虽然没有 Eclipse 和 Android Developer Tools 插件也可以开发 Android 应用程序,但是那
样就需要熟悉 Android SDK。
Android SDK 是作为一个 ZIP 文件发布的,可以将该文件解压到硬盘上的一个目录中。由
于有多个 SDK 更新,建议有意识地组织开发环境,以便在不同的 SDK 安装之间轻松地切
换。SDK 包括:
android.jar
Java 归档文件,其中包含构建应用程序所需的所有的 Android SDK 类。
documention.html 和 docs 目录
本地和网上提供的 SDK 文档。这些文档的主要形式为 JavaDocs,以便于在 SDK
中导航大量的包。文档还包括一个高级开发指南和 Android 社区的链接。
Samples 目录
samples 子目录包含各种应用程序的源代码,包括 ApiDemo,该应用程序演示了
很多 API。这个示例应用程序可以作为 Android 应用程序开发的良好起点。
Tools 目录
包含所有用于构建 Android 应用程序的命令行工具。最常用、最有用的工具
是 adb实用程序(Android Debug Bridge)。
usb_driver
该目录包含将开发环境连接到支持 Android 的设备(例如 G1 或 Android Dev 1 解
锁开发手机)所需的驱动程序。只有 Windows 平台的开发人员才需要这些文件。
Android 应用程序可以在实际的设备上运行,也可以在 Android SDK 附带的 Android
Emulator 上运行。图 3 显示 Android Emulator 的主屏幕。
图 3. Android Emulator
Android Debug Bridge
adb实用程序支持一些可选命令行参数,以提供强大的特性,例如复制文件到设备或从设
备复制文件。可以使用 shell 命令行参数连接到手机本身,并发送基本的 shell 命令。图 4
显示在通过 USB 线连接到 Windows 笔记本电脑的一个实际设备上运行的 adbshell 命令。
剩余35页未读,继续阅读
资源评论
- 回归了!2013-06-01还不错,但是没咋滴搞懂
- enginercp2014-07-31不错的东西,我正好需要!谢谢
ldc1197260487
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 聊天系统(java+applet).zip
- 毕业设计:基于SSM的mysql-高校学生请假管理系统(源码 + 数据库 + 说明文档)
- 博客系统(struts+hibernate+spring).rar
- c语言学生成绩管理系统源码.zip
- 毕业设计:基于SSM的mysql-网约车用户服务平台(源码 + 数据库 + 说明文档)
- 内容管理系统(hibernate3+struts2+spring2)130224.rar
- 基于Java的班级管理系统课程设计源码
- 内容管理系统(hibernate3+struts2+spring2).rar
- 路由器刷breed Web控制台助手v5.8版本.rar
- Java 在 JEP 12 提供的特性预览
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功