前言 随着移动互联时代的来临,智能手机及其客户端App成为广大用户接入和使用互联网的主要设备和方式之一。由谷歌公司推出的Android系统自2007年问世以来,得到了全球众多厂商和运营商的支持,迅速成为智能手机的主流操作系统,占据了大部分的市场份额。因此,基于Android的移动App开发日益受到广大开发者的关注,一些大学和培训机构也相继开设了基于Android的软件技术培训课程。这不仅合乎时代发展需要,而且有助于学生日后就业,更能满足国内外日益增长的专业需求。 本书在作者撰写的《Android软件开发教程》(第2版)的基础上,采纳了部分任课教师和教材使用者的意见,调整了不适于初学者的部分内容,增加了约束布局、地图应用等内容。同时结合Android软件开发的最新发展,删除了过时的内容,修改了示例程序的代码,在Android Studio 2020.3.1.26开发环境下重新进行了调试。Android Studio 2020.3.1.26是2021年11月发布的IDE版本,其安装文件为androidstudio2020.3.1.26windows.exe,模拟器版本为Android 12.0(API 31)。 作为一本面向初学者的教材,本书延续第2版的写作风格,注重讲解的深入浅出和易学易懂,对于一些较难理解的理论,尽可能使用图示加以说明。对每个知识点都配有示例程序,并力求示例程序短小精悍,既能帮助读者理解知识,又具有启发性和实用性,非常适合教学或自学。每章都配有难度适中的习题,引导读者编写相关功能的实用程序,有助于提高读者学习兴趣。本书特别设置了Java语言和XML的基础知识介绍,同时这部分内容还可以作为Java和XML语法简明手册使用,便于初学者在编程过程中查阅。 由于Android程序设计涉及编程语言、网络通信、硬件控制、多媒体等较多知识内容,因此学习时应该遵循循序渐进、由浅入深的原则。学习的过程中要注重理论的理解,更要强调动手实践,尤其是对于初学者而言,多练习才能掌握设计的方法和技巧。 本书的全部示例代码和课后习题均已在Android Studio 2020.3.1.26开发环境下调试通过。Android Studio自2013年推出以来,在几次更新之后已经成为非常稳定和强大的集成开发环境(Integrated Development Environment,IDE)。与其他编程环境相比,Android Studio具有很多优势。Android Studio以IntelliJ IDEA为基础,整合了Gradle构建工具,为开发者提供了开发和调试工具,包括智能代码编辑、用户界面设计工具、性能分析工具等。Android Studio的界面风格更受程序员欢迎,代码的修改会自动智能保存,自带了多设备的实时预览,具有内置命令行终端、更完善的插件系统和版本控制系统,在代码智能提示、运行响应速度等方面都更出色。 本书共11章。第1章介绍智能移动设备及其操作系统、Android系统的体系结构,以及Java、XML等Android程序设计必要的预备知识。第2章介绍在Windows系统中搭建Android开发平台的主要步骤和集成开发环境的使用方法,并且使读者通过学习创建第一个Android应用程序,了解典型Android应用程序的架构与组成。第3~5章介绍用户界面的设计,主要包括XML布局文件的设计和使用方法、常见的界面布局方式、Android中的事件处理机制、常用的用户界面(User Interface,UI)控件,以及对话框、菜单和状态栏通知的设计方法。第6章介绍Fragment的基本概念、Fragment的加载和切换以及相关应用。第7章介绍Intent的概念及其在组件通信中的应用,以及多线程通信机制。第8章介绍后台服务Service及其启动和停止方法,广播消息的发送和接收等。第9章介绍Android常用的数据存储和访问方法,包括SharedPreferences、文件存取、SQLite数据库存储、内容提供器等。第10章介绍在Android系统中使用音频和视频等多媒体资源的方法、访问Internet资源的方法、地图应用等。第11章介绍两个综合应用实例的设计思路和实现方法,以加深读者对基本知识的理解。 本书第1~6章由张雪梅编写,第7~9章由高凯编写,第10、11章由陶秋红编写,高凯完成了全书的统稿和审阅工作。 本书可作为计算机、通信、电子信息类相关专业教材和工程实训、技能培训用书,也可供工程技术人员参考。本书提供制作精良的教学课件,并提供所有示例和课后习题的源代码,同时各章主要内容都配备了微课。相关资源均在清华大学出版社网站发布,以方便读者自学和实践。 作者在本书的写作与相关科研课题的研究过程中,得到了多方面的支持与帮助。在写作过程中作者参考了相关文献和互联网上众多热心网友提供的素材,在此向这些文献的作者、热心网友以及为本书提供帮助的老师,致以诚挚的谢意和崇高的敬意。在本书写作过程中,作者也得到了清华大学出版社的大力支持和帮助,在此一并表示衷心感谢。 由于作者水平有限,书中难免存在不足之处,恳请广大读者批评指正,共同探讨Android软件开发方面的问题。 作者 2022年2月