前??言
我最开始玩Android SDK是在其正式版本1.0发布以前。那时,工具还不完善,SDK中的API不稳定,文档也很缺乏。经过两年半时间的快速发展,现在的Android已经成为一个和iPhone相比毫不逊色的强大的移动操作系统。由于经历过Android成长的所有痛苦,我想现在是开始学习Android编程的最好时机——API已经稳定,工具也有了改善。但是仍存在一个挑战:对许多人来说,入门仍是一个可望而不可及的目标。这一挑战在我脑海里徘徊许久,也成为了我写本书的动力,它也许可以给Android初级程序员带来益处,并使他们能够逐步编写更复杂的应用程序。
由于本书是写给Android初级开发人员的,为的是使他们能够快速上手,因此我以线性方式涵盖了必要的主题,这样可以使您建立起自己的知识体系而不会被细节淹没。我采取的哲学观点是:最好的学习方法是实践——因此,每一章的“试一试”部分将首先教您如何构建一些东西,然后解释其工作原理。
尽管Android编程是一个宏大的主题,但本书要实现三重目标:帮助读者从最基本的原理入手,使读者理解SDK的底层架构以及领会事情要按特定方式完成的原因。本书超越了目前任何一本面面俱到的有关Android编程的书籍的范围,但我确信当您阅读完此书(并做了练习)之后,将有充分的准备来应对下一个Android编程的挑战。
本书读者对象
本书针对的是打算使用Google的Android SDK来开发应用程序的Android初级开发人员。为了从本书中真正获益,您应该在编程方面具有一些背景知识,并且至少熟悉面向对象编程的概念。如果对Java(Android开发所用的语言)一无所知,那么您也许应该首先学习一门Java编程课程,或者阅读有关Java编程方面的优秀书籍。以我的经验,如果您已经了解C#或VB.NET,学习Java就比较轻松;只要按照“试一试”的步骤就可以使您的学习过程顺利进行。
对于那些对所有编程概念都一无所知的人来说,我知道开发移动应用程序并赚到钱是很有诱惑力的。然而,在尝试本书的示例之前,我想首先学习一些基本的编程知识才是更好的着手点。
注意:本书中讨论的所有示例均使用Android SDK 2.3版本编写和测试。尽管我们已经努力保证本书中所有用到的工具都是最新的,但当您阅读本书时,还是很可能有更新版本的工具可用。如果是这样,某些指示和/或屏幕截图会有少许不同。不过,任何改变都应是可控的。
本书主要内容
本书涵盖了使用Android SDK进行Android编程的基本概念,共分为11章和3个附录。
“第1章:Android编程入门”介绍了Android操作系统的基本概念和当前发展状况。您可以了解到Android设备的各种功能以及市场上一些比较流行的设备。还可以学习如何下载和安装所有必需的工具来开发Android应用程序并在Android模拟器上进行测试。
“第2章:活动和意图”使您熟悉Android编程中的两个最重要的概念:活动和意图。活动是Android应用程序的构建块。您将学习如何使用意图将活动链接起来形成一个完整的Android应用程序。意图是链接活动的胶水,也是Android操作系统的独特特征之一。
“第3章:Android用户界面”介绍了Android应用程序的用户界面的不同组成部分。您将学习到用来构建应用程序的用户界面的不同布局,以及当用户和应用程序交互时与用户界面相关联的多种事件。
“第4章:使用视图设计用户界面”介绍了可用于构建Android用户界面的各种基本视图。该章将学习3组主要的视图:基本视图、选取器视图和列表视图。
“第5章:使用视图显示图片和菜单”继续研究视图。您将了解到如何使用不同的图像视图来显示图像,以及在应用程序中显示选项和上下文菜单。该章最后将额外介绍一些很酷的视图,可以用它们来为您的应用程序锦上添花。
“第6章:数据持久化”教您如何在Android应用程序中保存或存储数据。除了学习使用不同的技术来存储用户数据外,您将学习到文件操作以及如何把文件保存到内部或外部存储器(SD卡)上。此外,还将学习到如何在Android应用程序中创建和使用SQLite数据库。
“第7章:内容提供者”讨论了在Android设备的不同应用程序间如何共享数据。您将学习如何使用内容提供者并自己创建一个。
“第8章:消息传递和联网”研究了移动编程中最有趣的两个主题——发送SMS消息和网络编程。您将学习如何以编程方式发送和接收SMS消息,如何连接到Web服务器来下载数据。最后,还将了解在Android应用程序中是如何访问Web服务的。
“第9章:基于位置的服务”描述了如何使用Google Maps来构建基于位置的服务应用程序。您还将学习到如何获取地理位置数据并在地图上显示该位置。
“第10章:开发Android服务”将向您展示如何使用服务来编写应用程序。服务是运行于后台且没有用户界面的应用程序。您将了解如何在一个单独的线程中以异步方式运行您的服务,以及活动与之通信的方法。
“第11章:发布Android应用程序”讨论了您在准备好发布Android应用程序时可以采用的不同方法。您还将了解到在Android Market上发布并出售应用程序的步骤。
“附录A:使用Eclipse进行Android开发”简要概述了Eclipse中的许多功能。
“附录B:使用Android模拟器”提供了有关使用Android模拟器进行应用程序测试方面的一些提示和技巧。
“附录C:练习答案”包含了每章最后的练习的答案。
本书的结构
本书将学习Android编程的任务分解为若干个更小的环节,使您能够在钻研更高级的内容之前消化每一个主题。
如果您对于Android编程完全是个新手,那就首先从第1章开始。一旦熟悉了基本概念,就可以转到附录去阅读更多有关Eclipse和Android模拟器的知识。当完成这些之后,可以再从第2章继续,并按部就班地学习更高级的主题。
本书一大特色就是每章的所有示例代码都独立于先前章节所讨论的内容。这样,您可以灵活地转入到所感兴趣的主题并按照“试一试”的项目内容开始练习。
使用本书的前提条件
本书中的所有示例都在Android模拟器(作为Android SDK的一部分)上运行。当然,为了从本书中得到更多收获,拥有一个真实的Android设备还是很有益的(尽管这不是绝对必要的)。
源代码
由于需要从头至尾运行本书中的示例,您可以选择手工键入全部代码或者使用本书配套的源代码文件。本书用到的所有源代码文件在www.wrox.com上均可下载。在这个网站上,直接找到本书的书名(使用搜索框或从书名列表选择),然后在本书的详细页面上点击Download Code链接来获得本书所有的源代码。
所需项目文件的名称将出现在一个代码注释中,它位于“试一试”内容的开头部分,像这样:
代码片段的文件名称
代码下载完成后,使用您熟悉的压缩工具解压缩。或者转到Wrox的代码下载主页www.wrox.com/dynamic/download.aspx上查看本书以及其他所有Wrox书籍的可用代码。
读者也可从本书的支持网站http://www.tupwk.com.cn/downpage上下载本书源代码。对于本书如有任何意见和建议,请发送邮件至wkservice@vip.163.com。
