入门篇 12
第1章 开放的Android 12
1.1 Android的历史 12
1.1.1 Google收购Android 12
1.1.2 Open Handset Alliance 13
1.1.3 Android版本演进 13
1.2 Android的架构 14
1.2.1 Linux内核 15
1.2.2本地库 15
1.2.3 Android运行环境 15
1.2.4应用程序框架 16
1.2.5应用程序 16
1.3开发Android应用程序 17
1.3.1开发语言 17
1.3.2 Android SDK 17
1.4 Android Market的致富之路 18
1.4.1 Android Market的商业模式 18
1.4.2 Android Market发布流程 18
第2章Android开发环境和流程 21
2.1安装Android SDK和Eclipse 21
2.1.1安装Java SDK 21
2.1.2安装Eclipse 22
2.1.3安装Android SDK 22
2.1.4添加必要的Android SDK组件 23
2.1.5安装ADT插件 24
2.2第一个Android应用程序 25
2.2.1新建Android项目 26
2.2.2运行Android项目 27
2.2.3修改Android项目 29
2.3调试Android应用程序 32
2.3.1设置断点 33
2.3.2启动调试 33
2.3.3单步跟踪 34
2.3.4真机调试 34
2.4常用Android SDK工具 36
2.4.1 Android模拟器 36
2.4.2模拟SD卡 37
2.4.3 ADB 37
2.4.4 DDMS 38
2.4.5 Android 39
2.5 Android NDK开发介绍 40
2.5.1什么是Android NDK 40
2.5.2使用NDK的优缺点 40
2.5.3使用NDK的两种方式 40
第3章Android应用程序模型 41
3.1 Android应用程序基础 41
3.1.1 Android应用程序运行环境 41
3.1.2 Android应用程序的组成 42
3.2 Activity 47
3.2.1 Activity创建与声明 48
3.2.2 Activity的生命周期 51
3.2.3 Activity和 Intent 56
3.2.4使用Intent调用系统服务 58
3.2.5 Activity和Task 60
3.3 Content Provider 64
3.4 BroadcastReceiver 66
3.5 Service 67
3.6安全与许可 68
3.6.1安全架构 68
3.6.2许可 68
3.7数字签名 70
3.7.1签名策略 70
3.7.2签名步骤 70
第4章 图形用户界面 72
4.1用户界面概述 72
4.1.1手机软硬件特性的发展 72
4.1.2如何影响应用程序开发 73
4.1.3 Android图形引擎 73
4.2用户界面设计 74
4.2.1声明布局文件 74
4.2.2编写XML文件 74
4.2.3加载XML文件 75
4.2.4将数据绑定到AdapterVi ew 76
4.2.5创建菜单 76
4.2.6创建Dialog 78
4.2.7通知用户 79
4.2.8处理用户输入 80
4.2.9样式与主题 81
4.3常用Widget 82
4.3.1 TextView 82
4.3.2 CheckedTextView 84
4.3.3 Button 85
4.3.4 ImageView 86
4.3.5 ProgressBar 87
4.3.6 DatePicker/TimePicker 89
4.3.7 GridView 90
4.3.8 Spinner 92
4.3.9 Gallery 93
4.3.10 TabHost 94
4.4高级图形用户界面技术 96
4.4.1图形系统类结构 96
4.4.2常用布局类 98
4.4.3绘制图形 103
4.4.4构建自己的组件 111
4.5图形动画 116
4.5.1 Animation 116
4.5.2 Interpolator 121
4.5.3 AnimationSet 122
4.5.4自定义动画 122
4.6 Resource介绍 126
4.6.1资源类型 126
4.6.2使用资源 127
4.6.3资源适配 128
4.7 App Widgets 130
4.7.1 AppWiidgetProvider 130
4.7.2 AppWiidgetProviderInfo 131
4.7.3 App Wiidget的布局文件 132
4.7.4 RemoteViews 132
4.7.5配置App Widget的Activity 133
第5章 数据持久化存储 135
5.1文件存储 135
5.1.1存储至默认文件夹 136
5.1.2存储至指定文件夹 137
5.1.3存储至SD卡 138
5.1.4读取资源文件 138
5.2 SharePreference 139
5.3 SQLite 142
5.3.1创建数据库 142
5.3.2 SQLiteOpenHelper 144
5.3.3创建触发器 147
5.3.4创建索引 147
5.3.5创建视图 148
5.3.6操作数据 149
5.3.7将Cursor绑定到AdapterVi ew 154
5.4 Content Provide 157
5.4.1概述 157
5.4.2创建自定义的Content Provider 160
5.4.3 Content Provider更新的通知机制 167
5.4.4 DAO接口及实现 169
第6章 移动多媒体编程 171
6.1多媒体文件格式与编码 171
6.1.1多媒体文件格式 171
6.1.2编码 172
6.1.3 Android支持的媒体格式 173
6.1.4选择合适的媒体文件 173
6.2音频和视频播放 174
6.2.1三种不同的数据源 174
6.2.2 MediaPlayer的状态 177
6.2.3音乐播放器实例 180
6.2.4播放视频 188
6.3录制音频 190
6.3.1 MediaRecorder的状态图 190
6.3.2录音器实例 191
第7章 让程序在后台运行 195
7.1 Service概述 195
7.2 Service编程实践 196
7.2.1创建Service 196
7.2.2启动和停止Service 197
7.2.3通知用户 199
7.2.4不阻塞用户操作 200
7.2.5 Service与Activity通信 203
7.3后台播放音乐 205
7.3.1跨进程调用 205
7.3.2创建AIDL接口文件 205
7.3.3实现AIDL接口 206
7.3.4绑定Service 208
7.3.5调用IPC方法 209
第8章 电话和短信 211
8.1电话 211
8.1.1电话呼叫 211
8.1.2监听电话状态 213
8.1.3查询电话属性 215
8.1.4读取通话记录 215
8.2短消息 217
8.2.1发送短信 218
8.2.2接收短消息 219
进阶篇 224
第9章Android进阶案例 224
9.1俄罗斯方块实例 224
9.1.1方块的数据结构 224
9.1.2方块渲染 227
9.1.3游戏区域设计 228
9.1.4碰撞检测 231
9.1.5输入处理 232
9.1.6积分排行榜 234
9.2手机铃声DIY工具 235
9.2.1 MP3文件介绍 235
9.2.2 ID3 V 1标签 236
9.2.3 ID3 V2标签 237
9.2.4 Mp3帧结构 242
9.2.5分割MP3文件 246
9.2.6铃声DIY 248
9.2.7设置铃声 249
第10章 访问网络数据和服务 251
10.1 HTTP协议简介 251
10.1.1 HTTP协议的主要特点 251
10.1.2 HTIP连接过程 252
10.1.3 HTTP消息格式 252
10.2线程管理 254
10.2.1匿名Thread 254
10.2.2 java.util.concurrent框架 255
10.2.3 AsyncTask 260
10.3网络编程接口 263
10.3.1 HttpClient API介绍 263
10.3.2 GET方法的使用和限制 266
10.3.3使用POST方法上传附件 268
10.3.4从服务器端下载图片 274
10.4设计CS通信数据格式 275
10.4.1对象序列化 277
10.4.2使用XML传输对象 280
10.5 Android数据连接管理 285
10.5.1查询APN 286
10.5.2查询网络连接状态 286
10.5.3监听网络状态变化 288
10.5.4开关WIFI和无线连接 288
第11章 访问硬件层 290
11.1访问相机 290
11.1.1创建Camera对象 290
11.1.2设置Camera参数 291
11.1.3预览 292
11.1.4拍摄照片 292
11.2访问位置服务 294
11.2.1创建LocationManager 294
11.2.2 LocationProvider类 294
11.2.3监听位置更新 295
11.2.4接近警报 296
11.3访问传感器 296
11.3.1 SensorManager类 297
11.3.2监听传感器事件 297
11.3.3方向传感器应用——指南针 298
第12章 使用OpenGL ES开发3D程序 301
12.1 OpenGL ES概述 301
12.1.1 OpenGL ES设计准则 301
12.1.2 OpenGL ES与OpenGL的不同 302
12.1.3一个简单的OpenGL ES程序 305
12.2 3D观察与变换 307
12.2.1一个简单的例子:绘制立方体 307
12.2.2理解变换 311
12.2.3投影变换 313
12.2.4视口变换 315
12.2.5矩阵堆栈 316
12.3绘制图元 316
12.3.1图元种类 316
12.3.2指定顶点数据 317
12.3.3绘制图元 320
12.4颜色和光照 321
12.4.1设置颜色和材质 321
12.4.2光照 322
12.5光栅化和片元处理 326
12.5.1背面剪裁 326
12.5.2纹理映射 326
12.5.3雾 335
12.5.4反走样 336
12.5.5像素测试 338
12.5.6将片元合并到颜色缓存 341
12.6帧缓存操作 344
12.6.1清空缓存 344
12.6.2读取颜色缓存 344
12.6.3强制完成绘图指令 345
12.7其他 345
12.7.1行为控制函数 345
12.7.2状态查询 345
12.8 EGL简介 346
游 戏篇 350
第13章 游戏引擎介绍 350
13.1什么是游戏引擎 350
13.2几种游戏引擎框架 350
13.3结构化游戏引擎模块 351
13.3.1游戏循环 351
13.3.2图像渲染 352
13.3.3声音系统 354
13.3.4用户交互系统 355
13.3.5数据存储 357
13.3.6游戏时间 359
第14章 雷电——飞行射击游戏开发 361
14.1卷屏 361
14.1.1什么是卷屏 361
14.1.2卷屏的原理 361
14.1.3卷屏的实现 362
14.2设计战机 365
14.3设计子弹 376
14.4设计BOSS 381
14.5布局设计 383
14.6碰撞检测 384
14.7游戏逻辑 386
第15章100万游戏收入是怎么炼成的 388
15.1创业前的思考 388
15.1.1创业的成本几乎为零 388
15.1.2为了实现个人梦想 388
15.1.3市场趋于成熟 389
15.2艰辛、刺激的创业 389
15.3产品研发与推广经验 391
15.3.1游戏策划最重要 391
15.3.2首选跨平台技术方案 392
15.3.3不懈追求性能优化 392
15.3.4灵活的商务模式 393
15.3.5专业推广手段 394
附录A如何导入源代码 395
附录B Resin安装与Servlet部署 396
参考文献 399