Android开发简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简介:Android 是一种基于Linux® V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。但是,Android 全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android 也可以用于其他的平台和应用程序。在本文中,阅读对Android 平台的简介,并学习如何编写基本的Android 应用程序。
简介
黑莓和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 文件。