第一图书网

Android多媒体开发技术实战详解

熊斌 电子工业出版社
出版时间:

2012-8  

出版社:

电子工业出版社  

作者:

熊斌  

Tag标签:

无  

内容概要

内 容 简 介
在本书的内容中,详细讲解了Android多媒体开发技术的基本知识。本书内容新颖、知识全面、讲解详细,全书分为17个章节,第1章讲解了Android系统的基本知识;第2章讲解了Android开发之前所要做的工作;第3章讲解了深入底层的基本知识;第4章讲解了多媒体框架的基本知识;第5章讲解了音频系统框架的基本知识;第6章讲解了视频系统框架的基本知识;第7章讲解了Camera照相机系统的基本知识;第8章讲解了振动器系统和警报系统的基本知识;第9章讲解了平面世界的基本知识;第10章讲解了二维动画应用的基本知识;第11章讲解了渲染二维图像的基本知识;第12章讲解了OpenGL
ES的基本知识;第13章讲解了OpenGL
ES进阶方面的基本知识;第14章讲解了音频开发的基本知识;第15章讲解了视频开发应用的基本知识;第16章讲解了开发一个屏保系统的具体过程;第17章讲解了开发一个音乐播放器的基本过程。本书定位于Android程序开发的不同用户,即可以作初学者的参考资料,也可以作为向此领域发展的程序员的参考书。

书籍目录

第1章 欢迎进入Android世界1
1.1 最近几年的几件大事1
1.2 来到智能手机世界2
1.2.1 何谓智能手机2
1.2.2 百家争鸣2
1.3 搭建Android应用开发环境3
1.3.1 安装Android SDK的系统要求3
1.3.2 安装JDK、Eclipse、Android
SDK4
1.3.3 设置Android SDK Home13
1.3.4 验证理论14
1.3.5 创建Android虚拟设备15
第2章 准备工作18
2.1 简析Android安装文件18
2.1.1 Android SDK目录结构18
2.1.2 android.jar及内部结构19
2.1.3 阅读SDK文档需要技巧20
2.1.4 不简单的SDK工具22
2.2 系统实例23
2.3 Android系统架构剖析26
2.3.1 Android体系结构介绍26
2.3.2 Android应用工程文件组成29
2.3.3 应用程序的生命周期31
第3章 深入底层34
3.1 为什么要深入底层34
3.2 搭建Linux开发环境34
3.2.1 在Linux下安装Android34
3.2.2 设置环境变量35
3.2.3 安装编译工具36
3.3 获取Android源码36
3.4 分析并编译Android源码38
3.4.1 Android源码的结构38
3.4.2 编译Android源码44
3.4.3 运行Android源码45
3.4.4 选择编译方法46
3.5 运行模拟器不是昨日重现50
3.5.1 在Linux环境下运行模拟器的
方法50
3.5.2 模拟器辅助工具——adb51
3.6 Android的启动过程52
3.6.1 Init初始化进程52
3.6.2 ServiceManager进程54
3.6.3 Zygote进程54
3.6.4 SystemService进程57
3.7 进程之间需要沟通59
3.8 多核通信60
3.8.1 内存共享61
3.8.2 过程调用69
第4章 多媒体框架73
4.1 框架学习路线图73
4.2 Android多媒体系统介绍73
4.3 OpenMax框架75
4.3.1 分析OpenMax框架构成76
4.3.2 实现OpenMax IL接口80
4.4 OpenCore框架88
4.4.1 OpenCore层次结构88
4.4.2 OpenCore代码结构89
4.4.3 OpenCore编译结构90
4.4.4 OpenCore OSCL94
4.4.5 实现OpenCore中的OpenMax
部分95
4.4.6 OpenCore扩展107
4.5 StageFright框架是后来者113
4.5.1 StageFright代码结构113
4.5.2 StageFright实现OpenMax
接口114
4.5.3 Video Buffer传输流程117
第5章 音频系统框架122
5.1 音频系统结构122
5.2 分析音频系统的层次123
5.2.1 层次说明124
5.2.2 Media库中的Audio框架124
5.2.3 本地代码127
5.2.4 JNI代码130
5.2.5 Java代码131
5.3 硬件抽象层131
5.4 分析编码/解码过程133
5.4.1 AMR编码133
5.4.2 AMR解码137
5.4.3 解码MP3141
第6章 视频系统框架143
6.1 视频系统结构143
6.2 分析Overlay抽象层145
6.2.1 Overlay系统硬件抽象层的
接口145
6.2.2 实现Overlay系统抽象层147
6.2.3 实现接口148
6.3 实现Overlay框架149
第7章 Camera(照相机)系统152
7.1 Camera系统结构152
7.2 分析Camera接口和驱动155
7.2.1 Camera驱动接口155
7.2.2 硬件抽象层162
7.3 实现Camera硬件抽象层166
7.3.1 Java程序部分166
7.3.2 Camera的Java本地调用
部分167
7.3.3 Camera的本地库libui.so168
7.3.4 Camera服务
libcameraservice.so169
第8章 振动器系统和警报器系统174
8.1 振动器系统174
8.1.1 硬件抽象层175
8.1.2 JNI框架部分177
8.1.3 实现硬件抽象层178
8.2 Alarm警报器系统179
8.2.1 Alarm系统结构179
8.2.2 模拟器环境的具体实现182
第9章 平面世界183
9.1 强大的Graphics类183
9.2 用Color类设置文本颜色183
9.3 用Paint类绘制图像185
9.4 Canvas类188
9.5 Rect类191
9.6 NinePatch类195
9.7 Matrix类195
9.8 Bitmap类199
9.8.1 Bitmap类的功能200
9.8.2 Bitmap类应用实例201
9.9 BitmapFactory类207
9.10 Typeface类210
9.11 Shader类210
第10章 二维动画应用214
10.1 Drawable类214
10.1.1 认识Drawable类214
10.1.2 Drawable实现动画效果215
10.2 实现Tween Animation效果216
10.2.1 Tween动画基础216
10.2.2 定义动画效果221
10.2.3 用实例来体验Tween动画
应用(一)222
10.2.4 用实例来体验Tween动画
应用(二)224
10.3 实现Frame Animation效果225
10.3.1 Frame动画基础225
10.3.2 Frame动画应用实例226
10.4 播放GIF动画228
10.5 实现EditText动画特效230
10.6 Property Animation231
第11章 渲染二维图像233
11.1 SurfaceFlinger渲染233
11.1.1 SurfaceFinger基础233
11.1.2 Surface和Canvas234
11.1.3 Surface渲染235
11.2 Skia渲染238
11.2.1 Skia基础238
11.2.2 Skia介绍239
11.2.3 Skia中的类241
11.2.4 Skia的最大用处是绘图247
11.2.5 Skia的其他功能251
第12章 OpenGL ES来了253
12.1 认识OpenGL ES253
12.1.1 使用点线法绘制三角形254
12.1.2 使用索引法绘制三角形259
12.1.3 使用顶点法绘制三角形264
12.2 时光的影子266
12.2.1 正交投影266
12.2.2 透视投影267
12.2.3 实现投影效果267
12.3 体验阳光的魅力271
12.3.1 何谓光照271
12.3.2 实现定位光效果273
12.3.3 开启/关闭光照279
12.4 高深莫测的纹理映射284
12.4.1 实现地月模型效果284
12.4.2 实现三角形纹理贴图效果292
12.4.3 实现纹理拉伸效果296
第13章 OpenGL ES进阶301
13.1 绘制三维图形301
13.1.1 绘制圆柱体301
13.1.2 绘制圆环309
13.1.3 绘制抛物面313
13.1.4 绘制螺旋面效果316
13.2 坐标变换320
13.2.1 缩放变换处理320
13.2.2 平移变换处理325
13.3 混合与透明327
13.3.1 相关基本知识328
13.3.2 实现混合效果329
13.4 摄像机和雾特效333
13.4.1 摄像机333
13.4.2 雾特效334
13.4.3 亲眼看一看雾特效和摄像机
效果334
第14章 音频开发应用345
14.1 实现音频功能的接口类345
14.2 AudioManager控制铃声346
14.2.1 AudioManager中介346
14.2.2 亲手试一试——设置短信提示
铃声349
14.2.3 调节手机音量的大小352
14.3 录音处理356
14.3.1 使用MediaRecorder接口录制
音频356
14.3.2 使用AudioRecord录制
音频359
14.3.3 使用AudioRecord接口
录音364
14.3.4 继续使用AudioRecord录制
音频364
14.4 插放音频367
14.4.1 使用AudioTrack播放音频367
14.4.2 使用MediaPlayer播放音频370
14.4.3 不能没有SoundPool384
14.4.4 使用Ringtone播放铃声386
14.4.5 使用JetPla

章节摘录

版权页: 插图: (1)定向光 我们日常所见的光源有很多,比如太阳、灯泡、燃烧着的蜡烛等。像太阳这种从无穷远处发射的几乎平行的光被称为定向光。定向光对应的是光源在无穷远处的光,定向光在空间中的所有位置方向都是相同的。 在OpenGL ES中通过方法glLightfv(int light,int pname,float[]params,int offset)来设定定向光,此方法中各个参数的具体说明如下所示。 light:该参数设置为OpenGL ES中的灯,用GL_LIGHT0到GL_LIGHT7分别表示8盏灯。 如果该参数设置为GL_LIGHT0,则表示方法glLightfv()中其余的设置都是针对GL_LIGHT0,即0号灯进行设置的。 pname:被设置的光源属性是由pname定义的,它指定了一个命名参数,在设置定向光时应该设置成GL_POSITION。 params:此参数是一个float数组,该数组由4部分组成,前3个值组成表示定向光方向的向量,光的方向为从向量点处向原点处照射,比如{0,1,0,0}表示沿Y轴负方向的光,最后的0表示此光源发出的光是定向光。 (2)定位光 在自然世界中定向光与定位光是截然不同的,这就像太阳与燃烧的蜡烛之间的区别。但是,在OpenGL ES中实现定向光与定位光的方法十分相似。 在OpenGL ES中通过方法glLightfv(int light,int pname,float[]params,int offset)来设置定位光,其参数含义和上面介绍的定向光中的9lLightfv()方法类似,仅仅是params参数略有不同,其他参数基本都相同。 在定向光中,参数params中的最后一个值被设置为0;而在定位光中,这个值被设置为1。 在定向光中,参数params中的前3个值被设置为光源的向量坐标;而在定位光中,这3个值被设置为光源的位置。 在定向光中,光的方向为给定的坐标点与原点之间的向量,所以params中的坐标不能设置为(0,0,0);而在定位光中,给出的是光源的坐标位置,所以params的前3个参数可以设置为(0,0,0)。 在定位光方法glLightfb()中,其余参数的设置方法与上面介绍的定向光方法glLightfv()相同,在此不再赘述。 2.光源颜色 颜色是光源的一种重要属性,在OpenGL ES中允许把与颜色相关的3个不同参数GL_AMBIENT、GL_DIFFUSE和GL_SPECULAR与任何特定的光源相关联。 (1)GL_AMBIENT环境光 Ambient的意思是环境光,表示一个特定的光源在场景中所添加的环境光的RGBA强度。在默认情况下是不存在环境光的,因为GL_AMBIENT的默认值是(0.0,0.0,0.0,1.0)。 在OpenGL ES中通过方法glLightfv(int light,int pname,float[]params,int offset)来设置光源的环境光,对各个参数的具体说明如下所示。


编辑推荐

《Android移动开发技术丛书:Android多媒体开发技术实战详解》定位于Android程序开发的不同用户,即可以作初学者的参考资料,也可以作为向此领域发展的程序员的参考书。

图书封面

图书标签Tags

广告

下载页面


Android多媒体开发技术实战详解 PDF格式下载



讲解得很全面,涉及到很多多媒体的知识。


前天早上下单,下午就送来了,还没来得及看


苛求顶起拥有爱得起感觉无可替代


几章源码剖析讲讲原理,不搞那块儿定制熟悉熟悉也就,绘制和多媒体讲的太普通,没得看


整书全在贴代码,没有流程讲解,真的觉得不如去看代码。


很好的书,讲解细致,我正好需要学习OpenGL ES方面的知识,这正是我所需要的。翻了几页,发现作者点功底不错,发货速度快


相关图书