SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台。

1 下载SDL源码

http://www.libsdl.org/download-2.0.php,最新版是2.0.10,此处下载了2.0.9。将源码解压,查看源码目录如下。

android-project是一个模板工程,拷贝此模板工程到另一个文件目录下,拷贝的目的是防止对sdl源码工程进行改动。我的新工程目录在SDL2_Sel_Compile\android-project。

2 复制拷贝相关文件

在拷贝过来的新工程的jni目录中,新建sdl文件夹,拷贝sdl源码根目录中的,如上图的红线圈内的include和src文件目录,以及Android.mk拷贝到新工程的sdl文件夹下。

3 添加源文件

下载main.c,从http://www.dinomage.com/wp-content/uploads/2013/01/main.c下载。在新工程的jni/src目录下,添加此main.c文件。

然后修改jni/src目录下的Android.mk文件。

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := mainSDL_PATH := ../sdlLOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include# Add your application source files here...LOCAL_SRC_FILES := main.cLOCAL_SHARED_LIBRARIES := SDL2LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -lloginclude $(BUILD_SHARED_LIBRARY)

主要修改SDL_PATH和LOCAL_SRC_FILES这2个地方。

4 修改jni目录下的Application.mk

修改APP_ABI,根据实际需求编译生成对应的arm架构的so库。

5 进行编译

先确保环境变量中有配置ndk,定位到jni目录下,执行ndk-build命令。

构建完成生成3个so库,libSDL2.so,以及其编译依赖的libhidapi.so,以及libmain.so。

android sdl编译相关推荐

  1. android 编译 sdl,使用android ndk编译SDL2示例错误r14

    我已经测试过在我的ubuntu 16.04机器上构建SDL2源代码(2.0.5)中的示例.使用android ndk编译SDL2示例错误r14 根据https://wiki.libsdl.org/An ...

  2. Android ijkplayer 编译踩坑与记录(ijk0.8.8--ffmpeg4.0)

    本文记录了 ijkplayer 的编译完整流程,以及编译过程中遇到的坑及解决方案,如果不想自己编译,可以使用我编译好的结果.已放入 github: ijkplayer_Build4Android 编译 ...

  3. Android 反编译Apk提取XML文件

    Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...

  4. Android系统编译时集成三方APK

    1. 前言 最近在学习Android系统开发,在开发过程中可能要到将三方apk集成到系统中的需求.目前我了解的方法有两种. 一种是在系统编译完毕之后,再将三方apk文件放置到系统目录之下.参考如何将a ...

  5. Android Studio 编译: Program type already present: XXX 解决方案

    Android Studio 编译: Program type already present: XXX 解决方案 参考文章: (1)Android Studio 编译: Program type a ...

  6. Android Studio编译问题-Error:Could not find org.jetbrains.trove4j

    Android Studio编译问题-Error:Could not find org.jetbrains.trove4j 一般来说是AS加载各种包或者库时失败导致的,有可能是网络原因. 因此我们更换 ...

  7. 【错误记录】Android Studio 编译报错 ( Deprecated Gradle features were used in this build, making it incompat )

    文章目录 一.报错信息 二.解决方案 一.报错信息 使用 Android Studio 编译比较老的 Android 项目时 , 报如下错误 : FAILURE: Build failed with ...

  8. 【错误记录】Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. ② | 升级 Gradle 版本 )

    文章目录 一.报错信息 二.解决方案 解决 Could not determine java version from '11.0.8'. 问题 , 有两种方案 , 方案一 : Android Stu ...

  9. 【错误记录】Android Studio 编译报错 ( SDK location not found )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Android Studio 编译报错 : 首次打开别人的项目 , 经常性的报错 ; Could not determine the depende ...

最新文章

  1. 各种 Optimizer 梯度下降优化算法回顾和总结
  2. 连华为都在研究的计算机视觉,到底有多牛?
  3. 在Python这条路上踩过的坑(1)
  4. AF_UNIX和AF_INET
  5. img元素srcset属性浅析
  6. 阿里云市场联合犀思云开启云V认证 首推“严选”模式企业采购更安心
  7. matlab设置等高线标注字体大小,matlab设置图中字体和线条大小等(转)
  8. Ubunut 下安装teamview
  9. sourceinsight界面中的英文解释
  10. PS实用方法(抠出完整的头发丝)
  11. java用户登录注册
  12. matlab时间延迟怎么写,大家帮我看一下这个c_c方法时间延迟的程序运行结果??...
  13. 系统架构中常见问题及解决方案
  14. CANoe隐藏属性——Multi CANoe
  15. Opensea空投详细专业教程
  16. 机器学习常见求逆矩阵的方法
  17. OpenCL与OpenACC的安装
  18. 2021年从事Linux运维云计算前景如何?
  19. activiti 流程实例与业务关联
  20. signature=6f778f12ee5c543045f5827af4fb220b,来用百度密语吧!!!

热门文章

  1. 端口数和最大连接数的关系
  2. Windows To Go入坑记录
  3. 人死了后还有来生吗?
  4. cp2k 编译安装教程
  5. 奇迹gm工具 奇迹批量远程工具
  6. 计算机Excel批量改试卷,Excel批量修改标准化试卷(转)
  7. GUI 图形用户界面编程(十一)-扑克界面设计
  8. 【Python实战】 ---- 爬虫 爬取LOL英雄皮肤图片
  9. NodeJs string与base64互转
  10. 半自动微信消息定时发送