Android项目开发实战
-
【作 者】赵善龙 李旭东
【I S B N 】978-7-5170-6702-3
【责任编辑】张玉玲
【适用读者群】本专通用
【出版时间】2018-10-15
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】272
【千字数】420
【印 张】17
【定 价】¥36
【丛 书】高等职业教育“十三五”规划教材(移动互联应用技术专业)
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书规划了Android从入门到进阶过程中最重要的知识体系,将知识、技术与技巧充分渗透到多个独立且完整的Android应用实战项目中,带领读者一同参与到真正的企业开发流程,使读者有条不紊地掌握完整的项目开发技术,循序渐进地具备企业级移动应用开发的能力。在程序实例讲解方面,注重对实际动手能力的指导;在遵循项目开发过程的同时,将重要知识点和经验技巧以“关键知识点解析”的形式呈现给读者,这为初学者将学习与实践结合提供了很好的指导。
本书可作为大学本科和高职高专有关课程的实训教材,也可供具备一定手机开发经验的开发者及Android开发爱好者参考和使用。
精编实践案例,图文并茂,帮你掌握开发技能
资深教学团队,Android开发企业级导师倾情教授
适用群体广泛,旨在培养具有企业移动应用开发能力的应用型人才
在移动编程技术中,Android将开发者使用最多的Java语言作为基础语言,为众多已掌握Java编程技术的开发者降低了学习门槛。同时,谷歌对Android进行了从组件到UI各层次较完善和丰富的封装,为开发者提供了大量简洁易用的API和基础UI控件,这也在很大程度上降低了开发者的学习成本。然而摆在众多开发者面前的问题是,很多开发者了解Android中Activity的生命周期各环节被调用的时机,但却对生命周期各环节应该编写哪部分代码不得其法;很多开发者了解UI控件的使用方法,但却在通过网络获取数据后刷新UI方面力不从心;很多开发者了解如何使用ListView展示列表数据,但当数据量稍微增大时程序就会出现卡顿甚至崩溃;很多开发者可以熟练地绘制布局并在模拟器上显示完整,但一旦到了某些真机上,画面却惨不忍睹。事实上,如何综合地运用Android开发技术进行规范的应用开发,如何使自己的开发技术与企业开发流程接轨,如何更好地优化应用,使应用适配更广泛的机型而且程序更加健壮,的确是使许多通过自学成长的开发者深受困扰的问题。凭借多年的院校教学经验和企业实践经验,我们深知Android初学者在学习和成长过程中的痛点。针对这些痛点,本书规划了Android从入门到进阶过程中最重要的知识体系,将知识、技术与技巧充分渗透到多个独立且完整的Android应用实战项目中,带领读者一同参与到真正的企业开发流程中,使读者有条不紊地掌握完整的项目开发技术,循序渐进地具备企业级移动应用开发的能力。
在开始项目实战之前,需要读者对本书的知识结构体系图进行初步了解,读者应在掌握预备知识的基础上对本书项目进行逐一学习。本书将着重对基础组件、UI、线程与线程间通信、网络通信、数据解析和数据存储六大部分在项目中的应用进行讲解。下面介绍每个项目重点训练的知识点。
项目1主要针对项目构建、布局、基础控件和按钮的点击事件进行实战。
项目2主要针对应用的架构搭建、ListView的使用方法和技巧、自定义Adapter的方法进行实战。
项目3主要针对本地文件存储、自定义控件、onTouch事件处理及Canvas进行实战。
项目4主要针对图片处理及优化、文件读写、ContentProvider进行实战。
项目5主要针对线程间通信、时钟、Service进行实战。
项目6主要针对线程间通信、HTTP、BroadcastReceiver、Service进行实战。
项目7主要针对Fragment、XML解析、WebView进行实战。
项目8主要针对HttpClient、JSON解析、网络通信的封装进行实战。
项目9主要针对BroadcastReceiver、Service、AIDL和电话操作进行实战。
项目10主要针对蓝牙通信进行实战。
项目11主要针对Socket、Handle和消息队列进行实战。
项目12主要针对百度地图、定位、SQLiteOpenHelper和自动更新进行实战。
本书由赵善龙、李旭东任主编,姜培育、李春宝任副主编,另外还要感谢周益丹编辑对本书提出了非常宝贵的意见,特别是书中内容的编排、难易程度的把握、案例的选取和文叙风格等。
由于编者水平有限,书中不妥之处在所难免,恳请读者批评指正。
编 者
2018年6月
1.1 总体设计 1
1.1.1 总体分析 1
1.1.2 功能模块框图 2
1.1.3 系统流程图 2
1.1.4 界面设计 2
1.2 详细设计 4
1.2.1 模块描述 4
1.2.2 系统包及其资源规划 5
1.2.3 主要方法流程设计 5
1.3 代码实现 7
1.3.1 显示界面布局 7
1.3.2 控件设计实现 7
1.3.3 控件事件处理方法实现 12
1.3.4 数值计算方法实现 15
1.4 关键知识点解析 16
1.4.1 在程序中创建菜单 16
1.4.2 基础界面布局 19
1.4.3 设置程序名称和图标 21
1.4.4 常用文本输入控件及按钮 21
1.4.5 为按钮增加多种样式—selector 26
1.4.6 多分辨率适配利器—LinearLayout 28
1.5 问题与讨论 30
项目2 基于离线数据的天气应用—
天气预报(一) 31
2.1 总体设计 31
2.1.1 总体分析 31
2.1.2 功能模块框图 32
2.1.3 系统流程图 32
2.1.4 界面设计 33
2.2 详细设计 34
2.2.1 模块描述 34
2.2.2 系统包及其资源规划 36
2.2.3 主要方法流程设计 39
2.3 代码实现 39
2.3.1 显示界面布局 39
2.3.2 控件设计实现 39
2.3.3 主要代码功能分析 43
2.4 关键知识点解析 49
2.4.1 ListView控件的用法 49
2.4.2 自定义适配器 52
2.4.3 GridView控件的用法 57
2.4.4 ViewPager控件的用法 57
2.4.5 ListView中存在按钮时导致ListItem点击无效的解决方案 60
2.5 问题与讨论 60
项目3 天天爱读书手机阅读器 61
3.1 总体设计 61
3.1.1 功能模块框图 62
3.1.2 系统流程图 62
3.1.3 界面设计 63
3.2 详细设计 63
3.2.1 模块描述 63
3.2.2 系统包及其资源规划 64
3.2.3 主要方法流程设计 66
3.3 代码实现 67
3.3.1 显示界面布局 67
3.3.2 Touch事件方法实现 68
3.4 关键知识点解析 69
3.4.1 Android的Touch事件处理机制 69
3.4.2 掌握自定义控件 70
3.5 问题与讨论 73
项目4 基于本地图库的图片应用—幻彩手机相册 74
4.1 总体设计 74
4.1.1 功能模块框图 74
4.1.2 系统流程图 74
4.1.3 界面设计 76
4.2 详细设计 76
4.2.1 模块描述 76
4.2.2 系统包及其资源规划 77
4.2.3 主要方法流程设计 80
4.3 代码实现 81
4.3.1 显示界面布局 81
4.3.2 读取手机图库方法实现 82
4.3.3 图片方向的判断 83
4.3.4 图片压缩 84
4.3.5 使用Android提供的媒体播放器
(MediaPlayer) 85
4.4 关键知识点解析 87
4.4.1 图片加载到内存OOM 87
4.4.2 大量图片的缓存处理 89
4.5 问题与讨论 90
项目5 学习监督器 91
5.1 总体设计 91
5.1.1 总体分析 91
5.1.2 功能模块框图 91
5.1.3 系统流程图 92
5.1.4 界面设计 92
5.2 详细设计 94
5.2.1 系统包及其资源规划 94
5.2.2 时间设置Activity设计 94
5.2.3 后台服务设计 95
5.3 代码实现 96
5.3.1 显示界面布局 96
5.3.2 构建一个服务 97
5.3.3 创建启动服务 99
5.3.4 监控网络变化 102
5.3.5 时间比较 103
5.3.6 创建绑定的服务 104
5.3.7 使用Activity作为Dialog 105
5.4 关键知识点解析 106
5.4.1 在前台运行服务 106
5.4.2 服务的生命周期 106
5.4.3 避免系统回收服务 107
5.5 问题与讨论 108
项目6 简易网络音乐播放器 109
6.1 总体设计 109
6.1.1 总体分析 109
6.1.2 功能模块框图 110
6.1.3 系统流程图 110
6.1.4 界面设计 110
6.2 详细设计 111
6.2.1 模块描述 111
6.2.2 系统包及其资源规划 113
6.2.3 主要方法流程设计 115
6.3 代码实现 115
6.3.1 显示界面布局 115
6.3.2 HttpURLConnection网络通信方法
实现 116
6.3.3 XML数据解析方法实现 117
6.4 关键知识点解析 118
6.4.1 AsyncTask(异步任务)的使用 118
6.4.2 HttpClient、HttpURLConnection、okHttp和Volley的网络通信对比 119
6.4.3 HttpClient和HttpURLConnection的使用方法 120
6.5 问题与讨论 122
项目7 新闻客户端 123
7.1 总体设计 123
7.1.1 功能模块框图 123
7.1.2 系统流程图 124
7.1.3 界面设计 124
7.2 详细设计 125
7.2.1 模块描述 125
7.2.2 系统包及其资源规划 126
7.2.3 主要方法流程设计 128
7.3 代码实现 129
7.3.1 显示界面布局 129
7.3.2 RSS内容读取方法实现 130
7.3.3 利用WebView显示HTML页面 133
7.3.4 利用ViewHolder优化AdapterView 133
7.3.5 Fragment的简单使用方法(FragmentStatePagerAdapter) 134
7.3.6 菜单的使用技巧(ActionBar) 135
7.4 关键知识点解析 135
7.4.1 用户体验 135
7.4.2 RSS阅读器实现 136
7.4.3 深入理解XML数据格式 139
7.5 问题与讨论 145
项目8 基于网络通信的天气应用—
天气预报(二) 146
8.1 总体设计 146
8.1.1 总体分析 146
8.1.2 功能模块框图 147
8.1.3 系统流程图 147
8.1.4 界面设计 147
8.2 详细设计 148
8.2.1 模块描述 148
8.2.2 系统包及其资源规划 150
8.2.3 主要方法流程设计 152
8.3 代码实现 153
8.3.1 显示界面布局 153
8.3.2 控件设计实现 153
8.3.3 天气预报接口方法实现 153
8.4 关键知识点解析 155
8.4.1. 在程序中使用天气预报接口 155
8.4.2 采用MQTT协议实现Android推送 158
8.5 问题与讨论 167
项目9 商务通讯录 168
9.1 总体设计 168
9.1.1 总体分析 168
9.1.2 功能模块框图 168
9.1.3 系统流程图 169
9.1.4 界面设计 169
9.2 详细设计 170
9.2.1 模块描述 170
9.2.2 系统包及其资源规划 172
9.2.3 主要方法流程设计 173
9.3 代码实现 175
9.3.1 显示界面布局 175
9.3.2 控件设计实现 176
9.3.3 监听手机来电服务 179
9.3.4 挂断电话 180
9.4 关键知识点解析 182
9.4.1 进程通信—AIDL的使用 182
9.4.2 双卡双待手机如何获取来电 186
9.5 问题与讨论 187
项目10 蓝牙打印机 188
10.1 总体设计 188
10.1.1 总体分析 188
10.1.2 功能模块框图 188
10.1.3 系统流程图 189
10.1.4 界面设计 189
10.2 详细设计 190
10.2.1 模块描述 190
10.2.2 系统包及其资源规划 192
10.2.3 主要方法流程设计 194
10.3 代码实现 195
10.3.1 显示界面布局 195
10.3.2 控件设计实现 197
10.3.3 获取图片分享 201
10.3.4 蓝牙设备和设置可见时间 203
10.3.5 搜索蓝牙设备 203
10.3.6 连接蓝牙设备 204
10.3.7 蓝牙通信 205
10.4 关键知识点解析 206
10.4.1 静默开启蓝牙 206
10.4.2 蓝牙自动配对 207
10.5 问题与讨论 209
项目11 基于Socket的Bmop即时通信 210
11.1 总体设计 210
11.1.1 总体分析 210
11.1.2 功能模块框图 210
11.1.3 系统流程图 211
11.1.4 界面设计 211
11.2 详细设计 212
11.2.1 模块描述 212
11.2.2 系统包及其资源规划 213
11.2.3 主要方法流程设计 216
11.3 代码实现 217
11.3.1 显示界面布局 217
11.3.2 控件设计实现 219
11.3.3 Socket线程 227
11.3.4 待发消息队列 228
11.3.5 消息接收 229
11.4 关键知识点解析 233
11.4.1 Socket定义 233
11.4.2 Socket与HTTP对比 233
11.4.3 使用UDP协议通信 233
11.5 问题与讨论 234
项目12 易行打车 235
12.1 总体设计 235
12.1.1 总体分析 235
12.1.2 功能模块框图 235
12.1.3 系统流程图 236
12.1.4 界面设计 236
12.2 详细设计 237
12.2.1 模块描述 237
12.2.2 系统包及其资源规划 238
12.2.3 主要方法流程设计 241
12.3 代码实现 242
12.3.1 显示界面布局 242
12.3.2 控件设计实现 244
12.3.3 申请百度地图API Key 250
12.3.4 初始化定位 251
12.3.5 定位监听 251
12.3.6 初始化地图View 252
12.3.7 显示位置信息 252
12.3.8 获取当前屏幕的经纬度范围 253
12.3.9 增加多个标注并监听 253
12.4 关键知识点解析 255
12.4.1 在线更新 255
12.4.2 Android的四种定位方式 260
12.5 问题与讨论 262
- Linux系统管理(openEuler版) [主编 许兴鹍 黄君羡]
- Web前端开发从学到用完美实践 [阮晓龙 冯顺磊 编著]
- 用英语讲中国故事(全视频 彩色版)上、下册 [主编 谢亮亮 汪洋]
- 新时代大学生美育教育 [穆林 刘苍劲 彭圣芳]
- 电子商务英语 [丁文毅 严慧]
- 智能可穿戴项目化教程 [曾文波 陈赵云]
- 视觉设计解析与实战教程 [姜春磊 杨晓]
- 电子产品制图与制版案例教程 [邹莉莉 苏文斌 贺小艳]
- 设计新维度:CMF元素与创新产品设计 [彭小鹏]
- 园林树木识别与应用 [主编 张玉泉]
- 文本信息处理与应用 [主编 何黎松 姚香秀]
- 工业机器人编程及应用(第二版) [主编 向艳芳 胡月霞]
- C语言程序设计(第二版) [主编 刘祖珉 赵仕波]
- 数据分析与应用 [主编 孙伟 王兰芹]
- Linux操作系统配置与管理项目化教程(第二版) [主编 白玉羚 刘金明 闫 淼]
- Ansys SpaceClaim直接建模与仿真指南 [蔡宜时 编著]
- 基于大数据的智慧农业管理平台关键技术研究与实践 [周永福 著]
- 健美运动 [戴显岩]
- Python程序开发基础(AI+微课版) [赵艳莉 曾鑫]
- 大学生心理困境突围之路 [张珏 著]
- 机器学习基础与实践 [主编 李晓峰 胥文婷 李云波]
- 大模型应用实战 DeepSeek+即梦AI+剪映重塑创作 [丁红 杨彦彦 丁丁 编著]
- HarmonyOS从入门到精通 [陈赵云 周永福 杨 浪]
- 用英语发现世界:欧美文化篇 [李小丽 张薇 编著]
- 大学体育教程 [戴显岩]
- 新一代信息技术 [李佼辉 任雪冬]
- 轨道交通类专门用途英语教程 [李德华主编 商晔副主编]
- 建设工程项目团队知识异质性对团队绩效的影响研究 [胡可]
- 新时代元阳梯田 云南现代化高原立体灌区 前世 今生 未来 [云南省水利水电勘测设计研究院 ]
- 网络工程师章节习题与考点特训(适配第6版考纲) [夏杰 编著]

