具体描述
《Android 4游戏高级编程(第2版)》将帮助你充分利用最新的Android SDK 4.0的强大功能,构建复杂、令人着迷的游戏应用。最重要的是,本书向你展示了如何将类似Doom、Quake Ⅰ和Ⅱ这样的原生PC游戏以最少的精力移植到最新的Android平台。
将本书作为你值得信赖的指南,你将会发现一些能极大提高Android游戏应用开发技能的方式。通过创建渲染二十面体的Android项目,你会看到如何使用OpenGL ES 2.0产生高效的图形。同时你还将学习如何使用更好的字体、新的用户界面和体验(UI/UX)API、多点触摸功能、多任务,并得到更快的性能。
只需要跟随每一章可操作的源代码和来自真实世界的示例,你将善于:
结合Java优雅的面向对象功能和C的原始动力。
掌握一系列专业和先进的技术,比如混合使用OpenGL、OpenGL ES和JNI的3D图形技术。
移植和完善2D射击游戏,建立类似Quake的3D射击游戏。
如果想迅速提升自己开发Android高端游戏的技能,本书将是你的最佳选择。
作者简介
Vladimir Silva 出生于厄瓜多尔基多。他在1994 年获得厄瓜多尔军队理工学院系统分析师学位。同年,他作为交换生来到美国,在田纳西州州立大学攻读计算机科学硕士学位。毕业后,他加入了IBM WebAhead 实验室。他的兴趣包括网格计算、神经网络和人工智能。他还拥有许多IT 认证,包括Oracle 认证专家(Oracle Certified Professional,OCP)、微软认证解决方案开发专家(Microsoft Certified Solution Developer,MCSD)和微软认证专家(Microsoft Certified Professional,MCP)。他在IBM developerWorks 社区编写了大量关于安全和网格计算方面的技术文章。
目录信息
第1 章 欢迎来到Android 世界.............1
1.1 配置开发机...................................1
1.2 下载并安装SDK..........................2
1.3 配置Eclipse ..................................2
1.4 安装原生开发工具包...................5
1.4.1 安装NDK .................................. 6
1.4.2 安装Cygwin .............................. 6
1.5 创建Android 模拟器....................6
1.6 配置真实设备...............................9
1.7 本章小结.....................................10
第2 章 针对手机或平板电脑的
游戏技巧................................. 11
2.1 在Android 中编译原生代码...... 11
2.1.1 创建支持原生代码的Android
项目..........................................13
2.1.2 应用程序的体系结构..............14
2.2 编译共享库.................................25
2.3 调试模拟器.................................26
2.4 Java 对C/C++事件处理的
封装.............................................27
2.4.1 独立处理音频..........................27
2.4.2 级联视频事件..........................32
2.5 多点触摸.....................................37
2.5.1 MultiTouchGesture...................37
2.5.2 MultiTouchScreen ....................39
2.5.3 TestActivity ..............................41
2.6 蓝牙控制器(Zeemote) ................42
2.7 本章小结.....................................46
第3 章 更多OpenGL 与JNI
游戏技巧................................ 49
3.1 移动设备的动力.........................50
3.2 Java 方式的OpenGL..................51
3.2.1 创建项目..................................51
3.2.2 Java 版本的主Activity ............54
3.2.3 surface 视图..............................55
3.2.4 GL 线程....................................58
3.2.5 立方体渲染器..........................61
3.2.6 Cube 类.....................................64
3.3 原生方式的OpenGL ..................66
3.3.1 主Activity ................................68
3.3.2 原生接口类..............................70
3.3.3 修改原示例..............................71
3.3.4 原生立方体渲染器..................72
3.3.5 原生立方体类..........................78
3.3.6 编译和运行示例......................79
3.4 通过OpenGL ES 混合模式
缩放视频缓冲区.........................82
3.4.1 为什么使用混合缩放..............83
3.4.2 初始化surface..........................85
3.4.3 绘制到纹理..............................86
3.4.4 当图像的尺寸不是2 的幂时
会发生什么..............................89
3.5 本章小结.....................................94
第4 章 OpenGL ES 2.0 的高效图形... 95
4.1 OpenGL ES 2.0 与Android ........95
4.1.1 着色器......................................96
4.1.2 GLSL ........................................96
4.1.3 剖析着色器..............................98
Android 4 游戏高级编程(第2 版)
XVI
4.2 在Android 中调用
OpenGL ES 2.0 .........................101
4.3 二十面体项目...........................102
4.3.1 定义形状............................... 102
4.3.2 处理项目............................... 104
4.3.3 原生二十面体........................112
4.4 添加“滑动”和多点触摸的“捏”
缩放功能................................... 119
4.5 编译与运行...............................122
4.6 本章小节...................................123
第5 章 3D 射击游戏:Doom............125
5.1 组合使用Java/C,功能
无极限.......................................126
5.2 将Doom 移植到移动设备.......127
5.3 Doom 游戏的体系结构............129
5.4 Java 层的主Activity.................130
5.4.1 创建处理程序....................... 131
5.4.2 游戏布局............................... 132
5.4.3 菜单和选择项处理程序....... 134
5.4.4 按键和触摸事件处理程序... 135
5.4.5 原生回调处理程序............... 137
5.4.6 导航控件............................... 140
5.5 独立处理音频格式...................142
5.6 原生接口类...............................143
5.6.1 回调监听器........................... 143
5.6.2 原生方法............................... 144
5.6.3 C 到Java 的回调.................. 144
5.7 原生层.......................................147
5.7.1 原生方法的实现................... 147
5.7.2 对原始游戏进行修改........... 159
5.8 使用NDK 编译Doom .............165
5.9 在模拟器中测试Doom............167
5.10 本章小结.................................169
第6 章 3D 射击游戏:Quake...........171
6.1 一些关于Quake 的术语...........171
6.2 代码重用的威力:Quake 中的
新代码少于500 行...................172
6.3 软件渲染是合理解决方案吗...174
6.4 Quake 的Android 架构............179
6.4.1 Java OpenGL 渲染器架构.... 180
6.4.2 独立处理音频格式............... 185
6.4.3 处理键盘事件....................... 187
6.4.4 处理触摸事件....................... 189
6.4.5 游戏的启动Activity ............. 192
6.5 原生Quake 引擎必需的改动....193
6.5.1 视频处理程序的改动........... 194
6.5.2 处理X 轴旋转(pitch)和Y 轴
旋转(yaw).............................. 196
6.5.3 处理前进和横向运动........... 197
6.5.4 音频处理程序的改动........... 197
6.5.5 修复游戏循环....................... 200
6.6 在设备上运行Quake................202
6.7 本章小结...................................208
第7 章 3D 射击游戏:QuakeⅡ....... 209
7.1 代码回顾...................................209
7.2 逃离Java 堆的束缚..................210
7.3 让QuakeⅡ引擎在Android 中
工作...........................................211
7.3.1 代码的可重用性.................. 211
7.3.2 当发生致命错误时如何
处理...................................... 221
7.3.3 OpenGL 立即模式问题....... 223
7.3.4 视频处理程序...................... 224
7.4 使用NDK 编译QuakeⅡ .........228
7.5 在设备或模拟器中运行游戏...231
7.6 QuakeⅡ在多种设备中的性能
表现...........................................234
7.7 本章小结...................................234
附录 部署和编译技巧....................... 237
· · · · · · (收起)
读后感
用户评价
从我个人的使用体验来看,这本书的章节安排可以说是相当的细致。它并没有上来就讲晦涩难懂的概念,而是循序渐进地引导读者进入Android 4游戏开发的“高级”殿堂。我特别欣赏它在讲解OpenGL ES时,不仅仅是介绍API的使用,更侧重于解释其背后的渲染管线和坐标系转换原理,这对于我理解3D图形的绘制至关重要。书中关于内存管理和垃圾回收的部分,也让我受益匪浅,过去我常常因为内存泄漏导致程序崩溃而头疼,现在我有了更清晰的思路去避免这些问题。另外,作者在介绍物理引擎集成时,也提供了几种不同的实现思路和性能对比,这让我能够根据自己项目的需求做出更优的选择。这本书的价值在于它不仅仅教会了“怎么做”,更重要的是教会了“为什么这么做”,这种深入的洞察力是其他同类书籍很难比拟的。
《Android 4游戏高级编程》这本书,我拿到手的第一感觉就是厚重,沉甸甸的书页翻起来很有质感,这让我对里面内容的深度充满了期待。我是一名游戏开发爱好者,平时喜欢捣鼓各种小游戏,但一直以来都觉得自己在性能优化和图形渲染方面存在瓶颈。市面上关于Android游戏开发的入门书籍不少,但能真正深入讲解底层原理、剖析高性能实现的却寥寥无几。这本书的标题“高级编程”就深深吸引了我,我希望它能带我突破现有技术的局限,让我理解那些让游戏流畅运行的“秘籍”。我尤其关注书中关于游戏引擎架构、多线程处理、以及如何高效利用GPU的部分,因为这直接关系到游戏能否在各种机型上都能有良好的表现。我期待书中能够提供一些实际的案例,能够让我边学边练,而不是枯燥的理论堆砌。毕竟,编程的乐趣就在于将想法变为现实,而让游戏“动起来”并“跑起来”是其中最关键的一步。
这本书给我的整体感觉是,它不仅仅是一本技术手册,更像是一位经验丰富的游戏开发导师在与我交流。作者的语言风格非常严谨,但又不失幽默感,使得学习过程不会过于枯燥。在讲解一些复杂的概念时,他总是能用通俗易懂的比喻来帮助读者理解。我印象最深的是关于游戏生命周期管理的章节,作者通过一个拟人的方式来解释Activity、Service等组件在游戏运行过程中的角色,这让我对Android应用的整体架构有了更深的理解。此外,书中还包含了一些关于游戏调试和性能分析的技巧,这对于我快速定位和解决问题提供了很大的帮助。这本书的出版,无疑为Android游戏开发领域注入了一股清流,它填补了许多开发者在高级技术方面的知识空白。
我拿到这本书的时候,其实对Android 4.x这个版本已经有些距离感了,但这本书的价值在于,它所讲解的很多核心概念和底层原理,在后来的Android版本中依然适用,甚至更加重要。比如,书中对NDK开发的讲解,虽然是针对Android 4.x,但其C/C++与Java之间的交互方式、JNI的使用技巧等,都是通用的。我通过这本书,大大提升了我使用NDK进行游戏性能优化的能力,尤其是在处理大量计算密集型任务时,NDK的优势就显现出来了。书中关于游戏资源的加载和管理,也提供了很多实用的建议,比如如何有效地使用Bitmap缓存,如何进行图片格式的选择等等。这些看似基础但至关重要的细节,往往是影响游戏稳定性和流畅性的关键。
老实说,这本书的某些章节对我来说确实有些挑战性,尤其是关于自定义View的性能优化和事件分发机制的深入探讨。我花了不少时间去理解作者在解释“硬件加速”和“离屏渲染”时提到的各种技术细节,虽然过程有些艰辛,但当我在实际项目中尝试运用这些方法时,确实看到了显著的性能提升。我一直认为,真正的“高级”开发,就是要能洞察到那些隐藏在系统底层、影响程序性能的因素,并能针对性地进行优化。《Android 4游戏高级编程》在这方面做得相当出色。书中对Android 4.x版本特有的一些API和特性也有着详尽的介绍,这对于希望深入了解该版本游戏开发特性的开发者来说,无疑是一份宝贵的资料。我尤其喜欢书中关于动画系统优化和粒子效果实现的章节,这对于制作炫酷的游戏特效非常有帮助。