如何成功实施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. 使用Hamcrest增强JUnit的测试能力

    package com.jadyer.service; import java.util.HashMap; import java.util.Map; import org.hamcrest.Matc ...

  2. Hadoop-2.2.0中国文档—— MapReduce 下一代 -- 公平调度

    目的 此文档描写叙述了 FairScheduler, Hadoop 的一个可插入式的调度器,同意 YARN 应用在一个大集群中公平地共享资源. 简单介绍 公平调度是一种分配资源给应用的方法.以致到最后 ...

  3. poj 3399 Product(数学)

    主题链接:http://poj.org/problem?id=3399 Product Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  4. ZOJ 2334(Monkey King-左偏树第一题)

    Monkey King Time Limit: 10 Seconds      Memory Limit: 32768 KB Once in a forest, there lived N aggre ...

  5. An Overview of Complex Event Processing

    An Overview of Complex Event Processing 复杂事件处理技术概览(一) 翻译前言:我在理解复杂事件处理(CEP)方面一直有这样的困惑--为什么这种计算模式是有效的, ...

  6. Node.js : 我只需要一个店小二

    刚刚开始接触Node.js时, google了很多文章,但发现大部分都是泛泛的介绍安装,配置,以及介绍几个小例子 有一种雾里观花的感觉,所以非常困惑,不知道Node.js到底解决了什么问题,它的优势到 ...

  7. 游戏碰撞OBB算法(java代码)

    业务需求      游戏2D型号有圆形和矩形,推断说白了就是碰撞检测 :      1.圆形跟圆形是否有相交      2.圆形跟矩形是否相交       3.矩形和矩形是否相交           ...

  8. C# Windows Phone 8 WP8 高级开发,制作不循环 Pivot ,图片(Gallery)导览不求人! 内附图文教学!!

    原文:C# Windows Phone 8 WP8 高级开发,制作不循环 Pivot ,图片(Gallery)导览不求人! 内附图文教学!! 一般我们在开发Winodws Phone APP 的时候往 ...

  9. template method pattern

    //DataViewer.cs using System; namespace TemplateMethodSample { abstract class DataViewer { //抽象方法:获取 ...

  10. mySQL中删除unique key的语法 (删除某个字段的唯一性)

    mySQL中删除unique key的语法 CREATE TABLE `good_booked` (  `auto_id` int(10) NOT NULL auto_increment,  `goo ...