第1部分 简介 3
第1章 Android 4简介 3
1.1 Android 4简介 3
1.2 Android SDK简介 6
1.3 Android NDK简介 7
1.4 Android开发系统要求 7
1.5 Android平台的历史 7
1.6 Android硬件规格 8
1.7小结 10
1.8问与答 10
1.9测验 10
1.9.1问题 10
1.9.2答案 10
1.9.3作业 10
第2章 安装开发工具 11
2.1安装JDK 11
2.2下载NetBeans软件包 12
2.3安装软件包 13
2.4安装Android SDK 14
2.5下载SDK 14
2.6安装SDK 15
2.7运行Android SDK Manager 16
2.8安装Eclipse的ADT插件 18
2.9小结 19
2.10问与答 19
2.11测验 20
2.11.1问题 20
2.11.2答案 20
2.11.3作业 20
第3章 使用Android SDK配置NetBeans和Eclipse 21
3.1创建Android模拟器设备 21
3.2创建新模拟器设备 22
3.3运行模拟器 23
3.4将Android SDK添加到NetBeans中 24
3.5为Eclipse添加Android SDK支持 27
3.5.1在Eclipse中创建新Android项目 27
3.5.2选择Android构建目标 29
3.6小结 30
3.7问与答 30
3.8测验 30
3.8.1问题 30
3.8.2答案 31
3.8.3作业 31
第4章 创建第一个Android程序 32
4.1创建新的Android项目 32
4.1.1配置NBAndroid插件 34
4.1.2完成新项目设置 35
4.2构建新项目 35
4.2.1打开输出窗口 36
4.2.2在模拟器中运行程序 37
4.3编辑Hello, Android!程序 41
4.4对比模拟器和Android设备 42
4.4.1 AVD限制 43
4.4.2安装Android Debug Bridge Device Driver 44
4.4.3在Android设备上运行代码 46
4.5小结 48
4.6问与答 49
4.7测验 49
4.7.1问题 49
4.7.2答案 49
4.7.3作业 49
第2部分Android硬件 53
第5章 开始使用图形 53
5.1了解Activity类 53
5.1.1程序生命周期 54
5.1.2可视生命周期 55
5.1.3前台生命周期 55
5.2测试Activity状态 55
5.2.1创建新项目 55
5.2.2源代码 58
5.3世界上最简单的Android图形演示 59
5.3.1取消选中第一个图形演示 61
5.3.2画布和视图简介 62
5.4小结 63
5.5问与答 63
5.6测验 63
5.6.1问题 63
5.6.2答案 63
5.6.3作业 63
第6章 绘制基本形状和文本 64
6.1绘制基本矢量形状 64
6.1.1绘制圆形 64
6.1.2绘制线条 64
6.1.3绘制方框 65
6.1.4绘制圆角矩形 65
6.1.5绘制三角形 66
6.1.6更改样式:描边和填充 66
6.1.7基本图形演示 66
6.2绘制文本 69
6.3编写Javadoc的代码 72
6.4 Android屏幕密度和分辨率 73
6.5小结 77
6.6问与答 77
6.7测验 77
6.7.1问题 77
6.7.2答案 77
6.7.3作业 77
第7章 加载和绘制图像 78
7.1双缓冲绘图 78
7.1.1创建内存位图 78
7.1.2创建绘图画布 79
7.1.3 使用后台缓冲 79
7.2加载位图文件 81
7.2.1添加位图资产 82
7.2.2使用AssetManager 83
7.2.3使用InputStream 84
7.2.4使用BitmapFactory 84
7.2.5关闭输入流 84
7.2.6完整的位图加载代码 84
7.3绘制位图 85
7.3.1为透明度创建aplha通道 86
7.3.2完成的示例 88
7.4小结 89
7.5问与答 89
7.6测验 90
7.6.1问题 90
7.6.2答案 90
7.6.3作业 90
第8章 使用循环赋予游戏活力 91
8.1创建线程游戏循环 91
8.1.1查看非线程代码 91
8.1.2编写线程代码 92
8.2不使用onDraw()进行绘制 93
8.3 Runnable Animation Demo 95
8.3.1为行走的角色制作动画 95
8.3.2项目源代码 96
8.4小结 100
8.5问与答 100
8.6测验 100
8.6.1问题 100
8.6.2答案 100
8.6.3作业 101
第9章 多点触摸用户输入 102
9.1单点触摸输入 102
9.1.1监听触摸事件 102
9.1.2单点触摸输入演示 103
9.2多点触摸输入 106
9.2.1简单示例 107
9.2.2封装多点触摸输入 108
9.2.3多点触摸演示 108
9.3小结 111
9.4问与答 111
9.5测验 112
9.5.1问题 112
9.5.2答案 112
9.5.3作业 112
第10章 使用加速度计 113
10.1 Android传感器 113
10.1.1访问传感器 114
10.1.2禁用屏幕方向改变 115
10.1.3加速度计初始化 115
10.1.4加速度计运动 116
10.1.5获取可用传感器列表 117
10.1.6完整示例 118
10.2小结 121
10.3问与答 121
10.4测验 122
10.4.1问题 122
10.4.2答案 122
10.4.3作业 122
第11章 使用线性加速度传感器和近距离传感器 123
11.1访问线性加速度传感器 123
11.1.1初始化线性加速度传感器 124
11.1.2关于暂停和恢复 124
11.1.3读取传感器 124
11.1.4线性加速度演示 125
11.2访问近距离传感器 129
11.3小结 130
11.4问与答 130
11.5测验 130
11.5.1问题 130
11.5.2答案 131
11.5.3作业 131
第12章 使用重力传感器和压力传感器 132
12.1使用重力传感器 132
12.1.1初始化重力传感器 132
12.1.2读取重力传感器 133
12.1.3 测试重力传感器 134
12.2使用压力传感器 138
12.2.1初始化压力传感器 138
12.2.2读取压力传感器 139
12.3小结 139
12.4问与答 139
12.5测验 139
12.5.1问题 139
12.5.2答案 140
12.5.3作业 140
第13章 创建自己的“手机传感器” 141
13.1封装Android传感器 141
13.1.1 BaseSensor 142
13.1.2加速度计 142
13.1.3线性加速度 143
13.1.4近距离传感器 143
13.1.5重力传感器 143
13.1.6压力传感器 144
13.1.7 陀螺仪传感器 144
13.1.8指南针 144
13.1.9光检测器 145
13.2创建手机传感器项目 145
13.2.1包和导入 146
13.2.2主要类 146
13.2.3 DrawView 147
13.2.4暂停和恢复 147
13.2.5线程进程 147
13.2.6创建面板 148
13.2.7更新传感器 149
13.2.8绘制传感器面板 149
13.2.9辅助方法 150
13.2.10 SensorPanel类 150
13.2.11输出文本行 151
13.2.12 Sensors类 152
13.2.13捕捉传感器事件 153
13.2.14未使用的准确性事件 154
13.2.15 暂停和恢复应用程序 154
13.2.16 BaseSensor类 156
13.2.17各种传感器类 157
13.3小结 158
13.4问与答 158
13.5测验 158
13.5.1问题 158
13.5.2答案 159
13.5.3作业 159
第14章 使用音频系统 160
14.1使用MediaPlayer播放音频 160
14.1.1受支持的音频格式 160
14.1.2初始化MediaPlayer 161
14.1.3将音频文件添加到项目中 161
14.1.4播放音频剪辑 163
14.2使用SoundPool播放音频 163
14.2.1初始化SoundPool 164
14.2.2加载音频资源 164
14.2.3播放音频资源 164
14.2.4 Audio Demo程序 165
14.3小结 166
14.4问与答 166
14.5测验 166
14.5.1问题 166
14.5.2答案 167
14.5.3作业 167
第3部分Android Gameplay 171
第15章 构建Android游戏引擎 171
15.1设计Android游戏引擎 171
15.1.1设计目标 172
15.1.2引擎组件 172
15.2创建Android库项目 174
15.3编写核心引擎类 178
15.3.1 Engine类 178
15.3.2 Timer类 185
15.3.3 TextPrinter类 186
15.3.4 Texture类 187
15.4引擎测试演示项目 188
15.4.1引擎演示源代码 190
15.4.2 记录引擎演示的日志 192
15.5小结 193
15.6问与答 193
15.7测验 193
15.7.1问题 193
15.7.2答案 193
15.7.3作业 193
第16章 创建Sprite/Actor类 194
16.1静态子画面为道具 194
16.2动态子画面为角色 195
16.3封装基本子画面功能 196
16.3.1拟定计划和设计 197
16.3.2新Sprite类的简介 197
16.3.3回顾Texture 198
16.4测试Sprite类 199
16.4.1子画面演示源代码 200
16.4.2测试Sprite类 202
16.5小结 203
16.6问与答 203
16.7测验 203
16.7.1问题 203
16.7.2答案 203
16.7.3作业 203
第17章 使用子画面表单/地图集制作帧动画 204
17.1使用一张图像制作动画 204
17.1.1排列动画帧 204
17.1.2从连续图像绘制帧 205
17.2使用子画面表单(纹理地图集)制作动画 206
17.3动画演示 207
17.4小结 211
17.5问与答 211
17.6测验 211
17.6.1问题 211
17.6.2答案 212
17.6.3作业 212
第18章 高级多动画技术 213
18.1创建动画系统 213
18.1.1编写动画基类 213
18.1.2 Sprite类改进 214
18.1.3 alpha动画 218
18.1.4帧动画 219
18.1.5旋转动画 220
18.1.6跳动动画 221
18.1.7圆周运动动画 222
18.2动画系统演示 222
18.3小结 226
18.4问与答 226
18.5测验 226
18.5.1问题 226
18.5.2答案 227
18.5.3作业 227
第19章 使用矩阵变换处理子画面 228
19.1矩阵平移 228
19.1.1坐标系 229
19.1.2矩阵平移选项 231
19.2矩阵旋转 232
19.3矩阵缩放 233
19.4矩阵变换演示 233
19.4.1结合使用三个矩阵 234
19.4.2将帧渲染到划痕位图 234
19.4.3获得屏幕分辨率(Precanvas) 235
19.4.4“扭曲”行为 236
19.4.5更新的Sprite类 237
19.4.6子画面变换演示 241
19.5小结 244
19.6问与答 244
19.7测验 244
19.7.1问题 244
19.7.2答案 244
19.7.3作业 245
第20章 实体分组 246
20.1实体分组 246
20.1.1引擎改进 246
20.1.2 跳动动画更新 249
20.1.3扭曲行为更新 250
20.1.4围栏行为 251
20.1.5实体分组演示 251
20.2小结 254
20.3问与答 255
20.4测验 255
20.4.1问题 255
20.4.2答案 255
20.4.3作业 255
第21章 碰撞检测 256
21.1碰撞检测技术 256
21.1.1边界矩形(框碰撞) 256
21.1.2边界圆形(径向碰撞) 257
21.2演示碰撞 259
21.2.1引擎改进 259
21.2.2子画面改进 262
21.2.3碰撞演示源代码 264
21.3小结 267
21.4问与答 267
21.5测验 267
21.5.1问题 267
21.5.2答案 268
21.5.3作业 268
第22章 使用线性速度实现实际运动 269
22.1从一个方向计算速度 269
22.2在移动方向上“定位”子画面 271
22.3改进引擎 273
22.3.1 Sprite类的变化 273
22.3.2改进动画类 275
22.3.3对速度行为进行分类 276
22.3.4更新圆周运动类 277
22.3.5更新围栏行为 278
22.3.6更新扭曲行为 279
22.3.7引擎改进 280
22.4小结 284
22.5问与答 284
22.6测验 284
22.6.1问题 284
22.6.2答案 285
22.6.3作业 285
第23章 滚动背景 286
23.1背景滚动概述 286
23.1.1翻转滚动矩形 286
23.1.2创建滚动纹理 287
23.2射击游戏 288
23.3小结 294
23.4问与答 294
23.5测验 295
23.5.1问题 295
23.5.2答案 295
23.5.3作业 295
第24章 球类游戏 296
24.1创建球类游戏 296
24.1.1自动移动球 297
24.1.2自动限制球拍 298
24.1.3球类游戏源代码 299
24.2小结 303
24.3问与答 303
24.4测验 303
24.4.1问题 303
24.4.2答案 303
24.4.3作业 304