如何将PC游戏移植到用C ++编写的Android上

时间:2011-02-21 03:54:44

标签: c++ android porting

我想创建一个像Space Invaders这样的简单游戏。我知道我可以使用Android NDK,但我必须移植我使用的库。我不能使用第三方专有库。

我将使用OpenGL,但OpenGL API在Android上似乎有所不同。我必须使用jpeg和png纹理,并编写文本。我可以为Android编译libjpeg,libpng和freetype吗?

我无法具体实现游戏引擎(C ++)和渲染例程(C ++和OpenGL),因为这是复杂的部分。

我准备为每个平台实施一些组件。窗口系统和用户输入没有问题,因为我将为每个系统使用特定的实现,这对我来说很简单。

我在PC上使用SDL及其音频扩展,但它易于使用。我可以使用Android的特定音频库。

由于

1 个答案:

答案 0 :(得分:5)

  

我可以为Android编译libjpeg,libpng和freetype吗?

是的,您必须重新编译专门针对Android的所有本机库。是的,您确实需要您计划使用的所有第三方本机库的源代码,因为通常当我们在Android之外编译和链接这些库时,它们链接到glibc但不幸的是Android由于liscence和性能问题而不使用glibc。 Android使用称为libc的glibc的淡化版本。对于大多数常用功能,它与glibc具有匹配的符号名称。但据我所知,libc没有一些与Strings相关的功能,它肯定没有一些posix支持。如果您的本机库使用任何已弃用的功能,则必须通过使用libc支持的替代功能并相应地编写lib来为这些功能找到解决方法。

另外,正如你指出的那样,你将不得不使用NDK将Java(Android app / fwk)与原生世界(C ++)连接起来。

虽然这听起来很简单,但根据我的经验,在Android上编译本机库(Android移植)传统上非常耗费时间并且不能保证过度使用。