Android已经从最初的智能电话领域逐渐进入教育、医疗、军事、汽车、家居等重要领域。随着众多设备开始选择使用Android系统,如智能手机、智能电视、平板电脑、上网本、MP3、MP4、智能相机等。这些设备将产生各种各样的应用需求,尤其是与Android系统底层和多媒体相关的应用,这将给开发者,尤其是系统级应用开发工程师带来大量的机会。
王石磊等编著的《Android多媒体应用开发实战详解——图像音频视频2D和3D》内容丰富,覆盖Android多媒体开发的方方面面。目标是通过一本图书,提供多本图书的价值,读者可以根据自己的需要有选择地阅读。
Android凭借其强大的功能逐渐赢得了广大用户和开发者的青睐,已经成为移动开发平台上的翘楚。
王石磊等编著的《Android多媒体应用开发实战详解——图像音频视频2D和3D》分为17章,分别详细讲解了Android系统基础,深入底层基础,多媒体框架,音频系统框架,视频系统框架,Camera照相机系统,振动器系统和警报系统,2D应用开发,渲染二维图像,OpenGL ES基础,OpenGL ES实战技术,音频开发基础,视频开发应用等。全面涵盖多媒体开发与应用技术,在《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》最后,通过两个综合实例,分别介绍了开发屏保系统和音乐播放器的基本流程,帮助读者学以致用。
《Android多媒体应用开发实战详解——图像音频视频2D和3D》适合Android程序员、研发人员及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。
第1章 初识庐山真面目——Android概述 1
1.1 智能手机世界 1
1.1.1 何谓智能手机 1
1.1.2 当前主流的智能手机系统 2
1.2 Android的巨大优势 3
1.2.1 系出名门 3
1.2.2 强大的开发团队 3
1.2.3 诱人的奖励机制 4
1.3 搭建Android应用开发环境 4
1.3.1 安装Android SDK的系统要求 5
1.3.2 安装JDK、Eclipse、Android SDK 5
1.3.3 设定Android SDK Home 16
1.3.4 验证开发环境 17
1.3.5 创建Android虚拟设备(AVD) 18
1.3.6 常见的几个问题 20
1.4 Android模拟器 25
1.4.1 Android模拟器简介 25
1.4.2 模拟器和真机的区别 25
1.4.3 模拟器简单总结 25
第2章 千里之行始于足下——多媒体开发前的准备工作 29
2.1 简析Android安装文件 29
2.1.1 Android SDK目录结构 29
2.1.2 android.jar及内部结构 30
2.1.3 SDK文档及阅读技巧 31
2.1.4 Android SDK工具集 33
2.2 解析Android SDK实例 34
2.3 Android系统架构 38
2.3.1 Android体系结构介绍 38
2.3.2 Android应用工程文件组成 41
2.3.3 应用程序的生命周期 44
第3章 底层分析基础 47
3.1 搭建Linux开发环境 47
3.1.1 安装 47
3.1.2 设置环境变量 48
3.1.3 安装编译工具 48
3.2 获取Android源代码 49
3.3 分析并编译Android源代码 51
3.3.1 Android源代码的结构 51
3.3.2 编译Android源代码 56
3.3.3 运行Android源代码 58
3.3.4 两种编译Android程序的方法 59
3.4 运行模拟器 63
3.4.1 Linux环境下运行模拟器的方法 63
3.4.2 模拟器辅助工具——adb 64
3.5 Android的启动过程 67
3.5.1 Init初始化进程 67
3.5.2 ServiceManager进程 68
3.5.3 Zygote进程 69
3.5.4 SystemService进程 72
3.6 进程间的通信 74
3.7 多核通信 75
3.7.1 内存共享 75
3.7.2 过程调用 84
第4章 多媒体框架 89
4.1 Android多媒体系统介绍 89
4.2 OpenMax框架 90
4.2.1 分析OpenMax框架构成 91
4.2.2 实现OpenMax IL层接口 96
4.3 OpenCore框架 104
4.3.1 OpenCore层次结构 104
4.3.2 OpenCore代码结构 106
4.3.3 OpenCore编译结构 107
4.3.4 OpenCore OSCL 111
4.3.5 实现OpenCore中的OpenMax部分 112
4.3.6 OpenCore扩展 126
4.4 Stagefright框架 132
4.4.1 Stagefright代码结构 132
4.4.2 通过Stagefright实现OpenMax接口 133
4.4.3 Video Buffer传输流程 137
第5章 音频系统框架 142
5.1 音频系统结构 142
5.2 分析音频系统的层次 143
5.2.1 层次说明 143
5.2.2 Media库中的Audio框架 144
5.2.3 本地代码 147
5.2.4 JNI代码 150
5.2.5 Java代码 151
5.3 分析硬件抽象层 152
5.4 分析编码/解码过程 153
5.4.1 AMR编码 154
5.4.2 AMR解码 158
5.4.3 解码MP3 162
第6章 视频系统框架 165
6.1 视频系统结构 165
6.2 分析Overlay抽象层 167
6.2.1 Overlay系统硬件抽象层的接口 167
6.2.2 实现Overlay系统抽象层 169
6.2.3 实现接口 170
6.3 实现Overlay框架 171
第7章 Camera照相机系统 174
7.1 Camera系统的结构 174
7.2 分析Camera接口和驱动 177
7.2.1 Camera驱动接口 177
7.2.2 硬件抽象层 184
7.3 实现Camera的硬件抽象层 189
7.3.1 Java程序部分 189
7.3.2 Camera的Java本地调用部分 190
7.3.3 Camera的本地库libui.so 190
7.3.4 Camera服务libcameraservice.so 192
第8章 振动器系统和警报系统 197
8.1 振动器系统 197
8.1.1 硬件抽象层 198
8.1.2 JNI框架部分 200
8.1.3 实现硬件抽象层 201
8.2 Alarm警报器系统 202
8.2.1 Alarm系统的结构 202
8.2.2 RTC驱动程序 203
8.2.3 模拟器环境的具体实现 206
第9章 绘制二维图像 207
9.1 使用Color类设置文本颜色 207
9.2 使用Paint类绘制图像 209
9.3 使用Canvas画布 213
9.4 使用Rect矩形类 215
9.5 NinePatch类 219
9.6 使用Matrix类 220
9.7 Bitmap类 224
9.8 使用BitmapFactory类 233
9.9 使用Region类 236
9.10 使用Typeface类 236
9.11 使用Shader类 236
第10章 二维动画应用 240
10.1 使用Drawable实现动画效果 240
10.1.1 Drawable基础 240
10.1.2 使用Drawable实现动画效果 241
10.2 实现Tween Animation动画效果 242
10.2.1 Tween动画基础 243
10.2.2 定义动画效果 247
10.2.3 Tween应用实例1 249
10.2.4 Tween应用实例2 250
10.2.5 Tween Animation总结 251
10.3 实现Frame Animation动画效果 252
10.3.1 Frame动画基础 252
10.3.2 Frame动画应用实例 253
10.4 播放GIF动画 255
10.5 实现EditText动画特效 257
10.6 全新的Property Animation动画 258
第11章 渲染二维图像 260
11.1 Android GDI系统之SurfaceFlinger 260
11.1.1 SurfaceFinger基础 260
11.1.2 Surface和Canvas 261
11.1.3 Surface渲染 261
11.2 Skia引擎 265
11.2.1 Skia基础 265
11.2.2 Skia介绍 266
11.2.3 Skia中的类 268
11.2.4 使用Skia绘图 276
11.2.5 Skia的其他功能 281
11.3 通过Skia绘制文字分析原理 282
第12章 OpenGL ES基础 285
12.1 OpenGL ES介绍 285
12.2 OpenGL ES的基本应用 286
12.2.1 点线法绘制三角形 286
12.2.2 索引法绘制三角形 294
12.2.3 顶点法绘制三角形 299
12.3 实现投影效果 301
12.3.1 正交投影 302
12.3.2 透视投影 302
12.3.3 实现投影效果 303
12.4 实现光照效果 307
12.4.1 光照基础 307
12.4.2 实例应用——开启/关闭光照 309
12.4.3 实例应用——实现定位光效果 315
12.5 实现纹理映射效果 321
12.5.1 纹理映射基础 321
12.5.2 实例应用——实现三角形纹理贴图效果 323
12.5.3 实例应用——实现地月模型效果 328
12.5.4 实例应用——实现纹理拉伸效果 337
第13章 OpenGL ES进阶 342
13.1 绘制基本的三维形状 342
13.1.1 绘制一个圆柱体 342
13.1.2 绘制一个圆环 350
13.1.3 绘制一个抛物面效果 355
13.1.4 绘制一个螺旋面效果 359
13.2 实现坐标变换操作 363
13.2.1 实现缩放变换效果 364
13.2.2 实现平移变换效果 368
13.3 实现混合效果 369
13.3.1 基本知识 370
13.3.2 实现混合效果 371
13.4 实现摄像机和雾特效效果 375
13.4.1 摄像机 375
13.4.2 雾特效 376
13.4.3 实现雾特效和摄像机效果 376
13.5 粒子系统 388
13.5.1 粒子系统基础 388
13.5.2 实现粒子系统效果 389
第14章 音频开发应用 393
14.1 音频应用接口类介绍 393
14.2 AudioManager类 394
14.2.1 AudioManager基础 394
14.2.2 AudioManager基本应用——设置短信提示铃声 397
14.2.3 AudioManager基本应用——调节手机音量的大小 402
14.3 录音处理 405
14.3.1 使用MediaRecorder接口录制音频 406
14.3.2 使用AudioRecord接口录制音频 414
14.4 播放音频 421
14.4.1 使用AudioTrack播放音频 421
14.4.2 使用MediaPlayer播放音频 425
14.4.3 使用SoundPool播放音频 438
14.4.4 使用Ringtone播放铃声 441
14.4.5 使用JetPlayer播放音频 444
14.4.6 使用AudioEffect处理音效 446
14.5 语音识别技术 449
14.5.1 Text-To-Speech技术 449
14.5.2 谷歌的Voice Recognition技术 453
14.6 实现振动效果 455
14.6.1 Vibrator类基础 456
14.6.2 使用Vibrator实现振动效果 457
14.7 设置闹钟 462
14.7.1 AlarmManage基础 463
14.7.2 开发一个闹钟程序 464
第15章 视频开发应用 470
15.1 使用MediaPlayer播放视频 470
15.2 使用VideoView播放视频 478
15.2.1 VideoView基础 478
15.2.2 使用VideoView播放手机中的影片 480
15.2.3 使用VideoView播放手机中的MP4 483
15.3 使用Camera拍照 485
15.3.1 Camera基础 486
15.3.2 总结Camera拍照的流程 488
15.3.3 使用Camera预览并拍照 490
第16章 开发一个屏保程序 498
16.1 屏幕保护程序介绍 498
16.1.1 屏幕保护程序的作用 498
16.1.2 手机中的屏幕保护程序 499
16.2 开发屏保程序的原理 499
16.3 开发一个屏保程序 500
16.3.1 准备素材图片 500
16.3.2 编写布局文件 501
16.3.3 编写主程序文件 502
第17章 开发一个音乐播放器 515
17.1 项目介绍 515
17.1.1 项目背景介绍 515
17.1.2 项目的目的 516
17.2 系统需求分析 516
17.2.1 构成模块 516
17.2.2 系统流程 521
17.2.3 功能结构图 522
17.2.4 系统功能说明 522
17.2.5 系统需求 524
17.3 数据库设计 525
17.3.1 字段设计 525
17.3.2 E-R图设计 525
17.3.3 数据库连接 526
17.3.4 创建数据库 526
17.3.5 操作数据库 527
17.3.6 数据显示 529
17.4 具体编码 529
17.4.1 设置服务信息 529
17.4.2 播放器主界面 530
17.4.3 播放列表功能 543
17.4.4 菜单功能模块 547
17.4.5 播放设置界面 550
17.4.6 设置显示歌词 553
17.4.7 文件浏览器模块 555
17.4.8 数据存储 558
17.5 总结 560