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
}

}

配置文件如下:

到此结束

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

    

 

 

 

 

 

 

   

 


 

 

 

 

   

  

转载于:https://www.cnblogs.com/shareeveryday/p/7412399.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值