SDL系列讲解(二) 环境搭建
准备环境
这一节,我们讲解下如何搭建SDL 的 Android开发环境。我们当前的电脑环境为:
系统 Window 7 64位
内存 8G (由于Android版本的开发工具Android Studio比较吃内存,所以尽量配置高些,否则开发起来会比较吃力)
好了,环境讲完,我们开始一步步来进行搭建环境了。首先,我们下载Android Studio,这里我是在http://www.android-studio.org/ 网站下载,你也可以去其他地方下载。
安装 Android Studio
我们在http://www.android-studio.org/ 主页,可以看到让我们选择平台,我们这里选择Window 64位平台,同时带默认的SDK版本。
我们点击下载,等待即可。当下载完成后,我们点击程序,进行安装。点击之后的第一个界面如下:
我们点击Next下一步:
我们同意,然后继续
这里我们看到了安装路径,我们默认即可。记住如果要修改路径,不要装在中文路径下。然后我们欢快的看到进度条,等待完成即可。
完成之后,我们点击进入主界面,去完成其他设置。我们点击File->Settings
进入主设置界面,在搜索框输入sdk,进到设置sdk的界面,完成sdk的下载安装:
这里我们选中SDK Platforms 下面的Android 8.0,你也可以选择其他的去下载。
然后我们切换到SDK Tools 下面,选择以下进行下载
这里勾选的,记得都选上,这里说明下LLDB,这个工具是为了调试使用的,同时我们的SDL是c开发的,而我们的Android默认是使用Java开发的,因此我们需要使用Native开发套件,NDK,所以这里也勾选着这个。
然后我们选择Accept,Next,然后确定
静等完成即可。
以上,完成了Android的配置。
下载SDL 源码
进入主页https://www.libsdl.org/ 点击左侧的SDL2.0 进入下载主界面
下载SDL2-2.0.5.zip然后放置到我们的电脑上某个目录,这里为D盘,解压.
我们需要导入SDL目录的android-project。
导入SDL的Android项目
打开android studio
选择这里的Import project,选中我们的android-project目录,点击OK,等待即可。
配置SDL目录
我们需要在android-project 目录的android-project/app/src/main/jni 目录下,将SDL2-2.0.5目录复制一份,放置在这里 ,重命名为SDL。因为我们的jni编译SDL。
导入成功后,我们在android-project/app/src/main/jni/src 下的Android.mk里面,找到
Add your application source files here…LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \
YourSourceHere.c
将这里的YourSourceHere.c改为我们的源码,这里为main.c同时我们在jni/src目录下,创建一个main.c,里面写入一些代码:(我们在assets目录下放了一个sdl.bmp图片)
#include “SDL.h”
int main(int argc, char *argv[]) {
SDL_Window *window;
SDL_Renderer *renderer;
SDL_Event event;
//配置一个图像缩放的效果,linear效果更平滑,也叫抗锯齿
//SDL_setenv(SDL_HINT_RENDER_SCALE_QUALITY,”linear”,0);
// 初始化SDL
if
(SDL_Init(SDL_INIT_VIDEO) < 0)
return
1;
// 创建一个窗口
window = SDL_CreateWindow(
“SDL_RenderClear”
, SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, 0, 0, SDL_WINDOW_SHOWN);
// 创建一个渲染器
renderer = SDL_CreateRenderer(window, -1, 0);
// 创建一个Surface
SDL_Surface *bmp = SDL_LoadBMP(
“sdl.bmp”
);
//设置图片中的白色为透明色
SDL_SetColorKey(bmp, SDL_TRUE, 0xffffff);
// 创建一个Texture
SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, bmp);
//清除所有事件
SDL_FlushEvents(SDL_FIRSTEVENT, SDL_LASTEVENT);
//进入主循环
while
(1) {
if
(SDL_PollEvent(&event)) {
if
(event.type == SDL_QUIT || event.type == SDL_KEYDOWN || event.type == SDL_FINGERDOWN)
break
;
}
//使用红色填充背景
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
SDL_RenderClear(renderer);
// 将纹理布置到渲染器
SDL_RenderCopy(renderer, texture, NULL, NULL);
// 刷新屏幕
SDL_RenderPresent(renderer);
}
// 释放Surface
SDL_FreeSurface(bmp);
// 释放Texture
SDL_DestroyTexture(texture);
//释放渲染器
SDL_DestroyRenderer(renderer);
//释放窗口
SDL_DestroyWindow(window);
//延时
//SDL_Delay(8000);
//退出
SDL_Quit();
return
0;
}
然后我们修改下android-project/app 的build.gradle
加入一些内容
android { … defaultConfig { … ndk { abiFilters “armeabi”, “armeabi-v7a” ,”x86” } } externalNativeBuild { ndkBuild { path file(“src/main/jni/Android.mk”) } } …}
然后我们在File–Project Structure 里面,将android ndk path 选择本地的ndk根目录比如这里的C:\Users\Administrator\AppData\Local\Android\Sdk\ndk-bundle
然后,编译,运行即可.
配置Android Studio内存
从File->Settings… 在此处选择Appearance&Behavior Appearance 右侧 勾选show memory indicator,这样子IDE的右下角就有了显示当前内存以及总内存情况。
同时我们在Help菜单下,选择 Edit Custom VM Options,如果让创建文件,点OK即可,我们在里面写入如下语句:
-Xms1024m-Xmx3072m-XX:MaxPermSize=1024m-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-da-Djna.nosys=true-Djna.boot.library.path=-Djna.debug_load=true-Djna.debug_load.jna=true-Dsun.io.useCanonCaches=false-Djava.net.preferIPv4Stack=true-Didea.paths.selector=AndroidStudio2.2-Didea.platform.prefix=AndroidStudio-Didea.jre.check=true主要前两行来决定初始内存大小(-Xms1024m),以及最大内存(-Xmx3072m)如此设置后,就会避免IDE在工程变得太大的时候,出现很卡的情况。
编译Apk以及运行
完成上面的所有操作,然后我们点击上方的Build->Build Apk进行编译,编译完成后,我们可以推送到手机,看到效果。
结束分界线
SDL系列讲解(二) 环境搭建相关推荐
- Vuforia 系列讲解 – 02 环境搭建
注册账号 1.前往 Vuforia官网 点击"Register"按钮,进行账号注册. 2.填写相应的资料. 3.点击"Creat account" 按钮后, ...
- win10编译OpenCV4Android系列1-Android编译环境搭建
win10编译OpenCV4Android系列1-Android编译环境搭建 前言 一.配置JDK 1.下载JDK 2.安装JDK 二.配置AndroidSDKTools 1.下载AndroidSDK ...
- 【Hexo搭建GitPage博客系列】02.环境搭建
转载声明:商业转载请联系作者获得授权,非商业转载请注明出处.原文来自 © 呆萌钟[Hexo搭建GitPage博客系列]02.环境搭建 前言 Hexo搭建博客需要基于Node.js环境,而且依赖于Git ...
- 【瑞萨RA4系列】开发环境搭建和点灯指南
[瑞萨RA4系列开发板体验]开发环境搭建和新手点灯指南 文章目录 [瑞萨RA4系列开发板体验]开发环境搭建和新手点灯指南 一.简单开箱 二.芯片简介 三.开发环境搭建 2.1 安装FSP(RASC) ...
- 王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建跑起来模拟器!
原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 学习一门新的技术前,我一般会翻看官方文档,源码,以及网上的一些总结,好形成一个初步印象,让开发的时候心中有谱. ...
- 【s32k】s32k14x系列(1)——开发环境搭建
文章目录 s32k1xx环境搭建 1. S32K系列MCU开发环境 2. 软件安装包及SDK获取 3. 软件安装 s32k1xx环境搭建 1. S32K系列MCU开发环境 主要有以下三种环境供我们选择 ...
- Xavier NX载板RTSO-6002/E 系列烧录及环境搭建
http://www.realtimes.cn/cn/product/product-21-889.html realtimes2022 官方资料 使用版本:R32.5.1_for TX2_Xavie ...
- 涂鸦Zigbee SDK开发系列教程——2.环境搭建
本章节主要介绍如何搭建涂鸦 Zigbee ZSU 模组 SDK 开发环境. IAR安装 前往 IAR 官网下载 IAR Embedded Workbench IDE(IAR for Arm),下载安装 ...
- stm32 micropython环境搭_MicroPython 玩转硬件系列1:环境搭建
1.引言 最近几年Python语言非常火,听说小学生都开始学Python了,让我这个中年人感到一丝丝压力.为了以后最起码能辅导辅导孩子,咱也得学学啊.学Python干什么用呢?我这本身是做嵌入式的,听 ...
最新文章
- 西数更新PiDrive产品线:250/375GB硬盘、64GB闪存盘
- swift golang java,解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)
- 以下不能在python编译环境_win7 下解决python 集成编译环境IDLE无法打开的问题。...
- matlab和robotstudio,MATLAB与Robotstudio建立socket通信(初探)
- 如果不是没有钱,谁想测3个重复?
- python学习点滴记录-Day01
- MySQL数据表查询操作
- php array_change_key_case()
- 盘点一道窗口函数的数据分析面试题
- MFC release 发送到桌面快捷方式图标问题
- matlab trapz二重积分函数_用MATLAB计算某些区域上的二重积分666.doc
- 使用TortoiseGit 进行cherry pick 操作
- 如何使用Nmap扫描所有TCP和UDP端口?
- 九 iOS之 图片剪裁
- 数据分析系列 9/32 | Excel进行回归分析,预测真实值
- C语言基础习题及答案7
- python杨辉三角居中_利用python打印杨辉三角
- linux shell 判断一个文件是不是链接文件
- 王者荣耀微信哪个服务器人多,明明是用微信的比用QQ的多,那为何王者荣耀QQ区人更多?...
- Java成员方法getinfo_成员方法
热门文章
- 数据网络卡顿怎么处理_手机流量卡顿怎么办
- 移动端html右滑空白,移动端之touch事件_上滑、下滑、左滑和右滑
- 【目标检测】56、目标检测超详细介绍 | Anchor-free/Anchor-based/Backbone/Neck/Label-Assignment/NMS/数据增强
- WOW.js – 在页面滚动时展现动感的元素动画效果
- 折扣和折让的财会处理差异
- 关于va_start
- Jackson科普:为基于抗体的研究选择荧光团
- Text Classification Algorithms: A Survey——1. Introduction引言
- C语言和汇编模块化混合编程解决兔子数量问题
- C罗和梅西谁在西甲和欧冠中表现更佳?