具体描述
编辑推荐
技术新颖,贴近实战:本书涵盖了现实中几乎所有的流行技术,如3D、传感器、OpenGL ES 2.0、动态壁纸、LBS百度地图的二次开发、移动办公、实时流体仿真计算引擎、服务端和Android端的交互等。
实例丰富,讲解详细:本书既包括单机版客户端项目,也有服务端和Android端的结合开发;既包括典型的商业软件,也包括休闲娱乐项目,还有流行的3D热门案例以及借助OpenGL ES 2.0渲染的逼真场景。
案例经典,含金量高:以真实的项目开发为讲解背景,包括大型商务软件、3D游戏等,无论做项目还是进行毕业设计,都可以在本书找到相同的案例,非常适合各类读者学习。
内容简介
本书以Android手机综合应用程序开发为主题,通过11个典型范例全面且深度地讲解了单机应用、网络应用、商业案例、2D/3D游戏等多个开发领域。
全书共分12章,主要以范例的方式来讲述Android的应用开发,详细介绍了3D动态壁纸、LBS类应用、导航与百度地图二次开发、理财类应用、餐饮行业应用、校园辅助应用、音乐休闲应用、新闻发布管理应用、休闲益智类3D/2D游戏等各类Android应用程序的开发。随书光盘中包括了所有范例的源程序,并对程序进行了详细的注释。
本书以真实的项目开发为写作背景,具有很强的实用性和实战性。讲解上深入浅出、通俗易懂,既有Android开发的实战技术和技巧,也包括真实项目的策划方案。本书非常适合初学者或有一定Android基础、希望学习Android高级开发技术的读者使用。
作者简介
吴亚峰,毕业于北京邮电大学,后留学澳大利亚取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。主要的研究方向为OpenGL ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师,并兼任百纳科技Java培训中心首席培训师。近十年来为数十家企业培养了上千名高级软件开发人员,曾编写过《Android 3D游戏开发技术宝典——OpenGL ES 2.0》、《Cocos2d-X 3.0游戏开发实战详解》、《Unity 4 3D开发实战详解》等多本畅销技术书籍。2008年初开始关注Android平台下的3D应用开发,并开发出一系列的Android应用程序与3D游戏。
内页插图
目录
目录
第1章 初识庐山真面目——Android简介 1
1.1 Android的来龙去脉 1
1.2 掀起Android的盖头来 1
1.2.1 选择Android的理由 1
1.2.2 Android的应用程序框架 2
1.3 Android开发环境的搭建 4
1.3.1 Android SDK的下载 4
1.3.2 Android SDK的配置 5
1.3.3 创建并启动模拟器 7
1.3.4 第一个Android程序 9
1.4 DDMS的灵活应用 14
1.4.1 初识DDMS 14
1.4.2 强大的日志管理功能——
LogCat的使用 15
1.4.3 Devices的管理 15
1.4.4 模拟器控制(Emulator Control)
详解 17
1.4.5 File Explorer——SD Card
文件管理器 18
1.5 本书案例项目的导入 18
1.5.1 导入并运行Android程序 18
1.5.2 Android程序的监控与调试 21
1.6 本章小结 21
第2章 3D动态壁纸——百纳水族馆 22
2.1 壁纸的背景及功能概述 22
2.1.1 壁纸背景概述 22
2.1.2 壁纸功能介绍 22
2.2 壁纸的策划及准备工作 25
2.2.1 壁纸的策划 25
2.2.2 Android平台下3D开发的
准备工作 26
2.3 壁纸的基本框架 26
2.3.1 壁纸项目的框架结构 27
2.3.2 各个类的简要介绍 27
2.4 壁纸的实现 30
2.4.1 壁纸服务类——
OpenGLES2WallpaperService 30
2.4.2 自定义渲染器类——
MySurfaceView 32
2.5 辅助绘制类 35
2.5.1 背景辅助绘制类——
Background 35
2.5.2 气泡辅助绘制类——Bubble 37
2.5.3 鱼类辅助绘制类——
MS3DModel 38
2.6 绘制相关类 42
2.6.1 气泡绘制相关类 42
2.6.2 群鱼绘制相关类 44
2.6.3 鱼群绘制相关类 46
2.6.4 鱼食绘制相关类 48
2.7 线程相关类 50
2.7.1 气泡移动线程类——
BubbleThread 50
2.7.2 群鱼游动线程类——
FishGoThread 51
2.7.3 鱼群游动线程类——
FishSchoolThread 52
2.7.4 鱼食移动线程类——
FoodThread 54
2.7.5 吸引力线程类——
AttractThread 55
2.8 壁纸中的着色器开发 57
2.8.1 气泡的着色器 57
2.8.2 珍珠贝的着色器 57
2.8.3 鱼类的着色器 59
2.9 壁纸的优化与改进 61
第3章 LBS类应用——掌上杭州 62
3.1 应用背景及功能介绍 62
3.1.1 背景简介 62
3.1.2 功能概述 62
3.1.3 开发环境 63
3.2 功能预览及架构 63
3.2.1 加载、美食、医疗功能预览 64
3.2.2 购物、景点、娱乐功能预览 66
3.2.3 搜索、设置功能预览 70
3.2.4 项目目录结构 71
3.2.5 新浪微博功能开发的准备 73
3.3 开发前的准备工作 76
3.3.1 信息的搜集 76
3.3.2 数据包的整理 78
3.3.3 XML资源文件的准备 79
3.4 辅助工具类的开发 80
3.4.1 常量类的开发 80
3.4.2 图片获取类的开发 81
3.4.3 解压文件类的开发 81
3.4.4 读取文件类的开发 82
3.4.5 自定义字体类的开发 83
3.5 辅助功能的实现 84
3.5.1 加载功能的实现 84
3.5.2 主界面的实现 86
3.5.3 百度地图的实现 88
3.6 美食模块的实现 93
3.6.1 美食主界面的实现 93
3.6.2 介绍美食的实现 95
3.7 景点功能开发 97
3.7.1 景点主界面的开发 97
3.7.2 当前景点界面的开发 101
3.7.3 所有景点界面的开发 102
3.7.4 新浪微博功能的开发 103
3.7.5 搜索兴趣点功能的开发 107
3.7.6 语言选择功能的开发 109
3.7.7 建议反馈界面的开发 110
3.8 其他模块的实现 111
3.8.1 娱乐、医疗、购物的实现 111
3.8.2 住宿版块的实现 113
3.8.3 搜索模块的实现 116
3.8.4 设置模块的实现 118
3.9 本章小结 119
第4章 理财类软件——BN理财助手 120
4.1 应用背景及功能介绍 120
4.1.1 BN理财助手功能概述 120
4.1.2 BN理财助手开发环境 121
4.2 开发前的准备工作 121
4.2.1 数据库的设计 121
4.2.2 数据库工具类 124
4.2.3 文本信息的搜集 125
4.3 功能预览及架构 125
4.3.1 BN理财助手功能预览 125
4.3.2 BN理财助手目录结构图 128
4.4 辅助工具类的开发 129
4.4.1 常量类的开发 129
4.4.2 自定义字体类的开发 129
4.4.3 数据库操作类的开发 130
4.5 欢迎功能模块的实现 135
4.5.1 BN理财助手欢迎界面模块
的实现 136
4.5.2 BN理财助手引导页模块
的实现 138
4.6 各个功能模块的实现 141
4.6.1 BN理财助手主界面模块
的实现 141
4.6.2 日常记账模块的实现 143
4.6.3 自选股模块的实现 151
4.6.4 理财常识的实现 163
4.6.5 备忘录的实现 165
4.6.6 计算器功能的实现 168
4.6.7 其他功能的开发 171
4.7 本章小结 172
第5章 LBS交通软件——百纳
公交小助手 173
5.1 系统背景及功能介绍 173
5.1.1 背景简介 173
5.1.2 模块与界面概览 173
5.1.3 开发环境 174
5.2 功能预览及框架 175
5.2.1 项目功能预览 175
5.2.2 项目目录结构 177
5.3 开发前的准备工作 180
5.3.1 数据库表的设计 180
5.3.2 百度地图键值的申请 181
5.3.3 百度地图的显示 182
5.3.4 XML资源文件的准备 183
5.4 辅助工具类的开发 185
5.4.1 常量类的开发 185
5.4.2 工具类的开发 185
5.4.3 换乘路径规划工具类的开发 186
5.4.4 定位和获取附近公交站
工具类的开发 187
5.5 各个功能模块的实现 189
5.5.1 选择城市界面模块的实现 189
5.5.2 主界面模块的实现 192
5.5.3 线路查询模块的实现 194
5.5.4 换乘方案查询模块的实现 202
5.5.5 定位附近站点模块的开发 211
5.6 本章小结 217
第6章 学生个人辅助软件——
天气课程表 218
6.1 系统背景及功能介绍 218
6.1.1 天气课程表背景简介 218
6.1.2 天气课程表功能概述 218
6.1.3 天气课程表开发环境 219
6.2 功能预览及框架 220
6.2.1 天气课程表功能预览 220
6.2.2 天气课程表目录结构图 222
6.3 开发前的准备工作 224
6.3.1 数据库表的设计 224
6.3.2 天气预报ak值的申请 225
6.3.3 XML资源文件的准备 227
6.4 辅助工具类的开发 228
6.4.1 常量类的开发 228
6.4.2 天气预报工具类的开发 229
6.4.3 本地数据库的开发 230
6.4.4 获得整周显示日期工具类
的开发 232
6.5 各个功能模块的实现 233
6.5.1 输入学期开始时间模块
的开发 233
6.5.2 天气课程表主界面模块
的实现 235
6.5.3 添加课程信息界面模块
的开发 247
6.5.4 查看课程信息界面模块
的实现 255
6.5.5 编辑课程信息界面模块
的开发 258
6.5.6 查看课程整周界面模块
的实现 259
6.5.7 桌面Widget模块的开发 264
6.6 本章小结 271
第7章 校园辅助软件——新生小助手 272
7.1 应用背景及功能介绍 272
7.1.1 新生小助手背景简介 272
7.1.2 新生小助手功能概述 272
7.1.3 新生小助手开发环境 273
7.2 功能预览及架构 273
7.2.1 新生小助手功能预览 274
7.2.2 新生小助手目录结构图 276
7.3 开发前的准备工
前言/序言
《Android应用开发实战宝典(第三版)》 一本让你从入门到精通的Android开发权威指南 前言 在这个日新月异的移动互联网时代,Android操作系统以其开放的生态系统和庞大的用户群体,成为了无数开发者实现创新想法、构建精彩应用的理想平台。无论你是怀揣着技术梦想的初学者,还是寻求深入探索Android高级特性的资深开发者,一本系统、权威、实用的开发指南都将是你不可或缺的伙伴。《Android应用开发实战宝典(第三版)》正是为你量身打造,它不仅涵盖了Android开发的方方面面,更通过海量的实战案例,让你在动手实践中掌握核心技术,解决实际开发中的痛点,最终成为一名出色的Android应用开发者。 本版对前版内容进行了全面的更新与升级,充分融入了Android最新的开发理念、API特性以及行业最佳实践。我们深入剖析了Android Jetpack等现代化开发组件,强化了Kotlin语言在现代Android开发中的地位,并结合当前主流的UI/UX设计趋势,为你呈现了一场全面、深入、前沿的Android开发盛宴。 本书特色与价值 系统性与全面性: 从Android开发的基础环境搭建、四大组件的深入解析,到UI布局、数据存储、网络通信、多线程处理、性能优化、测试与调试等各个环节,本书都进行了细致入微的讲解。无论你是初次接触Android开发,还是已经具备一定基础,都能从中找到适合自己的内容,系统构建起坚实的Android开发知识体系。 海量实战案例: 我们深知理论知识的局限性,因此本书将大量的篇幅倾注于精心设计的实战案例。每个案例都紧密围绕核心技术点展开,覆盖了从简单到复杂的各类应用场景。你将学习如何开发一个待办事项列表应用、一个天气预报应用、一个新闻资讯应用,甚至是一些更具挑战性的多媒体应用、社交应用等。这些案例不仅能让你直观地理解技术原理,更能让你在复制代码、调试过程中,逐步掌握解决实际开发问题的能力。 最新技术栈覆盖: 本版积极拥抱Android的最新发展。我们详细介绍了Jetpack组件,如ViewModel、LiveData、Room、Navigation等,它们是构建现代化、高质量Android应用的基石。同时,Kotlin作为Google官方推荐的Android开发语言,本书将其贯穿始终,让你在熟悉Java的同时,也能熟练掌握Kotlin的各种强大特性,编写出更简洁、安全、高效的代码。 深入探索核心概念: 除了基础知识,本书还将带领你深入探索Android开发的许多核心概念,例如Activity生命周期、Fragment的交互、Service的多线程管理、BroadcastReceiver的注册与接收、ContentProvider的跨应用数据共享、Binder IPC机制、Handler消息机制、内存管理与垃圾回收、线程池的应用、以及各种网络请求库(如Retrofit、OkHttp)的使用。理解这些底层机制,是成为一名真正优秀Android开发者的必经之路。 UI/UX设计与优化: 优秀的UI/UX是用户喜爱应用的关键。本书不仅讲解了ConstraintLayout、RecyclerView等高效的UI布局控件,还介绍了Material Design设计规范,帮助你打造美观、易用的用户界面。同时,我们也关注应用的性能优化,包括视图优化、内存优化、网络优化、耗电优化等,让你学会如何打造流畅、响应迅速的应用。 调试与测试: 掌握有效的调试和测试技巧,是保证应用质量的重要环节。本书将介绍Android Studio的强大调试工具,如断点、变量监视、性能分析器等,并讲解如何编写单元测试和集成测试,让你能够快速定位和修复Bug,提升应用的稳定性。 面向未来的开发: 随着Android平台的发展,新的技术和框架层出不穷。本书在讲解现有技术的同时,也适时地提及了一些前沿技术和发展趋势,例如Jetpack Compose(声明式UI)、Kotlin Flow、协程的深入应用等,为你指明了学习的方向,让你能够站在技术的最前沿。 本书内容概览 第一部分:Android开发基础 环境搭建与项目创建: 详细指导Android Studio的安装与配置,以及如何创建第一个Android项目,让你快速进入开发状态。 Android四大组件深度解析: Activity: 生命周期、多Activity导航、Activity结果回调、LaunchMode详解。 Service: 前台Service、后台Service、IntentService、Service与Activity的通信。 BroadcastReceiver: 动态注册与静态注册、有序广播、本地广播。 ContentProvider: URI、查询、插入、更新、删除操作,以及跨应用数据共享的实现。 UI开发基础: 布局文件XML: LinearLayout, RelativeLayout, FrameLayout, TableLayout等常用布局。 ConstraintLayout: 强大的约束布局,构建灵活的UI。 View和ViewGroup: 常用控件(TextView, EditText, Button, ImageView, CheckBox, RadioButton, ProgressBar等)的属性与用法。 自定义View: 绘制、测量、布局,创造独特的用户界面。 RecyclerView: 高效的列表控件,实现复杂列表的展示与交互。 Material Design: 规范的设计原则与常用组件(CardView, FloatingActionButton, Toolbar, DrawerLayout等)。 第二部分:数据存储与网络通信 SharedPreferences: 轻量级键值对存储。 文件存储: 内部存储、外部存储,文件的读写操作。 SQLite数据库: Android内置的关系型数据库,实现结构化数据的高效存储与查询。 Room Persistence Library: Google官方推荐的SQLite抽象层,简化数据库操作,提高开发效率。 网络通信: HTTP协议基础。 HttpClient与HttpURLConnection(了解)。 OkHttp: 现代Android网络请求的首选库,高效、稳定、易用。 Retrofit: 强大的RESTful API客户端,将HTTP请求封装成Java接口,极大地简化网络请求代码。 JSON解析: Gson, Jackson等常用JSON解析库的使用。 网络请求的并发与异常处理。 第三部分:多线程与并发 线程基础: Thread, Runnable。 Handler机制: 消息队列、Message、Handler、Looper,实现UI线程与子线程的安全通信。 AsyncTask: 简化的异步任务执行(已不推荐,但有必要了解)。 线程池: ExecutorService,管理和复用线程,提高性能。 Kotlin协程(Coroutines): 现代Android异步编程的首选方案,编写简洁、可读性强的并发代码。 Kotlin Flow: 响应式编程,处理异步数据流。 第四部分:高级主题与性能优化 Binder IPC机制: Android进程间通信的核心原理。 内存管理与垃圾回收: 理解内存泄漏的原因与避免方法,优化应用内存占用。 性能优化: UI渲染优化: 减少过度绘制,优化布局层级。 图片加载优化: Glide, Picasso等图片加载库的使用与配置。 网络优化: 缓存策略,请求压缩。 耗电优化: 定位与减少不必要的后台操作。 多分辨率与国际化: 适配不同屏幕尺寸、密度,实现应用的多语言支持。 权限管理: 运行时权限的申请与处理。 后台任务管理: WorkManager,实现可靠的后台任务调度。 Jetpack组件深入应用: ViewModel, LiveData, Navigation, Paging等。 第五部分:应用发布与测试 应用签名与打包: 生成APK与App Bundle。 在Google Play Store发布应用。 单元测试(JUnit): 测试代码逻辑的正确性。 集成测试: 测试应用组件之间的协作。 UI自动化测试: Espresso。 第六部分:案例实战 本书精心设计了多个贯穿全书的实战案例,让你在学习过程中不断巩固和应用所学知识。例如: 个人笔记应用: 学习Activity、Fragment、SQLite/Room、RecyclerView等基础知识。 天气预报应用: 掌握网络请求、JSON解析、多线程处理。 新闻阅读应用: 深入理解RecyclerView的复用机制、图片加载、下拉刷新、上拉加载更多。 简单的社交媒体应用: 涉及用户认证、数据同步、文件上传等。 多媒体播放器: 学习音频、视频的播放与控制。 谁适合阅读本书? 零基础Android初学者: 从零开始,系统学习Android开发必备知识。 有一定开发经验的开发者: 巩固基础,深入理解Android内部机制,掌握最新技术。 希望提升Android开发技能的程序员: 通过实战案例,快速掌握解决实际开发问题的能力。 正在学习Kotlin语言的开发者: 学习如何在Android开发中高效运用Kotlin。 对移动应用开发感兴趣的爱好者: 开启你的移动开发之旅。 结语 《Android应用开发实战宝典(第三版)》不仅仅是一本书,更是你踏入Android开发世界、成长为一名优秀开发者的忠实伙伴。我们相信,通过本书系统性的讲解和丰富的实战案例,你将能够熟练掌握Android开发的各项技能,自信地开发出功能强大、用户体验出色的Android应用。现在,就让我们一起翻开这本书,开启你的精彩Android开发之旅吧!