如何成功运行SDL官方提供的Android平台的Demo

zjwijy 2015-01-31

编写说明:SDL的官方提供了一个Android的demo模板SDLActivity,无法直接运行,按照官方的文档操作过程中也会遇到很多问题,这里把我成功编译并运行的过程记录下来,希望对大家有所帮助!

SDL简介:SDL是Simple DirectMedia Layer的缩写,它是一套开源的C语言跨平台多媒体开发库,提供了多种控制图像,声音等接口,广泛用于游戏,媒体播放器,模拟器开发等。

基本环境:
1. 操作系统:Windows7 64位;
2. Android SDK开发环境: adt-bundle-windows-x86_64-20130729.zip
3. Android NDK开发包:android-ndk-r9d-windows-x86_64.zip


操作步骤:
第一步:准备SDL源代码包;
1. 去http://www.libsdl.org/官网下载最新版SDL2-2.0.3.tar.gz;
2. 解压后,可以在根目录下找到android-project目录和README-android.txt,前者是一个一个Android工程模板,后者是关于如何使用该工程的文档说明。
3. 调整目录,使其成为一个可编译的工程:
    (1) 将android-project目录剪切到与SDL2-2.0.3同级的目录;
    (2) 然后将SDL2-2.0.3目录拷贝到android-project\jni目录下,并重命名为SDL;


第二步:为SDL增加main函数
(1) mainhttp://wiki.libsdl.org/Tutorials#Android.c文件可以从http://www.dinomage.com/wp-content/uploads/2013/01/main.c下载;
(2) 下载之后将其放入android-project\jni\src目录;
(3) 将main.c加入android-project\jni\src\Android.mk: 在Android.mk中默认有个YourSourceHere.c,将其替换为main.c即可;


第三步:编译libSDL2.so和libmain.so
注:请确认NDK的bin目录已经配置到环境变量PATH中去;
打开cmd命令窗口,进入到android-project目录,然后执行"ndk-build"命令进行编译。编译成功后会在android-project根目录下生成libs目录,下面有各个平台的需要的这两个so文件。


第四步:修改build target配置文件
默认的工程是使用的=android-12,必须使这个target与你系统配置的一致,否则编译会失败. 具体的配置位于android-project/project.properties和android-project/default.properties中。由于adt-bundle-windows-x86_64-20130729.zip包对应的是android-18,因此需要将这两个文件中的配置全部改为android-18.


第五步:导入Eclipse运行
依次选择File->New->Android->Android Project from Existing Code,然后选择android-project目录将工程文件导入到Eclipse中。
然后选择按照正常的Android工程运行即可。这个时候程序闪一下什么都没有,因为没有添加资源。可下载一个bmp图片放到android-project/assets中,这个目录是由eclipse自动生成的。然后运行就可以看到通过SDL渲染出来的图片了。这 里提供一个官方文档中提到的bmp地址:http://www.dinomage.com/wp-content/uploads/2013/01/image.bmp 。整个工程的源代码可以到我的github上去下载,地址:https://github.com/dennishucd/SDLActivity

参考资料:
1. http://wiki.libsdl.org/Tutorials#Android
2. http://www.dinomage.com/2013/01/howto-sdl-on-android/

相关推荐