ndk 环境配置

环境变量配置

将你的ndk 路径配置到 系统环境变量中

         

   配置是否成功

           显示下面信息表示ndk 配置成功

 

  Androidstudio 环境配置如下

     

 下面是一个 小例子

       一、JNI应用

1、在AS中新建一个Project,然后再新建一个class为JniUtils ,在内部声明native方法。
public class JniUtils {


public native String getName();
public native int getAdd(int x, int y);

}

 2.编译 生成class 文件

   

   生成文件如下:

  然后再 Terminal   切换到 debug 目录 如下:

     

         然后执行如下javah命令生成h文件。 javah -jni 报名+ 类名

       例如:  javah -jni model.jnidemo.JniUtils

 

生成如下文件:

    

 

  将文件拷贝到 jni 文件夹下   如果没有创建一个 调用系统自动生成的


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

#ifndef _Included_model_jnidemo_JniUtils
#define _Included_model_jnidemo_JniUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: model_jnidemo_JniUtils
* Method: getName
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_model_jnidemo_JniUtils_getName
(JNIEnv *, jobject);

/*
* Class: model_jnidemo_JniUtils
* Method: getAdd
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_model_jnidemo_JniUtils_getAdd
(JNIEnv *, jobject, jint, jint);

#ifdef __cplusplus
}
#endif
#endif

    然后创建一个 .c文件 例如  test.c

//
// Created by SSQ on 2017/8/22.
//
#include "model_jnidemo_JniUtils.h"

JNIEXPORT jstring JNICALL Java_model_jnidemo_JniUtils_getName
(JNIEnv * env, jobject obj){
return (*env)->NewStringUTF(env,"我是一个Android Studio NDK JNI开发的程序!");
}

/*
* Class: model_jnidemo_JniUtils
* Method: getAdd
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_model_jnidemo_JniUtils_getAdd
(JNIEnv * env, jobject obj, jint a, jint b) {
int sum=a+b;
return sum;
}

AndroidStudio 配置 如下:



    然后 构建程序  生成文件 如下

 

             到此so  文件生成完成

 二   Jni 文件的引用

      创建 相同包名的文件 相同类名的文件   JniUtils 

    并加入 System.loadLibrary("JniDemo2");   这里的JniDemo2 与so 上面的名称相同 moduleName "NdkJniDemo" //生成的so名字

package model.jnidemo;

/**
* Created by wjd on 2017/8/22.
*/

public class JniUtils {
public native String getName();
public native int getAdd(int x, int y);
static {
System.loadLibrary("JniDemo2"); //defaultConfig.ndk.moduleName
}

}

配置文件如下:

到此结束

   网上还有 两种 配置 方法 有兴趣 可以自己查看下 不过 个人觉得  我使用的还可以 。

    

 

 

 

 

 

 

   

 


 

 

 

 

   

  

posted @ 2017-08-22 16:48  ShareHappy  阅读(195)  评论(0编辑  收藏  举报