目 录
第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.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 模拟器辅助工具——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 OpenCore框架 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.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.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.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 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
· · · · · · (
收起)