将一个SDL 2.0游戏移植到安卓平台

18

我有一个用C/C++和SDL 2.0编写的游戏,我想将其移植到移动平台(具体来说是Android,或许还有其他平台)。我了解到SDL原生支持Android,但该游戏最初是为Windows编写的,尽管没有使用任何Windows相关的库或代码。至于Android,我之前只使用过基于Java的SDK,从未将其与本地代码集成过。那么我需要对C/C++进行哪些更改(如果需要)才能在Android平台上使用它?我应该如何将整个游戏编译为APK文件?在应用程序中是否可以同时使用Java和C/C++,我的意思是,游戏的活动将是本地的,但其他活动(菜单、设置等)可以使用常规的Android Java SDK编写?

2个回答

10
在SDL源代码发布中的Android README文件中,概述了大部分关于将SDL应用移植到Android所需知道的内容。还有一个Eclipse示例项目,可以演示如何修改以适应您的需要。

https://hg.libsdl.org/SDL/file/d6a8fa507a45/README-android.txt

iOS的README文件也很有用,尤其是关于事件和输入部分的内容,因为其中很多内容也适用于Android版本。

https://hg.libsdl.org/SDL/file/d6a8fa507a45/README-ios.txt

如果您需要帮助设置构建环境,请查看这个(简短的)教程,其中涵盖了安装ADK和NDK、SDL源代码、构建项目、为Android编程以及与Java进行接口交互等内容。请保留HTML标签。

http://www.dinomage.com/2013/01/howto-sdl-on-android/

http://www.dinomage.com/2013/05/howto-sdl-on-android-part-2-platform-details/


1
自从我写下这些问题以来,我一直在阅读和实验这个主题。后来我明白了我的问题应该主要针对OpenGL Core和ES版本之间的区别。你在这里提到的SDL中的示例项目几乎回答了我所有的问题。非常感谢! - UnTraDe
Readme的链接已经失效。 - Hubro
谢谢@hubro,我已经修复了链接。 - nick.amor
我已经按照自述文件并从示例项目开始,但我缺少libmain。http://stackoverflow.com/questions/26198562/ive-followed-dinomages-guide-to-sdl-on-android-but-its-not-making-libmain。谢谢 - John

2

(1)

我不了解SDL,但只要您调用的是Android NDK支持的内容和任何Android支持的库,应该就可以了。我想您需要设置工具链,以便将其与Android的SDL链接?

(2)

是的,从Android SDK调用C++(NDK)和反之亦可(请参见3)。

(3+ rest)

请参见https://developer.android.com/tools/sdk/ndk/index.html。如果您下载NDK,还可以查看如何使用NDK编译APK的示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接