Android App开发进阶与项目实战
¥
83.85
6.5折
¥
129
全新
库存18件
作者欧阳燊
出版社清华大学出版社有限公司
ISBN9787302592594
出版时间2020-01
装帧平装
开本16开
定价129元
货号11292286
上书时间2024-12-17
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
欧阳燊 ,有16年以上软件开发经验,熟悉C/C++、Java及相关软件架构,7年以上Android开发经验,目前任职于某移动通信公司,从事Android项目开发。已出版畅销书《Android Studio开发实战:从零基础到App上线》《Kotlin从零到精通Android开发》《好好学Java从零基础到项目实战》。
目录
目 录
第1章 图像加工 1
1.1 图像装饰 1
1.1.1 卡片视图 1
1.1.2 给图像添加装饰 3
1.1.3 给图像添加水波特效 6
1.2 位图加工 8
1.2.1 转换位图的像素色彩 8
1.2.2 裁剪位图内部区域 10
1.2.3 利用矩阵变换位图 12
1.3 自定义图形 14
1.3.1 位图与图形互转 14
1.3.2 剪裁图形内部区域 15
1.3.3 给图形添加小部件 17
1.4 实战项目:青葱岁月之可爱大头贴 20
1.4.1 需求描述 20
1.4.2 功能分析 20
1.4.3 效果展示 22
1.5 小结 23
1.6 动手练习 23
第2章 事件交互 24
2.1 按键事件 24
2.1.1 检测软键盘 24
2.1.2 检测物理按键 26
2.1.3 接管返回按键 27
2.2 触摸事件 29
2.2.1 手势事件的分发流程 29
2.2.2 接管手势事件处理 33
2.2.3 跟踪滑动轨迹实现手写签名 36
2.3 根据触摸行为辨别手势动作 38
2.3.1 区分点击和长按动作 38
2.3.2 识别手势滑动的方向 40
2.3.3 辨别缩放与旋转手势 42
2.4 手势冲突处理 46
2.4.1 上下滚动与左右滑动的冲突处理 46
2.4.2 内部滑动与翻页滑动的冲突处理 49
2.4.3 正常下拉与下拉刷新的冲突处理 53
2.5 实战项目:仿美图秀秀的抠图工具 56
2.5.1 需求描述 56
2.5.2 功能分析 57
2.5.3 效果展示 58
2.6 小结 59
2.7 动手练习 59
第3章 动画特效 60
3.1 帧动画 60
3.1.1 帧动画的实现 60
3.1.2 显示动图特效 62
3.1.3 淡入淡出动画 66
3.2 补间动画 67
3.2.1 补间动画的种类 67
3.2.2 补间动画的原理 72
3.2.3 集合动画 74
3.3 属性动画 76
3.3.1 常规的属性动画 76
3.3.2 属性动画组合 78
3.3.3 插值器和估值器 80
3.3.4 利用估值器实现弹幕动画 83
3.4 遮罩动画及滚动器 86
3.4.1 画布的绘图层次 86
3.4.2 实现百叶窗动画 90
3.4.3 利用滚动器实现平滑翻页 94
3.5 实战项目:仿手机QQ的动感影集 97
3.5.1 需求描述 98
3.5.2 功能分析 99
3.5.3 效果展示 102
3.6 小结 104
3.7 动手练习 104
第4章 手机阅读 105
4.1 贝塞尔曲线 105
4.1.1 贝塞尔曲线的原理 105
4.1.2 实现波浪起伏动画 107
4.1.3 实现给主播刷礼物的特效 108
4.2 浏览PDF文件 111
4.2.1 PDF文件渲染器 111
4.2.2 实现平滑翻书效果 113
4.2.3 实现卷曲翻书动画 116
4.3 JNI开发 122
4.3.1 NDK环境搭建 122
4.3.2 创建JNI接口 125
4.3.3 JNI实现加解密 128
4.3.4 采取CMake编译方式 132
4.4 实战项目:笔墨飘香之电子书架 134
4.4.1 需求描述 134
4.4.2 功能分析 136
4.4.3 效果展示 139
4.5 小结 141
4.6 动手练习 141
第5章 三维处理 142
5.1 OpenGL 142
5.1.1 三维投影 142
5.1.2 轮廓勾勒 147
5.1.3 纹理贴图 152
5.2 OpenGL ES 155
5.2.1 着色器小程序 155
5.2.2 通过矩阵变换调整视角 160
5.2.3 给三维物体贴图 163
5.3 Vulkan 166
5.3.1 下一代OpenGL——Vulkan 166
5.3.2 简单的Vulkan例子 167
5.3.3 Vulkan的实战应用 169
5.4 实战项目:虚拟现实的全景相册 171
5.4.1 需求描述 171
5.4.2 功能分析 172
5.4.3 效果展示 176
5.5 小结 177
5.6 动手练习 177
第6章 网络通信 178
6.1 多线程 178
6.1.1 通过runOnUiThread快速操纵界面 178
6.1.2 利用线程池Executor调度异步任务 181
6.1.3 工作管理器WorkManager 183
6.2 HTTP访问 186
6.2.1 通过okhttp调用HTTP接口 187
6.2.2 使用okhttp下载和上传文件 191
6.2.3 实现下拉刷新和上拉加载 196
6.3 即时通信 200
6.3.1 通过SocketIO传输文本消息 200
6.3.2 通过SocketIO传输图片消息 203
6.3.3 利用WebSocket传输消息 206
6.4 实战项目:仿微信的私聊和群聊 209
6.4.1 需求描述 209
6.4.2 功能分析 211
6.4.3 效果展示 217
6.5 小结 221
6.6 动手练习 221
第7章 音韵留声 222
7.1 音量调节 222
7.1.1 拖动条和滑动条 222
7.1.2 音频管理器 225
7.1.3 音量调节对话框 226
7.2 音频录播 230
7.2.1 普通音频的录播 230
7.2.2 原始音频的录播 235
7.2.3 自定义音频控制条 238
7.3 音效增强 244
7.3.1 铃声播放 244
7.3.2 声音池调度 246
7.3.3 录制WAV音频 249
7.3.4 录制MP3音频 253
7.4 实战项目:仿喜马拉雅的听说书 257
7.4.1 需求描述 257
7.4.2 功能分析 259
7.4.3 效果展示 262
7.5 小结 265
7.6 动手练习 265
第8章 影像记录 266
8.1 经典相机 266
8.1.1 表面视图和纹理视图 266
8.1.2 使用经典相机拍照 268
8.1.3 使用经典相机录像 273
8.1.4 自定义视频控制条 276
8.2 二代相机 279
8.2.1 使用二代相机拍照 280
8.2.2 使用二代相机录像 286
8.2.3 新型播放器ExoPlayer 290
8.3 画面截取 294
8.3.1 截取视频的某帧 294
8.3.2 自定义悬浮窗 296
8.3.3 对屏幕画面截图 301
8.4 实战项目:仿抖音的短视频分享 305
8.4.1 需求描述 305
8.4.2 功能分析 308
8.4.3 效果展示 311
8.5 小结 313
8.6 动手练习 313
第9章 定位导航 314
9.1 基础定位 314
9.1.1 开启定位功能 314
9.1.2 获取定位信息 316
9.1.3 根据经纬度查找详细地址 321
9.2 扩展定位 323
9.2.1 获取照片里的位置信息 323
9.2.2 全球卫星导航系统 327
9.2.3 室内WiFi定位 330
9.3 地图导航 336
9.3.1 集成腾讯地图 336
9.3.2 显示地图面板 339
9.3.3 获取地点信息 341
9.3.4 规划导航路线 343
9.4 实战项目:仿微信的附近的人 347
9.4.1 需求描述 347
9.4.2 功能分析 349
9.4.3 效果展示 352
9.5 小结 355
9.6 动手练习 355
第10章 物联网 356
10.1 传感器 356
10.1.1 传感器的种类 356
10.1.2 摇一摇—加速度传感器 358
10.1.3 指南针—磁场传感器 360
10.1.4 计步器、感光器和陀螺仪 362
10.2 传统蓝牙 365
10.2.1 蓝牙设备配对 365
10.2.2 蓝牙音频传输 371
10.2.3 点对点蓝牙通信 374
10.3 低功耗蓝牙 381
10.3.1 扫描BLE设备 381
10.3.2 发送BLE广播 387
10.3.3 通过主从BLE实现聊天应用 390
10.4 实战项目:自动驾驶的智能小车 397
10.4.1 需求描述 397
10.4.2 功能分析 397
10.4.3 效果展示 401
10.5 小结 403
10.6 动手练习 403
第11章 智能语音 404
11.1 原生语音处理 404
11.1.1 系统自带的语音引擎 404
11.1.2 文字转语音 406
11.1.3 原生的语音识别 409
11.2 在线语音处理 411
11.2.1 中文转拼音 411
11.2.2 在线语音合成 414
11.2.3 在线语音识别 417
11.3 基于机器学习的语音推断 421
11.3.1 TensorFlow简介 422
11.3.2 TensorFlow Lite 423
11.3.3 从语音中识别指令 425
11.4 实战项目:你问我答之小小机器人 426
11.4.1 需求描述 426
11.4.2 功能分析 427
11.4.3 效果展示 433
11.5 小结 437
11.6 动手练习 437
第12章 人脸识别 438
12.1 简单图像识别 438
12.1.1 自动识别验证码 438
12.1.2 生成二维码图片 442
12.1.3 扫描识别二维码 444
12.2 基于计算机视觉的人脸识别 449
12.2.1 检测图像中的人脸 449
12.2.2 OpenCV简介及其集成 452
12.2.3 利用OpenCV检测人脸 454
12.3 人脸识别的更多应用 457
12.3.1 借助摄像头实时检测人脸 457
12.3.2 比较两张人脸的相似程度 460
12.3.3 根据人脸估算性别和年龄 463
12.4 实战项目:寻人神器之智慧天眼 466
12.4.1 需求描述 467
12.4.2 功能分析 467
12.4.3 效果展示 470
12.5 小结 471
12.6 动手练习 472
第13章 在线直播 473
13.1 搭建WebRTC的服务端 473
13.1.1 WebRTC的系统架构 473
13.1.2 搭建信令服务器 475
13.1.3 搭建穿透服务器 477
13.2 给App集成WebRTC 480
13.2.1 引入WebRTC开源库 480
13.2.2 实现WebRTC的发起方 484
13.2.3 实现WebRTC的接收方 487
13.3 实战项目:仿微信的视频通话 489
13.3.1 需求描述 490
13.3.2 功能分析 491
13.3.3 效果展示 495
13.4 实战项目:仿拼多多的直播带货 497
13.4.1 需求描述 497
13.4.2 功能分析 498
13.4.3 效果展示 504
13.5 小结 507
13.6 动手练习 507
附录A 移动互联网行业的新技术发展简表 508
附录B Android各版本的新增功能简表 510
附录C Android常用开发库说明简表 512
附录D 移动开发专业术语索引 514
附录E 本书的服务端程序说明 517
内容摘要
本书是一部Android开发的进阶实战教程,由点及面、由原理到实战,带领读者一步一步深入探索App开发的神奇世界。全书共分为13章。其中,前5章是单机部分,主要讲解App的图像加工、事件交互、动画、手机阅读、三维处理等App开发的不错进阶;中间4章是联网部分,主要讲解App的网络通信、音频处理、视频处理、定位导航等网络交互的不错进阶;后4章涉及人工智能方面的内容,主要讲解物联网、智能语音、人脸识别、在线直播等智能化应用进阶。书中在讲解知识点的同时给出了大量实战范例,各章末尾都提供了精心设计的实战项目(共14个),所有实战项目都提供了完整的源码,方便读者迅速将所学的知识运用到实际开发中。这14个流行App是可爱大头贴、抠图工具、动感影集、电子书架、全景相册、即时聊天、长音频分享、短视频分享、附近交友、智能小车、问答机器人、智慧天眼、视频通话、直播带货。另外,本书还讲解了扫一扫、摇一摇、指南针、地球仪、卫星浑天仪等趣味应用。本书既适合Android开发的广大从业者、有志于转型App开发的程序员、App开发的业余爱好者阅读,也可作为大中专院校与培训机构的Android开发课程的教材。
主编推荐
"十几年来,手机App从早期的通信、拍照、上网等基本功能,到即时通信、电子商务、地图导航等不错功能,再到智能语音、人脸识别、视频通话等近期新应用,以Android为代表的App开发热潮方兴未艾。物联网、虚拟现实、人工智能几个方向更是火热,最近几年涌现的新技术层出不穷,诸如OpenGL ES、OpenCV、WebSocket、WebRTC、低功耗蓝牙、TensorFlow Lite等不断推陈出新。 新技术的发展如此迅猛,就要求开发者时刻关注技术发展趋势,并努力学习加以应用。也正是因为新技术的迭代速度太快,技术书籍往往无法及时跟上。目前市面上有关App进阶的书籍为数不多,特别是新技术的实战类书籍。掌握新技术已经很不容易了,还要把新技术应用于实战项目更是难上加难。尽管存在种种挑战和困难,本书仍然引入并介绍这些新技术,包括OpenGL ES、OpenCV、WebSocket、WebRTC、低功耗蓝牙、TensorFlow Lite等,力图给广大开发者呈现相关新技术的实战前景。 全书按照知识点分门别类,共分为13章。其中,前5章是单机部分,主要讲解App的图像加工、事件交互、动画、手机阅读、三维处理等单个App的不错进阶,侧重于控件美化、操控优化、动感界面、虚拟现实等功能实现;中间4章是联网部分,主要讲解App的网络通信、音频处理、视频处理、定位导航等网络交互的不错进阶,侧重于图文分享、音频分享、视频分享、位置分享等功能实现;后4章涉及人工智能方面的内容,主要讲解物联网、智能语音、人脸识别、在线直播等智能化应用进阶,侧重于无线遥控、机器听觉、机器视觉、实时音视频等功能实现。 书中在讲解知识点的同时给出了大量实战范例,各章末尾都提供了精心设计的实战项目(一共14个App实战项目),方便读者迅速将所学的知识运用到实际开发中。通过本书的学习,读者可以参照源码来掌握这14个流行App的开发技术,这14个App是可爱大头贴、抠图工具、动感影集、电子书架、全景相册、即时聊天、长音频分享、短视频分享、附近交友、智能小车、问答机器人、智慧天眼、视频通话、直播带货。另外,本书还讲解了扫一扫、摇一摇、指南针、地球仪、卫星浑天仪等趣味应用的开发。 对于进阶实战图书来说,不光技术要新、工具要新,还要看得懂、学得会,能够真正在开发工作中学以致用。为此,本书致力于提供下列服务: 随书提供包括实战项目在内的所有客户端源码,以及与之配套的服务端源码。 书中的代码片段都添加了详尽的中文注释,乃至配图都尽可能标上中文说明,方便读者快速理解技术细节。 各章末尾列出了若干动手练习题,帮助读者及时检查自己的学习成果。 书后增列了附录A至附录E,从新技术时间线,到Android各版本适配,再到名词术语索引,可当作技术字典翻阅。 随书提供PPT教学课件,既有利于教学开展,也有利于自学巩固。 本书的主要代码采用Java 8编写,其中客户端的App代码基于Android Studio 4.2开发,并使用API 30的SDK(Android 11)编译与调试通过;配套的服务端源码采用Java Web框架,结合MySQL数据库,并基于IDEA开发。"
精彩内容
本书是一部Android开发的进阶实战教程,由点及面、由原理到实战,带领读者一步一步深入探索App开发的神奇世界。全书共分为13章。其中,前5章是单机部分,主要讲解App的图像加工、事件交互、动画特效、手机阅读、三维处理等App开发的高级进阶;中间4章是联网部分,主要讲解App的网络通信、音频处理、视频处理、定位导航等网络交互的高级进阶;后4章涉及人工智能方面的内容,主要讲解物联网、智能语音、人脸识别、在线直播等智能化应用进阶。书中在讲解知识点的同时给出了大量实战范例,各章末尾都提供了精心设计的实战项目(共14个),所有实战项目都提供了完整的源码,方便读者迅速将所学的知识运用到实际开发中。这14个流行App是可爱大头贴、抠图工具、动感影集、电子书架、全景相册、即时聊天、长音频分享、短视频分享、附近交友、智能小车、问答机器人、智慧天眼、视频通话、直播带货。另外,本书还讲解了扫一扫、摇一摇、指南针、地球仪、卫星浑天仪等趣味应用。
本书既适合Android开发的广大从业者、有志于转型App开发的程序员、App开发的业余爱好者阅读,也可作为大中专院校与培训机构的Android开发课程的教材。
媒体评论
十几年来,手机App从早期的通信、拍照、上网等基本功能,到即时通信、电子商务、地图导航等高级功能,再到智能语音、人脸识别、视频通话等最新应用,以Android为代表的App开发热潮方兴未艾。物联网、虚拟现实、人工智能几个方向更是火热,最近几年涌现的新技术层出不穷,诸如OpenGL ES、OpenCV、WebSocket、WebRTC、低功耗蓝牙、TensorFlow Lite等不断推陈出新。
新技术的发展如此迅猛,就要求开发者时刻关注技术发展趋势,并努力学习加以应用。也正是因为新技术的迭代速度太快,技术书籍往往无法及时跟上。目前市面上有关App进阶的书籍为数不多,特别是新技术的实战类书籍。掌握新技术已经很不容易了,还要把新技术应用于实战项目更是难上加难。尽管存在种种挑战和困难,本书仍然引入并介绍这些新技术,包括OpenGL ES、OpenCV、WebSocket、WebRTC、低功耗蓝牙、TensorFlow Lite等,力图给广大开发者呈现相关新技术的实战前景。
全书按照知识点分门别类,共分为13章。其中,前5章是单机部分,主要讲解App的图像加工、事件交互、动画特效、手机阅读、三维处理等单个App的高级进阶,侧重于控件美化、操控优化、动感界面、虚拟现实等功能实现;中间4章是联网部分,主要讲解App的网络通信、音频处理、视频处理、定位导航等网络交互的高级进阶,侧重于图文分享、音频分享、视频分享、位置分享等功能实现;后4章涉及人工智能方面的内容,主要讲解物联网、智能语音、人脸识别、在线直播等智能化应用进阶,侧重于无线遥控、机器听觉、机器视觉、实时音视频等功能实现。
书中在讲解知识点的同时给出了大量实战范例,各章末尾都提供了精心设计的实战项目(一共14个App实战项目),方便读者迅速将所学的知识运用到实际开发中。通过本书的学习,读者可以参照源码来掌握这14个流行App的开发技术,这14个App是可爱大头贴、抠图工具、动感影集、电子书架、全景相册、即时聊天、长音频分享、短视频分享、附近交友、智能小车、问答机器人、智慧天眼、视频通话、直播带货。另外,本书还讲解了扫一扫、摇一摇、指南针、地球仪、卫星浑天仪等趣味应用的开发。
对于进阶实战图书来说,不光技术要新、工具要新,还要看得懂、学得会,能够真正在开发工作中学以致用。为此,本书致力于提供下列服务: 随书提供包括实战项目在内的所有客户端源码,以及与之配套的服务端源码。
书中的代码片段都添加了详尽的中文注释,乃至配图都尽可能标上中文说明,方便读者快速理解技术细节。
各章末尾列出了若干动手练习题,帮助读者及时检查自己的学习成果。
书后增列了附录A至附录E,从新技术时间线,到Android各版本适配,再到名词术语索引,可当作技术字典翻阅。
随书提供PPT教学课件,既有利于教学开展,也有利于自学巩固。
本书的主要代码采用Java 8编写,其中客户端的App代码基于Android Studio 4.2开发,并使用API 30的SDK(Android 11)编译与调试通过;配套的服务端源码采用Java Web框架,结合MySQL数据库,并基于IDEA开发。
Android“老司机”带你玩转人工智能时代的App开发
— 没有更多了 —
以下为对购买帮助不大的评价