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
- 零基础玩转国产大模型DeepSeek [徐永冰 张帅 编著]
- 网络工程师5天修炼(适配第6版考纲) [主编 朱小平 施游]
- 信息系统项目管理师考试32小时通关(适用第4版考纲) [薛大龙]
- 信息系统管理工程师考试32小时通关(适配第2版考纲) [薛大龙 刘伟]
- 土木工程材料检测实训 [洪晓江 达则晓丽 钱波]
- 科技信息检索与论文写作实用教程 [李振华]
- 传统山水画论解读与实践 [陈钠 著]
- Python数据库编程 [主编 殷树友 邢 翀]
- 计算机基础实训指导 [主编 袁春萍 朱妮]
- 嵌入式人工智能技术应用(数字教材) [主编 胡娜 杨国勇 晏廷荣]
- Vienna整流器技术 [桂存兵 著]
- 变频器与伺服应用 [陈刚 叶云飞]
- 物联网工程设计与实践 [汤琳 李敏]
- 炉边夜话——深入浅出话AI [汪建 著]
- 电商运营与管理 [钟肖英 陈潇]
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- 信息技术基础(Windows 10+WPS Office)(微课版) [主编 石利平 田辉平 谢盛嘉]
- 人工智能应用 [主编 陈 萍 刘培培 陈孟军]
- 大学生职业发展与就业指导 [主编 刘志坚]
- 高级办公应用项目教程 [主编 屈晶 赵成丽]
- 微信小程序开发项目实战(微课版) [主编 黄龙泉 郭峰 朱倩]
- 企业档案工作实战宝典百问百答 [华俊 卢秀英 邵甜甜 著]
- 计算机网络原理及应用 [主编 唐继勇 叶坤 孙梦娜]
- 大学生创业基础 [主编 王丽莉 王 杨]
- 船舶辅机 [主编 王连海 于洋 姜淑翠]
- 大学生就业指导 [主编 王丽莉 董宴廷]
- 系统架构设计师章节习题与考点特训 [主编 薛大龙 邹月平]
- 高校学生工作探索与实践 [郭亮 著]
- 大学生情商管理 [方雄 著]
- 2023年长沙市会展业发展报告 [主编 周栋良]