DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > 移动应用 > Android

android studio环境配置之(AndroidStudio开发NDK)

说到 NDK 开发,其实是为了有些时候为了项目需求需要调用底层的一些 C/C++ 的一些东西;另外就是为了效率更加高些。

但是很多时候能不用就不用;这个是啥原因?个人感觉有些时候是觉得麻烦,首先要配置 NDK 还要 下载 Cygwin ,配置 Cygwin ,然后需要编译生成,哎太麻烦了。如果你说使用 Eclipse,的确这样在编译上是能简单很多,但是前期也是需要配置一大堆;哎,配置错了还伤不起。

现在谷歌主力推动 Android Studio 这个是个不错的工具,至少现在来看在 Eclipse 上能做到的 这边都有,这边有的Eclipse上不一定有。

下面来说说 在 Android Studio 中怎么进行 NDK 的开发。

准备工作 Android Studio 环境搭建

NDK 环境搭建

都是可执行文件,下载后点击即可解压到当前文件夹;当然你可以使用命令行来进行跨文件夹解压的。

建立一个项目 NDKDemo:

建立对应的类,在 MathKit 中我们实现计算 INT 值的平方数。

1
2
3
4
5
6
7
publicclassMathKit {
    publicstaticnativeintsquare(intnum);
 
    static{
        System.loadLibrary("JniDemo");
    }
}
StringKit 这个就是充数用的:
1
2
3
4
5
6
publicclassStringKit {
    publicstaticnativevoidsetNull(String str);
    static{
        System.loadLibrary("JniDemo");
    }
}

准备 .h 文件

进入Java目录;CMD 进入该目录进行 javah 操作:

这个想必大家并不陌生吧,该文件就是 java 类对应的 头文件,当然如果你比较厉害的话可以不用这样生成,自己敲代码完成也行;反正我是不行。

如下,建立文件夹:

拷贝之前的文件进去:

分别实现:

net_qiujuer_ndkdemo_jni_MathKit.cpp

1
2
3
4
5
6
7
#include <net_qiujuer_ndkdemo_jni_MathKit.h>
 
JNIEXPORT jint JNICALL Java_net_qiujuer_ndkdemo_jni_MathKit_square
  (JNIEnv *env, jclass cls, jint num)
  {
        returnnum*num;
  }
net_qiujuer_ndkdemo_jni_StringKit.cpp
1
2
3
4
5
6
7
#include <net_qiujuer_ndkdemo_jni_StringKit.h>
 
JNIEXPORTvoidJNICALL Java_net_qiujuer_ndkdemo_jni_StringKit_setNull
  (JNIEnv *env, jclass obj, jstring str)
  {
 
  }

设置项目

设置根目录中的:local.properties

该设置不是必须,如果你设置了环境变量则可不用设置;如果没有但是又没有设置将会出现:


设置 APP 项目 build.gradle

该设置是为了设置生成的Jni名称为:JniDemo

主文件调用:

现在点击运行:

可以看见是非常简单的;这个调用可以说是我操作过最简单的了;甚至于生成 .H 文件都可以编辑 .sh 文件来进行批处理(这个后面有时间再说).


更多

在平时的那些操作中我们不可避免的要建立:

Android.mk

1
2
3
4
5
6
7
8
9
LOCAL_PATH      := $(call my-dir)
 
include $(CLEAR_VARS)
 
LOCAL_MODULE    := genius
LOCAL_SRC_FILES := net_qiujuer_imageblurring_jni_ImageBlur.cpp
LOCAL_LDLIBS    := -lm -llog -ljnigraphics
 
include $(BUILD_SHARED_LIBRARY)
Application.mk
1
2
3
APP_ABI     := all
APP_PLATFORM:= android-19
APP_OPTIM   := release
而这里这两个文件都没有建立,那么是怎么决定的呢?

我们可以在 ndk 的 modelName 上按住 Ctrl 进行点击将会出现这个界面:



这些就是全部能够设置的参数。分别对应:

1
2
3
4
5
6
7
ndk{
            moduleName"JniDemo"// 设置生成的文件名
            cFlags"-DANDROID_NDK -D_RELEASE"//这个对应的是生成模式
            ldLibs"m","log","jnigraphics"//这个对应LOCAL_LDLIBS但是需要去掉前面的 “l”
            abiFilters"all"//这个是对应的APP_ABI
            stl"stlport_shared"//这个对应的是APP_STL
        }

好了,就这些祝大家成功。

from http://my.oschina.net/u/1377710/blog/359000

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号