第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 SDK 4
1.3.3设置Android SDK Home 13
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下安装Android 34
3.2.2设置环境变量 35
3.2.3安装编译工具 36
3.3获取Android源码 36
3.4分析并编译Android源码 38
3.4.1Android源码的结构 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模拟器辅助工具——adb 51
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.3enCore框架 88
4.4.1 OpenCore层次结构 88
4.4.2 OpenCore代码结构 89
4.4.3 OpenCore编译结构 90
4.4.4 OpenCore OSCL 94
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解码MP3. 141
第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.1Camera驱动接口 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.so 168
7.3.4 Camera服务 libcameraservice.so 169
第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.11Shader类 210
第10章 二维动画应用 214
10.1Drawable类 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 Animation 231
第11章 渲染二维图像 233
11.1 SurfaceFlinger渲染 233
11.1.1 SurfaceFinger基础 233
11.1.2 Surface和Canvas 234
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 ES 253
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不能没有SoundPool 384
14.4.4使用Ringtone播放铃声 386
14.4.5使用JetPlayer播放音频 389
14.4.6使用AudioEffect处理音效 390
14.5语音识别技术 393
14.5.1 Text-To-Speech技术 394
14.5.2谷歌的Voice Recognition 技术 397
14.6振动 399
14.6.1 Vibrator类 399
14.6.2使用Vibrator实现振动 效果 401
14.7闹钟 406
14.7.1 AlarmManager基础 406
14.7.2闹钟程序 407
第15章 视频开发应用 412
15.1 MediaPlayer的秘密 412
15.2 VideoView就是这么简单 418
15.2.1 VideoView基础 419
15.2.2使用VideoView实例 421
15.2.3使用VideoView播放MP4 视频 423
15.3拍照留下美好的瞬间 425
15.3.1 Camera基础 425
15.3.2小试牛刀 430
第16章 开发一个屏保系统 436
16.1屏保程序介绍 436
16.2分析开发屏保程序的原理 436
16.3我的屏保程序 437
16.3.1准备素材图片 438
16.3.2编写布局文件 438
16.3.3编写主程序文件 439
第17章 开发一个音乐播放器 451
17.1项目介绍 451
17.2系统需求分析 451
17.2.1构成模块 451
17.2.2系统流程 456
17.2.3功能结构 457
17.2.4系统功能说明 457
17.2.5系统需求 458
17.3数据库设计 459
17.3.1字段设计 459
17.3.2 E-R图设计 459
17.3.3数据库连接 460
17.3.4创建数据库 460
17.3.5操作数据库 461
17.3.6数据显示 462
17.4具体编码 463
17.4.1设备服务信息 463
17.4.2播放器主界面 464
17.4.3播放列表功能 475
17.4.4菜单功能模块 479
17.4.5播放设置界面 482
17.4.6设置显示歌词 485
17.4.7文件浏览器模块 486
17.4.8数据存储 489