如何将PC游戏移植到用C语言编写的Android
作者:互联网
我想创建一个像太空侵略者这样的简单游戏.我知道我可以使用Android NDK,但必须移植使用的库.我不能使用第三方专有库.
我将使用OpenGL,但是OpenGL API在Android上似乎有所不同.我必须使用jpeg和png纹理,并编写文本.我可以为Android编译libjpeg,libpng和freetype吗?
我不能具体实现游戏引擎(C)和渲染例程(C和OpenGL),因为那是复杂的部分.
我准备为每个平台实施一些组件.窗口系统和用户输入没有问题,因为我将为每个系统使用特定的实现,所以对我来说很简单.
我将SDL及其扩展名用于PC上的音频,但是它易于使用.我可以为Android使用特定的音频库.
谢谢
解决方法:
Can I compile libjpeg, libpng and freetype for Android?
是的,您将必须重新编译所有专门用于Android的本机库.是的,您确实需要计划使用的所有第3方本机库的源代码,这仅仅是因为通常当我们在Android外部编译并链接这些库时,它们会链接到glibc,但不幸的是,由于许可和性能问题,Android不使用glibc. Android使用称为libc的glibc精简版.对于大多数常用功能,它具有与glibc匹配的符号名称.但是据我所知,libc没有与字符串相关的某些功能,并且绝对没有posix支持.如果您的本机库正在使用任何不推荐使用的功能,则必须使用libc支持的替代功能并相应地对您的库进行编码,以找到针对这些库的解决方法.
此外,正如您正确指出的那样,您将必须使用NDK将Java(Android app / fwk)与本机世界(C)进行接口.
尽管按照我的经验听起来很简单,但在Android上编译本机库(Android porting)传统上非常耗时,而且无法保证成功.
标签:porting,c,android 来源: https://codeday.me/bug/20191023/1913433.html