对移动开发人员来说,现在是一个令人新潮澎湃的时代,手机从来没有像今天这样流行,强大的智能手机产品已经为消费者所普遍接受,而且Android生态系统已经扩展到平板电脑和电视设备,进一步增加了您的Android应用程序的受众。

现在,外观时尚且用途广泛的手机带有GPS、加速计、NFC和触摸屏等硬件功能,并且具有固定费率且定价合理的数据计划,因此,它们成为了吸引越来越多的开发者创建各种新颖有趣的Android应用程序的平台。

Android为移动应用程序开发提供了一个开放的平台。因为没有了人为制造的障碍,所以Android开发人员可以自由地编写能够充分利用日益强大的手机硬件的应用程序,并在一个开发的市场上销售它们。因此,随着移动设备的销售量不断增长,开发者对Android设备的兴趣也出现了爆炸性的增长。截止到2012年,市场上有数百个手机和平板电脑OEM,包括HTC、Motorola、LG、Samsung、ASUS和Sony Ericsson。有超过3亿的Android设备已被激活,并且这个数字仍在以每天新激活850000个设备的速度增长。

通过使用Google Play,开发人员可以利用开放的市场向所有兼容的Android设备发布免费或者收费的应用程序,而不需要经理审查过程。Android构建在一个开源框架之上,并且有强大的SDK库,已经使开发人员在Google Play上发布了超过450000个应用程序。

本书将指导你使用Android SDK的版本4来构建移动应用程序。每章的讲解将通过一系列示例项目帮助你逐步掌握Android中的各种新功能和技术,以便你能够最大限度地利用Android。本书介绍了Android编程入门所需的所有基础知识,同时为有经验的移动开发人员讲解了如何利用Android的独特功能来增强现有应用程序或者创建新的、创造性的应用程序。

Google的理念是尽快发布,然后不断更新。自从2008年10月Android第一次完整发布以来,共推出了19个平台和SDK版本。由于发布周期如此之快,软件和开发库很可能会有定期的修改和丰富。虽然Android的开发团队会尽可能地向后兼容性,但在未来的版本中,本书提供的某些信息仍可能会过时。类似地,并不是每个用户的Android设备都在运行最新的平台版本。

只要有可能,本书就会指出哪些平台版本支持书中所介绍的功能,以及可以使用哪些方法为早期设备的用户提供支持。本书的内容和示例提供了如何当前SDK来编写优秀的移动应用程序所需要的基础知识,同时也保持了快速适应未来版本更强大功能的灵活性。

0.1 读者对象

本书适合所有对在Android移动手机平台上创建应用程序感兴趣的人。不管是经验丰富的移动开发人员,还是想通过Android开发移动应用程序的新手,都能够从本书中获得十分有价值的信息。

如果读者使用过Android手机,这些经验会对阅读本书有所帮助,但不是必需的。同样,如果以前有过手机开发经验,那么也有一定的帮助,但也不是必需的。

不过希望读者有一定的软件开发经验,并且熟悉基本的面向对象开发实践。对Java语法的了解是必需的。深入理解Java并具有Java开发经验会带来明显的优势,不过没有这些知识和经验也没太大影响。

第1章和第2章简要介绍移动应用程序的开发过程,并包含如何在Android上开始开发的说明。除了这两章之外,对其他章节的阅读顺序不作要求。如果对第3~9章中描述的基本组件有所理解,将有利于你对其他章节的学习。第10章和第11章详细介绍了如何创建应用程序来提供丰富而一致的用户体验。第12~19章讨论了各种可选功能和高级功能,可以按照顺序阅读,也可以按需阅读。

0.2 本书内容

第1章主要介绍Android,包括它是什么,以及它如何适应当前的移动开发。然后详细讲述了Android作为一个开发平台能够提供什么功能,并解释了它为什么是一个创建移动应用程序的良机。

第2章讲述了移动开发的一些最佳实践,并解释了如何下载AndroidSDK和开始开发应用程序。该章同事介绍了Android开发工具,并说明了如何从头创建新的应用程序。

第3~9章深入探讨了基本的Android应用程序组件。

第10章和第11章以第4章介绍的UI知识为基础,介绍了如何使用操作栏、菜单系统和通知来增强用户体验。在这里将学习如何让应用程序适应各种显示屏,如何使应用程序更易于访问,以及如何在应用程序内使用语音识别。

第12~18章涉及较高级的主题。在这里将学习如何使用罗盘、加速计和其他硬件传感器来让应用程序能够对环境做出响应,地图以及基于位置的服务,如何使用动态widget、Live Wallpaper和快速搜索框,使你的应用通过主屏幕与用户直接交互。

第18章介绍了几个高级开发主题,其中包括安全、IPC、Cloud to Device Messaging、License Verification Library和Strict Mode。

最后,第19章介绍了在发布和分发应用程序以及利用应用程序盈利时面临的机会和可以采用的选择,重点讨论了Google Play。

0.3 本书结构

本书按照一种合理的顺序进行组织,从而帮助具有不同开发背景的读者更好地学习编写高级Android应用程序的方法。尽管对阅读每个章节的顺序不作要求,但是请注意,某些示例项目是跨越多个章节开发的,在其中每个阶段都会添加一些新功能并做一些改进。

富有移动开发经验且拥有能正常工作的Android开发环境的开发人员可以跳过前两章的内容------这两章简要介绍了移动开发的基本知识以及如何创建开发环境------直接学习第3~9章。因为这几章涵盖了Android开发的基础知识,所以深入理解这几章所讲述的概念非常重要。

在学习这几章之后,读者就可以继续学习其余章节了,它们主要介绍了地图、基于位置的服务、后台应用程序以及诸如硬件交互和联网这样的更高级主题。

0.4 使用本书的要求

使用本书的示例代码,需要下载Android SDK库和开发工具以及Java开发包,来创建一个Android开发环境。你可能还希望通过下载和安装Eclipse和Android开发工具插件来简化开发工作,但是这些都不是必需的。

Windows、Mac OS和Linux系统都支持Android开发,可以从Android站点下载相应的SDK。

学习本书内容或者开发Android应用程序并不需要Android设备,但是有一台Android设备的帮助很大,尤其是在测试应用程序时。

提示:第二章更详细地列出了这些要求,并讲述了每个组件的下载地址和安装方法。

0.5 源代码

读者在学习本书中的示例时,既可以手工输入所有代码,也可以使用本书附带的源代码文件。


0.6 勘误表

尽管我们已经尽了最大的努力来保证文章或代码中不出现错误,但是总是难免的,如果你在本书中找到了错误,例如拼写错误或者代码错误,请告诉我们,我们将非常感激。