开发和优化Android 游戏应用

trpewwbg 2014-04-29 11:15:33
加精
Android 原生开发套件 (NDK) 是 Android SDK 的附带工具。借助该工具,您可以使用诸如 C 和 C++ 等本地代码语言实现部分应用。

您可以从以下网址下载该 NDK 工具包: http://developer.android.com/tools/sdk/ndk/index.html

适合 X86 指令集架构的 NDK
Android 是一个由 Google 开发的开源操作系统。 当前,Android 可以在三种指令集架构上运行: ARM、x86 和 MIPS。 X86 表示一组基于英特尔 8086 CPU(自 1978 年开始使用)的指令集架构。我们现在从应用程序的角度介绍 X86 (也称为英特尔 架构,或 IA) 和其他 Android 可以运行的芯片组之间的差异。

Android 应用可被分成两类:
* 包含 Java* 代码和仅使用 Android 官方 SDK API 和必要资源文件(诸如 .xml 和 .png)的 Dalvik 应用,可编译成一个 APK 文件。
* 包含 Java 代码、资源文件、C/C++ 源代码(有时也包含汇编码)的 Android NDK 应用。 所有本地代码被编译成一个动态链接库 (.so 文件),然后在主程序中通过使用 JNI 机制的 Java 进行调用。

Android 游戏引擎
游戏引擎是游戏应用的一个重要模块。 有几个引擎可以在 Android 上运行,其中包括一些开源的商用 2D 和 3D 引擎。 因此,我们很难将 Android 游戏迁移到 IA 平台上,也难以在这种平台上开发 Android 游戏。 Cocos2d-x 和 Unity 3D 是 Android 平台最受欢迎的游戏引擎。

Cocos2d-x 基于 Cocos2d-iPhone 构建而成,包含各种扩展支持平台,同时还有多种可以共享同一种 API 结构的编程语言。 自 2010 年 7 月开始使用以来,cocos2d-x 下载的次数已经超过了 5 亿次。 包括 Zynga、Glu、GREE、DeNA、Konami、TinyCo、Gamevil、HandyGames、Renren Games、4399、HappyElements、SDO 和 Kingsoft 在内的著名手机游戏公司正在使用 cocos2d-x。

Unity 3D 是一个跨平台的游戏引擎,内建有 Unity Technologies 公司开发的 IDE。 我们可以使用它开发适合 web 插件、台式机平台、控制台和移动设备的视频游戏。迄今为止,已经有超过一百万的开发人员使用过该引擎。 2005 年时,它只是一个 OS X 支持的游戏开发工具,现在,它已经成长为一个多平台游戏引擎。 最新的更新 Unity 4.1 于 2013 年三月发布。它现在可以支持 iOS、Android、Windows、Blackberry 10、OS X、Linux、web 浏览器、Flash*、PlayStation 3、Xbox 360、Windows Phone 和 Wii 的应用开发。

在 IA 平台上开发基于 NDK 的游戏
在我们讨论游戏开发之前,我们应当先讨论 Android 平台。 如您所知,游戏有着多种不同的风格。 不同风格的游戏需要不同的设计原理。 在您的项目开始前,您应当先为您的游戏确定风格。 如果您不能想出全新的和前所未见的思路,那么很可能您的游戏思路就会因为效仿当前流行风格而变得普通。 大多数的风格已经成为了机械的游戏标准(例如控制方案、具体目标等)。 而偏离这些标准则可能让您的游戏变得与众不同,因为游戏玩家总会期待出现新的事物。 一些常见的风格包括:
* 街机与动作
* 益智解密
* 纸牌与赌场
* 休闲
* 动态壁纸
* 竞赛
* 体育游戏
* 小游戏
* 等等
开发普通 Android 游戏的过程和任何其他的 Android 应用相类似。 首先,从 Google 的网站下载 Android SDK 和 NDK,然后进行正确安装。

我假设您已经完成了所有的安装和准备工作。 我们以 Cocos2d-x 游戏引擎为例,说明如何为英特尔人架构创建一款游戏。

下载 Cocos2D-x
从以下网站下载稳定、最新的 Cocos2D-x 版本: http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download

执行批处理
执行来自 Windows Explorer 的批处理任务。 当它询问你项目位置时,请把它设置成像 com.yourproject.something 一样的格式,并选择项目名称和目标 ID。这将在 cocos2dx 安装文件夹中创建一个以项目名称的名称的文件夹。 您应当参考无错式脚本的执行情况,具体如下:


设置 NDK_ROOT 的环境变量
将以下环境变量添加到 home\<yourname>\.bash_profile 文件的结尾处(在本案例中:c:\cygwin\home\user\.bash_profile):

NDK_ROOT=/cygdrive/<yourname>/

export
NDK_ROOT


重启 cygwin,输入 cd $NDK_ROOT,您会看到该屏幕:

执行 build_native.sh 文件
默认的配置是 ARM;我们需要改变配置,使其符合 x86 的编译要求。 打开 \helloworld\proj.android \build_native.sh 文件,找到 ndk-build 命令,将 APP_ABI=x86 参数添加到该命令的结尾处。 在 Cygwin 中运行它,您会看到:

把项目导入到 Eclipse
现在转至 Eclipse,创建一个新的项目 -> 从现有项目导入。

构建并运行
到该步骤时,Eclipse 将会出现一些问题:

导入问题 org.cocos2dx.lib 不能被解析为 HelloWorld.java

/HelloWorld/src/com/young40/test 第 26 行 Java 问题 Cocos2dxActivity 不能被解析为 HelloWorld.java 类型

/HelloWorld/src/com/young40/test 第 30 行 Java 问题 Cocos2dxActivity 不能被解析为 HelloWorld.java 类型

/HelloWorld/src/com/young40/test 第 33 行 Java 问题

你必须将下列库导入到 Eclipse 中:

cocos2d-2.1beta3-x-2.1.1/cocos2dx/platform/android/java

转至 Project -> Build,然后运行 As -> Android Application:

然后将针对 cocos2dx 游戏引擎构建一个游戏框架。 您可以将游戏逻辑、音频、图片等资源添加到该项目中,使其成为一款完整的游戏。

请点击这个链接阅读详细介绍:http://g.csdn.net/5268778
...全文
2753 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
ehmonfhtcojh 2014-05-08
  • 打赏
  • 举报
回复
真是不错的文章
繁华灬似梦 2014-05-05
  • 打赏
  • 举报
回复
初学者....
罗捷捷 2014-05-05
  • 打赏
  • 举报
回复
楼主大叔 现在都是python编译了 cygwin在win7+因为权限 问题很多...
  • 打赏
  • 举报
回复
yaojunyi3721 2014-05-04
  • 打赏
  • 举报
回复
不错,很好,学习了
austin9972 2014-05-02
  • 打赏
  • 举报
回复
Rocloud 2014-05-02
  • 打赏
  • 举报
回复
在英特尔® 架构平台上开发和优化基于 NDK 的 Android 游戏应用,
Wvelb7 2014-05-01
  • 打赏
  • 举报
回复
大神,好膜拜,真厉害
寂空冷 2014-04-30
  • 打赏
  • 举报
回复
不明觉厉!!!
laxila 2014-04-30
  • 打赏
  • 举报
回复
真是不错的文章
moon8150 2014-04-30
  • 打赏
  • 举报
回复
不错的文章 ,值得推荐
line_us 2014-04-29
  • 打赏
  • 举报
回复
cocos2dx 游戏引擎构建一个游戏框架。
rgllsj 2014-04-29
  • 打赏
  • 举报
回复
太好了,真的太好了
wangsufu77 2014-04-29
  • 打赏
  • 举报
回复
正好要学习,nice
shwan521 2014-04-29
  • 打赏
  • 举报
回复
太好了,真的太好了
zhu_neal 2014-04-29
  • 打赏
  • 举报
回复
太好了,真的太好了
jh51464 2014-04-29
  • 打赏
  • 举报
回复
文章很好,值得一看
xsc65092 2014-04-29
  • 打赏
  • 举报
回复
不错的文章 ,值得推荐
CCDDzclxy 2014-04-29
  • 打赏
  • 举报
回复
不明觉厉啊
cdh15866336633 2014-04-29
  • 打赏
  • 举报
回复
真是不错的文章
加载更多回复(4)

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧