您的位置:首页 > 移动开发 > Android开发

android studio NDK 开发初探

2016-05-08 22:13 645 查看

android studio NDK 开发初探

环境配置

1)下载ndk

2)在android studio中配置ndk 路径



3)配置gradle

在gradle.properties中加入 android.useDeprecatedNdk=true配置 开启ndk

在开发过程中我们有时还会用到c++中到stl库这时我们就需要在build.gradle 中加入

defaultConfig {

ndk {

moduleName “jnitest”

stl “stlport_static”

abiFilters “armeabi”, “armeabi-v7a”, “x86”

}

}

因为android studio 中Android.mk文件不可配置。而是根据gradle中的配置自动生成的Android.mk文件

新建工程

在工程目录main下单击鼠标右键新建一个jni folder ,之后使用到c/c++程序代码都放在这个文件夹中

在main文件夹下的 java文件夹下新建一个类例如:JniUtils

并加入代码 public static native String getStringFromJNI();

然后make module一下,目的就是编译成对应的class文件。然后根据生成的class文件,利用javah生成对应的 .h头文件。

点开android studio 的Terminal标签页,默认进入到该项目的app文件夹下。如果在该目录下输入cd src/main 切换到main目录下。

javah -d jni com.vvgool.jni.JniUtils(-d即使没有手动生成jni目录到情况下使用-d也会生成jni目录并在目录中生成)

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_vvgool_jnitest_JniUtils */

#ifndef _Included_com_vvgool_jnitest_JniUtils
#define _Included_com_vvgool_jnitest_JniUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:     com_vvgool_jnitest_JniUtils
* Method:    getStringFromJni
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_vvgool_jnitest_JniUtils_getStringFromJni
(JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif


然后我们就可以在jni文件中新建.cpp文件或者.c文件我这里是新建到test.cpp文件

最后在JniUtils中加入

static{

System.loadLIbrary(“jnitest”);

}在Activity中调用JniUtils.getStringFromJni()方法获取字符串就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: