1(Android)从入门到精通(Android)从入门到精通Android是一种基于Linux®V2.6内核的综合操作环境。最初,Android的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。但是,Android全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android也可以用于其他的平台和应用程序。本专题提供的教程、技术文章首先带大家了解Android开发,进而深入到Android开发的各个方面。Android开发入门Android开发简介Android是Google提供的移动、无线、计算机和通信平台。通过使用AndroidEclipse插件,可以在强大的Eclipse环境中构建Android应用程序。本教程介绍如何用Eclipse插件AndroidDevelopmentTools进行Android应用程序开发,包括对Android平台和AndroidDevelopmentTools的介绍,并开发两个示例应用程序。用Eclipse开发Android应用程序Android是一种基于Linux®V2.6内核的综合操作环境。最初,Android的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。但是,Android全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android也可以用于其他的平台和应用程序。在本文中,阅读对Android平台的简介,并学习如何编写基本的Android应用程序。深入Android开发手机上的ScalaAndroid操作系统为移动开发提供强大、开放的平台。它利用了Java编程语言和Eclipse工具平台的威力。现在,还可以将Scala编程语言加入到其中。在本文中,您将看到如何使用Scala作为Android上的主要开发语言,从而可以使用一种更具表达力、更加类型安全的编程语言编写移动应用程序。构建Android手机RSS阅读器本教程将展示如何使用AndroidDeveloperTools读取、解析和显示XML数据。构建一个运行在Android平台上的RSS阅读器,并集成不同的RSS或其他XML数据源以构建自己的mash-up应用。Android助力云计算开源的Android操作系统已经席卷全球,它允许您在任何位置运行复杂的云计算应用程序。它设计用于在电池供电设备(如T-MobileG1智能电话)上高效工作,Android本质上就是Linux,Android编程模型有多个层,允许创建为云计算量身定做的安全应用程序。使用Android达到新的高度并体验前所未有的移动计算吧。使用Android实现联网Android是面向应用程序开发的丰富平台,它提供一套出色的用户界面元素和数据管理功能。它还为开发连接到真实世界的应用程序提供了出色的网络选项。您希望连接到哪里?也许您希望告诉全世界您正在使用Twitter。或者希望收到有关在本地洗衣店或熟食店的排号。如果希望将Android连接到您所生活的世界,那么请阅读本文。深入探讨Android传感器Android是一个面向应用程序开发的富平台,它拥有许多具有吸引力的用户界面元素和数据管理功能。Android还提供了一组丰富的接口选项。在本文中,学习如何配合使用Android的各种传感器选项监控您的环境。样例代码展示了如何在Android电话中录制音频。想构建自己的婴儿监视器吗?想用声音来接听电话或者打开房门吗?请学习如何利用配备有Android的设备的硬件功能。回页首2Android开发简介Android开发简介开源的设备平台Android是一种基于Linux®V2.6内核的综合操作环境。最初,Android的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。但是,Android全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android也可以用于其他的平台和应用程序。在本文中,阅读对Android平台的简介,并学习如何编写基本的Android应用程序。简介黑莓和iPhone都提供了受欢迎的、高容量的移动平台,但是却分别针对两个不同的消费群体。黑莓是企业业务用户的不二选择。但是,作为一种消费设备,它在易用性和“新奇特性”方面难以和iPhone抗衡。Android则是一个年轻的、有待开发的平台,它有潜力同时涵盖移动电话的两个不同消费群体,甚至可能缩小工作和娱乐之间的差别如今,很多基于网络或有网络支持的设备都运行某种Linux内核。这是一种可靠的平台:可经济有效地进行部署和提供支持,并且可直接作为面向部署的良好的设计方法。这些设备的UI通常是基于HTML的,可通过PC或Mac浏览器查看。但并不是每个设备都需要通过一个常规的计算设备来控制。想象一下传统的家用电器,例如电炉、微波炉或面包机。如果您的家用电器由Android控制,并且有一个彩色触摸屏,会怎么样?如果电炉上有一个AndroidUI,那么操控者甚至可以烹饪点什么东西。在本文中,了解Android平台,以及如何将它用于移动和非移动应用程序。安装AndroidSDK,并构建一个简单的应用程序。下载本文中的示例应用程序的源代码。Android简史Android平台是OpenHandsetAlliance的成果,OpenHandsetAlliance组织由一群共同致力于构建更好的移动电话的公司组成。这个组织由Google领导,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。从软件开发的观点看,Android正处在开源领域的中心位置。市场上第一款支持Android的手机是由HTC制造并由T-Mobile供应的G1。这款设备从设想到推出花了大约一年的时间,惟一可用的软件开发工具是一些实行增量改进的SDK发行版。随着G1发行日的临近,Android团队发布了SDKV1.0,用于这个新平台的应用程序也浮出水面。为了鼓励创新,Google举办了两届“AndroidDeveloperChallenges”,为优胜的参赛作品提供数百万美金的奖励。G1问世几个月之后,随后就发布了AndroidMarket,它使用户可以浏览应用程序,并且可以将应用程序直接下载到他们的手机上。经过大约18个月,一个新的移动平台进入公众领域。Android平台Android有丰富的功能,因此很容易与桌面操作系统混淆。Android是一个分层的环境,构建在Linux内核的基础上,它包括丰富的功能。UI子系统包括:窗口视图用于显示一些常见组件(例如编辑框、列表和下拉列表)的小部件Android包括一个构建在WebKit基础上的可嵌入浏览器,iPhone的MobileSafari浏览器同样也是以WebKit为基础。回页首回页首3Android开发简介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,而是DalvikVirtualMachine,这是一种开源技术。每个Android应用程序都在DalvikVM的一个实例中运行,这个实例驻留在一个由Linux内核管理的进程中,如下图所示。回页首4Android开发简介Android应用程序由一个或多个组件组成:活动具有可视UI的应用程序是用活动实现的。当用户从主屏幕或应用程序启动器选择一个应用程序时,就会开始一个动作。服务服务应该用于任何需要持续较长时间的应用程序,例如网络监视器或更新检查应用程序。内容提供程序可以将内容提供程序看作数据库服务器。内容提供程序的任务是管理对持久数据的访问,例如SQLite数据库。如果应用程序非常简单,那么可能不需要创建内容提供程序。如果要构建一个较大的应用程序,或者构建需要为多个活动或应用程序提供数据的应用程序,那么可以使用内容提供程序实现数据访问。广播接收器Android应用程序可用于处理一个数据元素,或者对一个事件(例如接收文本消息)做出响应。Android应用程序是连同一个AndroidManifest.xml文件一起部署到设备的。AndroidManifest.xml包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类名和应用程序能够处理的事件类型,以及运行应用程序所需的许可。例如,如果应用程序需要访问网络—例如为了下载一个文件—那么manifest文件中必须显式地列出该许可。很多应用程序可能启用了这个特定的许可。这种声明式安全性有助于减少恶意应用程序损害设备的可能性。下一节讨论构建Android应用程序所需的开发环境。所需的工具开始开发Android应用程序的最简捷的方式是下载AndroidSDK和EclipseIDE(参见参考资料)。Android开发可以在Microsoft®Windows®、MacOSX或Linux上进行。本文假设您使用的是EclipseIDE和用于Eclipse的AndroidDeveloperTools插件。Android应用程序是用Java语言编写的,但是是在DalvikVM(非Java虚拟机)中编译和执行的。在Eclipse中用Java语言编程非常简单;Eclipse提供一个丰富的Java环境,包括上下文敏感帮助和代码提示。Java代码通过编译后,AndroidDeveloperTools可确保适当地将它打包,包括AndroidManifest.xml文件。虽然没有Eclipse和AndroidDeveloperTools插件也可以开发Android应用程序,但是那样就需要熟悉AndroidSDK。AndroidSDK是作为一个ZIP文件发布的,可以将该文件解压到硬盘上的一个目录中。由于有多个SDK更新,建议有意识地组织开发环境,以便在不同的SDK安装之间轻松地切换。SDK包括:android.jarJava归档文件,其中包含构建应用程序所需的所有的AndroidSDK类。documention.html和docs目录本地和网上提供的SDK文档。这些文档的主要形式为JavaDocs,以便于在SDK中导航大量的包。文档还包括一个高级开发指南和Android社区的链接。Samples目录samples子目录包含各种应用程序的源代码,包括ApiDemo,该应用程序演示了很多API。这个示例应用程序可以作为Android应用程序开发的良好起点。Tools目录包含所有用于构建Android应用程序的命令行工具。最常用、最有用的工具是adb实用程序(AndroidDebugBridge)。usb_driver该目录包含将开发环境连接到支持Android的设备(例如G1或AndroidDev1解锁开发手机)所需的驱动程序。只有Windows平台的开发人员才需要这些文件。Android应用程序可以在实际的设备上运行,也可以在AndroidSDK附带的AndroidEmulator上运行。图3显示AndroidEmulator的主屏幕。图3.AndroidEmulator回页首5Android开发简介AndroidDebugBridgeadb实用程序支持一些可选命令行参数,以提供强大的特性,例