如何成功实施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. ecshop加广告出现广告位的宽度值必须在1到1024之间的解决方法

    ecshop加广告出现广告位的宽度值必须在1到1024之间,这点是非常郁闷的,因为现在宽屏网站逐渐成为主流,越来越多的宽屏网站进入了我们的视线,比如京东啊,一号店啊. 但是ecshop的广告位却不能超 ...

  2. 【设计优化】-使用缓冲(Buffer)提高程序性能

    缓冲区是一块特定的内存区域.开辟缓冲区的目的是通过缓解应用程序上下层之间的性能差异,提高系统性能. 缓冲能够协调上层组件和下层组件的性能差异.当上层组件性能因为下层组件时,能够有效地降低上层组件对下层 ...

  3. Oracle SQL Lesson (11) - 创建其他数据库对象(试图/序列/索引/同义词)

    schema(模式)一个用户下一组对象的集合,一般与用户名一致. 视图 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias].. ...

  4. 重写PHP的explode办法

    function rexplode($delimiter, $str){ $d_len = strlen($delimiter); $arr = array(); $i = $pos = 0; whi ...

  5. Eclipse+Maven创建webapp项目<二> (转)

    Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...

  6. Linux 下卸载MySQL 5

    对于在Linux下通过rpm方式的mysql,我们能够通过移除这些rpm包以及删除项目的文件夹来达到卸载的目的.本文演示了在SUSE Linux 10下下载MySQL 5.5.37.详细见下文. 1. ...

  7. svn加入新的文件夹

    方法一: 1.在远程server上生成新的文件夹 svn mkdir http://svn.xxx.com/svn/mobile/strategy/assistant/branches/talk -m ...

  8. 【LeetCode】Triangle 解决报告

    [称号] Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjac ...

  9. 【翻译自mos文章】回收 asm磁盘空间的方法

    回收 asm磁盘空间的方法 參考原文: How To Reclaim Asm Disk Space? (Doc ID 351866.1) 适用于: Oracle Database - Enterpri ...

  10. 使用 WPF 实现所见即所得HTML编辑器

    Introduction In this tip, you will learn the use of WPF webbrowser control and the use of the librar ...