本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
图书基本信息 | |
图书名称 | Android App开发进阶与项目实战 |
作者 | 欧阳燊 |
定价 | 129元 |
出版社 | 清华大学出版社 |
ISBN | 9787302592594 |
出版日期 | 2021-11-01 |
字数 | |
页码 | |
版次 | |
装帧 | 平装 |
开本 | 16开 |
商品重量 |
内容提要 | |
本书是一部Android开发的进阶实战教程,由点及面、由原理到实战,带领读者一步一步深入探索App开发的神奇世界。全书共分为13章。其中,前5章是单机部分,主要讲解App的图像加工、事件交互、动画特效、手机阅读、三维处理等App开发的高级进阶;中间4章是联网部分,主要讲解App的网络通信、音频处理、视频处理、定位导航等网络交互的高级进阶;后4章涉及人工智能方面的内容,主要讲解物联网、智能语音、人脸识别、在线直播等智能化应用进阶。书中在讲解知识点的同时给出了大量实战范例,各章末尾都提供了精心设计的实战项目(共14个),所有实战项目都提供了完整的源码,方便读者迅速将所学的知识运用到实际开发中。这14个流行App是可爱大头贴、抠图工具、动感影集、电子书架、全景相册、即时聊天、长音频分享、短视频分享、附近交友、智能小车、问答机器人、智慧天眼、视频通话、直播带货。另外,本书还讲解了扫一扫、摇一摇、指南针、地球仪、卫星浑天仪等趣味应用。本书既适合Android开发的广大从业者、有志于转型App开发的程序员、App开发的业余爱好者阅读,也可作为大中专院校与培训机构的Android开发课程的教材。 |
目录 | |
章图像加工 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利用滚动器实现ping滑翻页 94 3.5实战项目:仿手机的动感影集 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.1PDF文件渲染器 111 4.2.2实现ping滑翻书效果 113 4.2.3实现卷曲翻书动画 116 4.3JNI开发 122 4.3.1NDK环境搭建 122 4.3.2创建JNI接口 125 4.3.3JNI实现加解密 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.1OpenGL 142 5.1.1三维投影 142 5.1.2轮廓勾勒 147 5.1.3纹理贴图 152 5.2OpenGLES 155 5.2.1着色器小程序 155 5.2.2通过矩阵变换调整视角 160 5.2.3给三维物体贴图 163 5.3Vulkan 166 5.3.1下一代OpenGL——Vulkan 166 5.3.2简单的Vulkan例子 167 5.3.3Vulkan的实战应用 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访问 186 6.2.1通过ok调用接口 187 6.2.2使用ok下载和上传文件 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 0章物联网 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 1章智能语音 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.1TensorFlow简介 422 11.3.2TensorFlowLite 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 2章人脸识别 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.2OpenCV简介及其集成 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 3章在线直播 473 13.1搭建WebRTC的服务端 473 13.1.1WebRTC的系统架构 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 附录BAndroid各版本的新增功能简表 510 附录CAndroid常用开发库说明简表 512 附录D移动开发专业术语索引 514 附录E本书的服务端程序说明 517 |