本书为《Android移动应用基础教程(Android Studio)》(第2版)的升级版,是一本Android入门书籍。本书站在初学者的角度对Android基础知识进行深入的分析与讲解,书中使用生动形象的情景化举例,将复杂和难以理解的知识简单化。针对书中的每个知识点,还精心设计了相应的案例,力求每个案例都能贴合实际工作需求,真正做到把书本上的知识应用到实际开发中。
本书共16章,其中,第6、12、15章分别是总结1~5章、7~11章、1~14章的实战项目,第16章为拓展阅读——Flutter与鸿蒙。通过这些项目的学习,可以对基础知识进行巩固与融合,让初学者掌握基础知识在实际开发中的用法,达到理论与实践相结合的目的,使初学者成为一名专业的编程人员。
本书既可以作为高等院校本、专科计算机类相关专业的“移动互联网”课程专用教材,也可以作为Android爱好者的入门书籍。
本书在编写的过程中,贯彻和落实党的二十大精神,将立德树人放在首位,通过案例加深学生对知识的认识与理解,注重培养学生的创新精神、实践能力和社会责任感。案例设计从现实需求出发,激发学生的学习兴趣和动手思考的能力,充分发挥学生的主动性和积极性,增强学习信心和学习欲望,培养学生分析问题和解决问题的能力。在知识和案例的讲解中融入了素质教育的相关内容,引导学生树立正确的世界观、人生观和价值观,进一步提升学生的职业素养,落实德才兼备的高素质卓越工程师和高技能人才的培养要求。此外。编者依据书中的内容提供了线上学习资源,体现现代信息技术与教育教学的深度融合,进一步推动教育数字化发展。
为了适应市场的需求,让读者看到最新的技术和开发工具,本书在第2版的基础上进行了升级,将开发工具的版本替换为Android Studio 2021.2.1,并添加了一些比较新颖有趣的案例,如相册界面、小猴子摘桃、饭堂小广播、数鸭子、商品砍价界面、绘制小狗、飞舞的蝴蝶和鸟等。在本书的第15章中还添加了一个综合项目——网上订餐,该项目总结了前面第1~14章学习的知识点,有助于读者对前面知识的巩固。
第1章Android基础入门 1 1.1 Android简介 1 1.1.1 通信技术 1 1.1.2 Android发展历史 2 1.1.3 Android体系结构 4 1.1.4 Dalvik虚拟机 5 1.2 Android开发环境搭建 6 1.2.1 Android Studio安装 6 1.2.2 模拟器创建 15 1.2.3 在Android Studio中下载SDK 19 1.3 开发第一个Android程序 24 1.4 Android程序结构 26 1.5 资源的管理与使用 27 1.5.1 图片资源 27 1.5.2 主题和样式资源 27 1.5.3 布局资源 29 1.5.4 字符串资源 29 1.5.5 颜色资源 30 1.5.6 尺寸资源 31 1.6 程 序 调 试 32 1.6.1 单元测试 32 1.6.2 Logcat的使用 35 本章小结 37 本章习题 38 第2章Android常见界面布局 39 2.1 View 39 2.2 界面布局的编写方式 40 2.2.1 在XML文件中编写界面布局 40 2.2.2 在Java代码中编写界面布局 40 2.3 常见界面布局 41 2.3.1 布局的通用属性 41 2.3.2 RelativeLayout 42 2.3.3 LinearLayout 45 2.3.4 TableLayout 47 2.3.5 FrameLayout 48 2.3.6 ConstraintLayout 50 本章小结 52 本章习题 52 第3章Android常见界面控件 54 3.1 简单控件的使用 54 3.1.1 TextView控件 54 3.1.2 EditText控件 56 3.1.3 Button控件 58 3.1.4 ImageView控件 61 3.1.5 RadioButton控件 63 3.1.6 CheckBox控件 66 3.1.7 Toast类 69 3.2 列表控件的使用 69 3.2.1 ListView控件的使用 69 3.2.2 常用数据适配器(Adapter) 70 3.2.3 实战演练——超市界面 71 3.2.4 RecyclerView控件的使用 75 3.2.5 实战演练——相册界面 78 3.3 自定义View 81 本章小结 84 本章习题 84 第4章程序活动单元Activity 86 4.1 Activity的生命周期 86 4.1.1 生命周期状态 86 4.1.2 生命周期方法 87 4.2 Activity的创建、配置、启动和关闭 91 4.2.1 创建Activity 91 4.2.2 配置Activity 93 4.2.3 启动和关闭Activity 94 4.3 Intent与IntentFilter 94 4.3.1 Intent 94 4.3.2 IntentFilter 96 4.4 Activity之间的跳转与数据传递 97 4.4.1 在Activity之间的数据传递 97 4.4.2 Activity之间的数据回传 98 4.4.3 实战演练——小猴子摘桃 102 4.5 任务栈和启动模式 107 4.5.1 Android中的任务栈 107 4.5.2 Activity的启动模式 107 4.6 使用Fragment 109 4.6.1 Fragment简介 109 4.6.2 Fragment的生命周期 110 4.6.3 创建Fragment 111 4.6.4 在Activity中添加Fragment 111 4.6.5 实战演练——订餐菜单 112 本章小结 121 本章习题 121 第5章数据存储 123 5.1 数据存储方式 123 5.2 文件存储 124 5.2.1 将数据存入文件中 124 5.2.2 从文件中读取数据 127 5.2.3 实战演练—— 保存QQ账号与密码 128 5.3 SharedPreferences 133 5.3.1 将数据存入SharedPreferences中 133 5.3.2 读取与删除SharedPreferences中的数据 133 5.3.3 实战演练—— 保存QQ账号与密码 134 5.4 SQLite数据库 136 5.4.1 SQLite数据库的创建 136 5.4.2 SQLite数据库的基本操作 137 5.4.3 SQLite数据库中的事务 140 5.4.4 实战演练——绿豆通讯录 141 本章小结 146 本章习题 146 第6章阶段案例——记事本 148 6.1 需求分析 148 6.1.1 业务需求分析 148 6.1.2 功能结构分析 148 6.1.3 数据库设计分析 149 6.1.4 界面需求分析 149 6.2 开发环境介绍 151 6.3 实现记事本的功能 151 6.4 实现添加与修改记录的功能 151 6.5 运行结果 151 本章小结 152 第7章内容提供者与内容观察者 153 7.1 内容提供者概述 153 7.2 创建内容提供者 154 7.3 访问其他应用程序 156 7.3.1 查询其他程序的数据 156 7.3.2 实战演练——读取手机通讯录 158 7.4 内容观察者 165 7.4.1 什么是内容观察者 166 7.4.2 实战演练——监测数据变化 167 本章小结 176 本章习题 176 第8章广播机制 178 8.1 广播机制的概述 178 8.2 广播接收者 179 8.2.1 什么是广播接收者 179 8.2.2 创建广播接收者 180 8.3 自定义广播与广播的类型 182 8.3.1 自定义广播 182 8.3.2 实战演练——饭堂小广播 183 8.3.3 广播的类型 186 8.3.4 实战演练——数鸭子 187 本章小结 197 本章习题 197 第9章服务 198 9.1 服务概述 198 9.2 服务的创建 199 9.3 服务的生命周期 200 9.4 服务的启动方式 201 9.4.1 调用startService()方法启动服务 201 9.4.2 调用bindService()方法启动服务 205 9.5 服务的通信 210 9.5.1 本地服务通信和远程服务通信 210 9.5.2 实战演练——音乐播放器 211 本章小结219 本章习题219 第 10 章Android事件处理 221 10.1 事件处理概述 221 10.2 基于回调机制的事件处理 221 10.2.1 基于回调机制的事件处理简介 222 10.2.2 onKeyDown()方法 222 10.2.3 onKeyUp()方法 224 10.2.4 onTouchEvent()方法 225 10.2.5 onFocusChanged()方法 227 10.3 基于监听接口机制的事件处理 227 10.3.1 基于监听接口机制的事件处理简介 227 10.3.2 OnClickListener接口 229 10.3.3 OnLongClickListener接口 231 10.3.4 OnFocusChangeListener接口 232 10.3.5 OnKeyListener接口 234 10.3.6 OnTouchListener接口 237 10.4 Handler消息机制 238 本章小结 239 本章习题 239 第11章网络编程 241 11.1 通过HTTP访问网络 241 11.1.1 HTTP简介 241 11.1.2 使用HttpURLConnection访问网络 242 11.2 使用WebView进行网络开发 243 11.2.1 使用WebView浏览网页 244 11.2.2 使用WebView执行HTML代码 245 11.2.3 设置WebView支持JavaScript 247 11.3 JSON数据解析 250 11.3.1 JSON数据 250 11.3.2 JSON解析 252 11.3.3 实战演练——商品砍价界面 255 本章小结 264 本章习题 264 第12章阶段案例——智能聊天机器人 266 12.1 需求分析 266 12.1.1 业务需求分析 266 12.1.2 模型需求分析 266 12.1.3 界面需求分析 267 12.2 开发环境介绍 268 12.3 聊天功能业务实现 268 本章小结 268 第13章图形图像处理 269 13.1 常用的绘图类 269 13.1.1 Bitmap类 269 13.1.2 BitmapFactory类 270 13.1.3 Paint类 270 13.1.4 Canvas类 271 13.1.5 实战演练——绘制小狗 271 13.2 为图像添加特效 273 13.3 动画 276 13.3.1 补间动画 276 13.3.2 逐帧动画 282 13.3.3 属性动画 285 13.3.4 实战演练——飞舞的蝴蝶和鸟 289 本章小结 291 本章习题 291 第14章多媒体应用开发 293 14.1 音频播放 293 14.1.1 使用MediaPlayer类播放音频 293 14.1.2 使用SoundPool类播放音频 295 14.1.3 实战演练——弹钢琴 297 14.2 视频播放 300 14.2.1 使用VideoView控件播放视频 300 14.2.2 实战演练——VideoView视频播放器 301 14.2.3 使用MediaPlayer类和SurfaceView控件播放视频 303 14.2.4 实战演练——SurfaceView视频播放器 305 本章小结 311 本章习题 311 第15章综合项目——网上订餐 313 15.1 项目分析 313 15.1.1 项目概述 313 15.1.2 开发环境 314 15.1.3 模块说明 314 15.2 效果展示 314 15.2.1 店铺界面 314 15.2.2 店铺详情界面 315 15.2.3 菜品详情界面 316 15.2.4 订单界面 317 15.3 服务器数据准备 317 15.4 实现店铺功能业务 319 15.5 实现店铺详情功能业务 319 15.6 实现菜品详情功能业务 320 15.7 实现订单功能业务 320 本章小结 320 第16章拓展阅读——Flutter与鸿蒙 321 16.1 初识Flutter 321 16.1.1 Flutter的诞生 321 16.1.2 Flutter的发展历史 322 16.1.3 Flutter框架的结构 322 16.1.4 Flutter的特性 23 16.2 Flutter的开发语言 324 16.2.1 Dart语言简介 324 16.2.2 Dart语言的优势 325 16.3 初识鸿蒙 325 16.3.1 鸿蒙的诞生 326 16.3.2 鸿蒙概述 326 16.3.3 鸿蒙的技术架构 326 16.4 搭建鸿蒙开发环境 328 16.4.1 下载与安装DevEco Studio 328 16.4.2 下载Node.js与SDK 328 16.4.3 创建模拟器 328 16.5 开发第一个鸿蒙程序 329 16.6 鸿蒙程序结构 331 本章小结 332