将一款SDL 2.0游戏移植到Android平台

Porting an SDL 2.0 game to Android

本文关键字:游戏 平台 Android SDL 一款      更新时间:2023-10-16

我有一个用C/c++和SDL 2.0编写的游戏,我想把它移植到移动平台(特别是Android,也许还有其他平台)。我听说SDL原生支持Android,但游戏本身最初是针对Windows编写的,尽管没有使用依赖于Windows的库/代码。至于Android,我以前只使用基于Java的SDK,从未将其与本机代码集成。我必须对C/c++进行哪些更改(如果有的话)才能在Android平台上使用它?我究竟如何将整个东西编译成APK?是否有可能在应用中使用Java和C/c++,我的意思是,游戏的活动将是原生的,但其他活动(菜单,设置等)可以用常规的Android Java SDK编写?

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接口。

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)

我对SDL一无所知,但只要你只调用android NDK和任何android支持的库,它应该是可以的。我猜你将不得不建立你的工具链,使它与SDL的android链接?

(2)是的,可以从android sdk调用c++ (ndk),反之亦然(见3)

(3 +其他)

https://developer.android.com/tools/sdk/ndk/index.html

如果你下载了NDK,你还可以看到如何用NDK编译成APK的例子