微信号:code_gg_home

介绍:分享技术干货,分享最新新闻动态,分享开心段子,让大家轻松愉快的成长.

SDL系列讲解(二) 环境搭建

2017-09-29 07:37 陆晓明

准备环境


    这一节,我们讲解下如何搭建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进行编译,编译完成后,我们可以推送到手机,看到效果。

结束分界线



 
代码GG之家 更多文章 SDL系列讲解(一) 简介 android native内存检测方案(二) 80后的我,记忆里和吃有关的那些事 ANR 原理与实战技巧 大荔冬枣,你值得拥有
猜您喜欢 转化率提升那些事 (上篇) 不谈DSSD,谈谈Xyrate和希捷 Gank React Native客户端开发实践总结 【元旦倒计时】Hey,你造吗,明天就是元旦了! 图像风格化技术(1)