| 作者 |
| 马玉春展晓凯 魏晓红 |
| 丛书名 |
| 高等学校计算机专业规划教材 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781910141443 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------Android开发与应用--------------------------- 本书介绍了Android的常用技术,包括基本概念、架构、常用控件、编程方法,并通过大量的案例讲解具体的开发过程,使学生在工程实践过程中掌握Android的开发技术与方法。第一部分介绍Android编程基础与技巧。第二部分基于作者开发的软件项目整理出的实用案例,进行讲解和分析,涉及Android各个功能的应用。第三部分通过一个真实的综合实例讲解Android的项目开发过程。本书可以作为高校理工科相关专业学生的Android程序设计教材和相关实践课程的参考书。 ---------------------------音视频开发进阶指南:基于Android与iOS平台的实践--------------------------- 本书采用从零开始,逐级深入的方式写作,以项目实战为阶段性目标,外加实际生产环境下的特殊案例作为优化方案,让读者可以全方位掌握移动平台下音视频开发的大部分内容。首先介绍实现视频播放器和录制需要的基础知识,然后通过案例讲解如何实现视频播放器和一个视频录制的应用。但是一款录制的应用,要想上线,其实还要进行给音频视频美化,所以在提高篇,介绍了相应的内容,并给出了一个实际生产环境中的案例,之后,指导读者进阶,把前面学到的基础内容应用到直播中。后,给出排错方法和工具,和大家分享如何更有效率地开发应用程序。 |
| 目录 |
---------------------------Android开发与应用--------------------------- 前言 第1章 开发环境搭建与应用入门1 1.1 搭建开发环境1 1.2 创建虚拟设备2 1.3 第一个应用程序3 1.4 工作空间与相关文件4 1.5 程序的调试方法8 1.6 本章小结10 第一部分 编程基础与技巧 第2章 常用开发组件12 2.1 常见属性12 2.2 EditText组件与菜单13 2.3 Button组件17 2.4 ToggleButton组件20 2.5 CheckBox组件22 2.6 RadioButton组件24 2.7 Spinner组件26 2.8 ListView组件29 2.9 Switch组件33 2.10 DatePicker组件36 2.11 AlertDialog组件37 2.12 本章小结45 第3章 常用技术46 3.1 进一步了解Activity46 3.2 绘图47 3.3 用静态库函数设置手机情景模式和音量51 3.4 播放音频55 3.5 利用消息机制处理后退键56 3.6 利用多线程和消息机制获取IP地址59 3.7 定时功能的实现62 3.8 SQLite与自定义ListView64 3.9 查询联系人74 3.10 使用SharedPreferences对象存储数据80 3.11 内部文本文件存取85 3.12 百度地图86 3.13 本章小结91 第4章 Intent的综合应用92 4.1 Intent的基础知识92 4.2 在Activity之间传递数据94 4.3 状态栏通知98 4.4 广播接收器与开机自动启动99 4.5 显示来电和接收短信101 4.6 带回执的短信发送105 4.7 服务的基础知识108 4.8 启动服务的实现110 4.9 绑定服务的实现115 4.10 本章小结117 第二部分 实用案例分析 第5章 课堂随机点名软件120 5.1 主要功能和技术特点120 5.2 软件操作120 5.3 界面布局与资源说明121 5.3.1 字符串定义文件121 5.3.2 菜单项定义文件121 5.3.3 颜色定义文件122 5.3.4 自定义对话框布局文件122 5.3.5 ListView列表布局文件123 5.3.6 版权窗体布局文件124 5.3.7 主窗体布局文件124 5.4 配置文件126 5.5 主窗体源代码127 5.6 本章小结135 第6章 简易英语学习软件136 6.1 主要功能和技术特点136 6.2 软件操作136 6.3 界面布局与资源说明137 6.3.1 适应多屏幕的dimens文件137 6.3.2 菜单项定义文件138 6.3.3 主窗体布局文件138 6.3.4 主题设置文件140 6.4 配置文件141 6.5 与文件处理类源代码141 6.6 文本读取类源代码142 6.7 主窗体源代码144 6.8 本章小结151 第7章 通讯录备份与恢复软件152 7.1 主要功能和技术特点152 7.2 软件操作152 7.3 界面布局153 7.4 配置文件153 7.5 通讯录操作源代码154 7.6 外部文本写入源代码156 7.7 主窗体源代码156 7.8 本章小结161 第8章 服务账号登记软件162 8.1 主要功能和技术特点162 8.2 软件操作163 8.3 配置文件164 8.4 登录窗体165 8.4.1 布局文件165 8.4.2 源代码167 8.5 服务浏览窗体172 8.5.1 适配器布局文件172 8.5.2 窗体布局文件173 8.5.3 适配器源代码174 8.5.4 窗体源代码177 8.6 单位浏览窗体185 8.6.1 适配器布局文件185 8.6.2 窗体布局文件186 8.6.3 拖放阴影源代码187 8.6.4 适配器源代码188 8.6.5 窗体源代码190 8.7 单位详细信息窗体199 8.7.1 适配器布局文件199 8.7.2 窗体布局文件200 8.7.3 适配器源代码201 8.7.4 窗体源代码202 8.8 单位搜索窗体207 8.8.1 布局文件207 8.8.2 源代码208 8.9 本章小结211 第9章 地址定位及辅助服务软件212 9.1 主要功能和技术特点212 9.2 软件操作212 9.3 配置文件213 9.4 广播接收器源代码215 9.4.1 启动完成215 9.4.2 来电处理216 9.4.3 情景模式改变217 9.4.4 屏幕状态变化217 9.4.5 短信接收218 9.4.6 WiFi设置变化221 9.5 服务源代码222 9.6 适配器源代码223 9.7 窗体源代码226 9.8 本章小结229 第10章 地址查询与地图打点软件230 10.1 主要功能和技术特点230 10.2 软件操作230 10.3 配置文件231 10.4 短信接收与处理源代码232 10.5 窗体源代码233 10.6 本章小结234 第三部分 基于互联网的远程温度监测案例 第11章 数据编码与处理技术236 11.1 十六进制字符串的预处理236 11.2 字节与两个十六进制字符相互转换237 11.3 字与十六进制字符串相互转换238 11.4 字节数组与十六进制字符串相互转换238 11.5 字节数组与ByteBuffer对象相互转换239 11.6 英文字符串的多种编码方法239 11.7 适用于汉字的Unicode编码240 11.8 随机字节的生成与数字至字节数组的转换243 11.9 字节的位操作技术243 11.10 本章小结244 第12章 数据包的校验技术245 12.1 枚举类型的定义与说明245 12.2 累加和校验码的生成与检验246 12.3 异或校验码的生成与检验247 12.4 循环冗余校验码的生成与检验249 12.5 累加求补校验码的生成与检验250 12.6 结尾码的处理252 12.7 数据包的综合处理254 12.8 应用实例257 12.9 本章小结257 第13章 通用TCP客户机与服务器测试软件258 13.1 主要功能和技术特点258 13.2 软件操作258 13.3 界面布局259 13.4 配置文件264 13.5 网络处理类265 13.6 通用TCP客户机与服务器类268 13.6.1 各种声明的说明268 13.6.2 构造函数269 13.6.3 获取Socket对象与多线程的启动269 13.6.4 数据接收与发送269 13.6.5 TcpClientServer源代码270 13.7 窗体源代码275 13.8 TCP服务器的关键代码286 13.9 本章小结286 第14章 I-7013D模块仿真软件287 14.1 主要功能和技术特点287 14.2 软件操作287 14.3 界面布局288 14.4 配置文件291 14.5 窗体源代码292 14.6 本章小结298 第15章 I-7013D模块监测软件299 15.1 主要功能和技术特点299 15.2 软件操作299 15.3 配置文件300 15.4 参数设置窗体301 15.4.1 界面布局302 15.4.2 源代码304 15.5 主窗体307 15.5.1 实时温度显示组件307 15.5.2 portrait布局309 15.5.3 landscape布局311 15.5.4 源代码311 15.6 对实物模块的监控320 15.7 本章小结321 参考文献322 ---------------------------音视频开发进阶指南:基于Android与iOS平台的实践--------------------------- 推荐序一 推荐序二 前言 第1章 音视频基础概念 1 1.1 声音的物理性质 1 1.1.1 声音是波 1 1.1.2 声波的三要素 2 1.1.3 声音的传播介质 3 1.1.4 回声 3 1.1.5 共鸣 4 1.2 数字音频 4 1.3 音频编码 6 1.4 图像的物理现象 7 1.5 图像的数值表示 8 1.5.1 RGB表示方式 8 1.5.2 YUV表示方式 9 1.5.3 YUV和RGB的转化 10 1.6 视频的编码方式 10 1.6.1 视频编码 10 1.6.2 编码概念 11 1.7 本章小结 13 第2章 移动端环境搭建 14 2.1 在iOS上如何搭建一个基础项目 14 2.2 在Android上如何搭建一个基础项目 21 2.3 交叉编译的原理与实践 26 2.3.1 交叉编译的原理 26 2.3.2 iOS平台交叉编译的实践 27 2.3.3 Android平台交叉编译的实践 33 2.3.4 使用LAME编码MP3文件 38 2.4 本章小结 42 第3章 FFmpeg的介绍与使用 43 3.1 FFmpeg的编译与命令行工具的使用 43 3.1.1 FFmpeg的编译 43 3.1.2 FFmpeg命令行工具的使用 51 3.2 FFmpeg API的介绍与使用 60 3.3 FFmpeg源码结构 68 3.3.1 libavformat与libavcodec介绍 68 3.3.2 FFmpeg通用API分析 69 3.3.3 调用FFmpeg解码时用到的函数分析 70 3.3.4 调用FFmpeg编码时用到的函数分析 71 3.3.5 面向对象的C语言设计 72 3.4 本章小结 74 第4章 移动平台下的音视频渲染 75 4.1 AudioUnit介绍与实践 75 4.2 Android平台的音频渲染 84 4.2.1 AudioTrack的使用 85 4.2.2 OpenSL ES的使用 87 4.3 视频渲染 90 4.3.1 OpenGL ES介绍 90 4.3.2 OpenGL ES的实践 91 4.3.3 上下文环境搭建 98 4.3.4 OpenGL ES中的纹理 104 4.4 本章小结 109 第5章 实现一款视频播放器 110 5.1 架构设计 110 5.2 解码模块的实现 115 5.3 音频播放模块的实现 118 5.3.1 Android平台的音频渲染 118 5.3.2 iOS平台的音频渲染 119 5.4 画面播放模块的实现 121 5.4.1 Android平台的视频渲染 121 5.4.2 iOS平台的视频渲染 122 5.5 AVSync模块的实现 124 5.5.1 维护解码线程 124 5.5.2 音视频同步 125 5.6 中控系统串联起各个模块 127 5.6.1 初始化阶段 127 5.6.2 运行阶段 128 5.6.3 销毁阶段 129 5.7 本章小结 130 第6章 音视频的采集与编码 131 6.1 音频的采集 131 6.1.1 Android平台的音频采集 131 6.1.2 iOS平台的音频采集 134 6.2 视频画面的采集 137 6.2.1 Android平台的视频画面采集 137 6.2.2 iOS平台的视频画面采集 146 6.3 音频的编码 156 6.3.1 libfdk_aac编码AAC 156 6.3.2 Android平台的硬件编码器MediaCodec 158 6.3.3 iOS平台的硬件编码器AudioToolbox 161 6.4 视频画面的编码 166 6.4.1 libx264编码H264 166 6.4.2 Android平台的硬件编码器MediaCodec 172 6.4.3 iOS平台的硬件编码器 175 6.5 本章小结 184 第7章 实现一款视频录制应用 185 7.1 视频录制的架构设计 185 7.2 音频模块的实现 188 7.2.1 音频队列的实现 189 7.2.2 Android平台的实现 191 7.2.3 iOS平台的实现 194 7.3 音频编码模块的实现 198 7.3.1 改造编码器 198 7.3.2 编码器适配器 199 7.4 画面采集与编码模块的实现 202 7.4.1 视频队列的实现 202 7.4.2 Android平台画面编码后入队 203 7.4.3 iOS平台画面编码后入队 204 7.5 Mux模块 205 7.5.1 初始化 206 7.5.2 封装和输出 208 7.5.3 销毁资源 212 7.6 中控系统串联起各个模块 213 7.7 本章小结 214 第8章 音频效果器的介绍与实践 215 8.1 数字音频基础 215 8.1.1 波形图 215 8.1.2 频谱图 217 8.1.3 语谱图 219 8.1.4 深入理解时域与频域 219 8.2 数字音频处理:快速傅里叶变换 222 8.3 基本乐理知识 229 8.3.1 乐谱 229 8.3.2 音符的音高与十二平均律 231 8.3.3 音符的时值 233 8.3.4 节拍 233 8.3.5 MIDI格式 234 8.4 混音效果器 235 8.4.1 均衡效果器 236 8.4.2 压缩效果器 239 8.4.3 混响效果器 240 8.5 效果器实现 243 8.5.1 Android平台实现效果器 243 8.5.2 iOS平台实现效果器 252 8.6 本章小结 255 第9章 视频效果器的介绍与实践 256 9.1 图像处理的基本原理 256 9.1.1 亮度调节 257 9.1.2 对比度调节 258 9.1.3 饱和度调节 259 9.2 图像处理进阶 259 9.2.1 图像的卷积过程 260 9.2.2 锐化效果器 260 9.2.3 高斯模糊算法 262 9.2.4 双边滤波算法 263 9.2.5 图层混合介绍 264 9.3 使用FFmpeg内部的视频滤镜 266 9.3.1 FFmpeg视频滤镜介绍 266 9.3.2 滤镜图的构建 267 9.3.3 使用与销毁滤镜图 269 9.3.4 常用滤镜介绍 270 9.4 使用OpenGL ES实现视频滤镜 272 9.4.1 加水印 273 9.4.2 添加自定义文字 278 9.4.3 美颜效果器 282 9.4.4 动图贴纸效果器 284 9.4.5 主题效果器 288 9.5 本章小结 291 第10章 专业的视频录制应用实践 292 10.1 视频硬件解码器的使用 292 10.1.1 初始化信息准备 292 10.1.2 VideoToolbox解码H264 294 10.1.3 MediaCodec解码H264 298 10.2 音频效果器的集成 304 10.2.1 Android音效处理系统的实现 305 10.2.2 iOS音效处理系统的实现 308 10.3 一套跨平台的视频效果器的设计与实现 309 10.4 将特效处理库集成到视频录制项目中 315 10.4.1 Android平台特效集成 316 10.4.2 iOS平台特效集成 321 10.5 本章小结 325 第11章 直播应用的构建 327 11.1 直播场景分析 327 11.2 拉流播放器的构建 329 11.2.1 Android平台播放器增加后处理过程 329 11.2.2 iOS平台播放器增加后处理过程 332 11.3 推流器的构建 335 11.4 第三方云服务介绍 340 11.5 礼物系统的实现 341 11.5.1 Cocos2dX项目的运行原理 342 11.5.2 关键API详解 344 11.5.3 实现一款动画 348 11.6 聊天系统的实现 350 11.6.1 Android客户端的WebSocket实现 351 11.6.2 iOS客户端的WebSocket实现 352 11.7 本章小结 353 第12章 直播应用中的关键处理 354 12.1 直播应用的细节分析 354 12.1.1 推流端细节分析 354 12.1.2 拉流端细节分析 355 12.2 推流端的关键处理 355 12.2.1 自适应码率的实践 356 12.2.2 统计数据保证后续的应对策略 361 12.3 拉流端的关键处理 363 12.3.1 重试机制的实践 364 12.3.2 首屏时间的保证 366 12.3.3 统计数据保证后续的应对策略 370 12.4 本章小结 371 第13章 工欲善其事,必先利其器 372 13.1 Android平台工具详解 372 13.1.1 ADB工具的熟练使用 372 13.1.2 MAT工具检测Java端的内存泄漏 377 13.1.3 NDK工具详解 387 13.1.4 Native层的内存泄漏检测 389 13.1.5 breakpad收集线上Crash 396 13.2 iOS使用Instruments诊断应用 399 13.2.1 Debug Navigator 399 13.2.2 Time Profiler 400 13.2.3 Allocations 402 13.2.4 Leaks 403 13.3 本章小结 405 附录A 通过Ne10的交叉编译输入理解ndk-build 406 附录B 编码器的使用细节 415 附录C 视频的表示与编码 423 |