如何成功实施SDL提供的官方Android平台Demo
作者:雨水  日期:2014-4-30

编写说明:SDL的官方提供了一个Anroid的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,前者是一个一个Androidproject模板,后者是关于怎样使用该project的文档说明。
3. 调整文件夹。使其成为一个可编译的project:
    (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中。
然后选择依照正常的Androidproject执行就可以。这个时候程序闪一下什么都没有。由于没有加入资源。可下载一个bmp图片放到android-project/assets中,这个文件夹是由eclipse自己主动生成的。

然后执行就能够看到通过SDL渲染出来的图片了。

这 里提供一个官方文档中提到的bmp地址:http://www.dinomage.com/wp-content/uploads/2013/01/image.bmp 。整个project的源码能够到我的github上去下载,地址:https://github.com/dennishucd/SDLActivity


作者:雨水。转载请注明出处:http://blog.csdn.net/gobitan/article/details/24771311 
參考资料:

版权声明:本文博客原创文章,博客,未经同意,不得转载。

如何成功实施SDL提供的官方Android平台Demo的更多相关文章

  1. 《React Native 精解与实战》书籍连载「Android 平台与 React Native 混合开发」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  2. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  3. android app性能优化大汇总(google官方Android性能优化典范 - 第2季)

    Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的 ...

  4. 【转】Android平台下利用zxing实现二维码开发

    http://www.cnblogs.com/dolphin0520/p/3355728.html 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描 ...

  5. Android平台之不预览获取照相机预览数据帧及精确时间截

    在android平台上要获取预览数据帧是一件极其容易的事儿,但要获取每帧数据对应的时间截并不那么容易,网络上关于这方面的资料也比较少.之所以要获取时间截,是因为某些情况下需要加入精确时间轴才能解决问题 ...

  6. Android平台中实现对XML的三种解析方式

    本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...

  7. Android平台的Swift—Kotlin

    WeTest 导读 Kotlin 已经出来较长一段时间了,有些同学已经对Kotlin进行了深入的学习,甚至已经运用到了自己的项目当中,但是还有较多同学可能只是听过Kotlin或简单了解过,这篇文章的目 ...

  8. Android 平台 Native 代码的崩溃捕获机制及实现

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/g-WzYF3wWAljok1XjPoo7w 一.背景 ...

  9. Android平台下利用zxing实现二维码开发

    Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...

随机推荐

  1. 基于Android 下载文件时,更新UI简单帮助类

    因为在项目开发时.有这种简单需求,问谷歌,网络上也有好多Utils工具类,可是比較冗余.自己就简单的写了一个简单帮助类. /** * 下载文件,更新UI简单帮助类 * * @author jarlen ...

  2. android的ViewPager和Animation有些使用(二)

    Animation部分 android的animation分scale,rotate,tranlateAnimation,alpha这些类型的 start animation这里有几种方法: < ...

  3. [Java] HttpClient有个古怪的stalecheck选项

    打开stale check会让每次http请求额外消耗15毫秒.而且stalecheck选项缺省是打开的. 这有必要吗???? 在局域网里面调用web api service的时候会死人的. http ...

  4. Red Gate系列之六 SQL Test 1.0.12.3 Edition SQL测试工具 完全破解+使用教程

    原文:Red Gate系列之六 SQL Test 1.0.12.3 Edition SQL测试工具 完全破解+使用教程 Red Gate系列之六 SQL Test 1.0.12.3 Edition S ...

  5. iOS 获取联系人,并调用系统地址簿UI

    1.加入 AddressBook库 推断授权状态 -(bool)checkAddressBookAuthorizationStatus { //取得授权状态 ABAuthorizationStatus ...

  6. Code-Based Configuration (EF6 onwards)

    https://msdn.microsoft.com/en-us/data/jj680699#Using

  7. UVa 12459 - Bees&#39; ancestors

    称号:区区女性有父亲和母亲,区区无人机只有一个母亲,我问一个单纯的无人机第一n随着祖先的数量. 分析:递归.Fib序列. 状态定义:建立f(k)和m(k)分别用于第一k雌蜂和雄蜂的数量: 递推关系:f ...

  8. UVA 1411 - Ants(二分图完美匹配)

    UVA 1411 - Ants 题目链接 题意:给定一些黑点白点,要求一个黑点连接一个白点,而且全部线段都不相交 思路:二分图完美匹配,权值存负的欧几里得距离,这种话,相交肯定比不相交权值小,所以做一 ...

  9. Nagios显示器mysql定从库: libmysqlclient.so.18: cannot open shared object file: No such

    做mysql的slave时间监控,必须check_mysql文字,check当误差: error while loading shared libraries: libmysqlclient.so.1 ...

  10. HDU 4391 Paint The Wall 段树(水

    意甲冠军: 特定n多头排列.m操作 以下是各点的颜色 以下m一种操纵: 1 l r col 染色 2 l r col 问间隔col色点 == 通的操作+区间内最大最小颜色数的优化,感觉非常不科学... ...