NDK入门

1、安装NDK开发工具:进入Android Studio->Preferences->Android SDK->SDK Tools,找到NDK安装:
这里写图片描述

2、新建project,在gradle.properties中加入

android.useDeprecatedNdk=true

在app中的build.gradle的defaultConfig中加入

ndk {
            moduleName "JNISample"
            stl "stlport_static"
            ldLibs "log"
        }

3、创建JNIUtils类,声明一个native方法:

public native int add(int a,int b);

build工程,生成build/intermediates/classes/debug文件夹
在Terminal中cd到debug文件夹,执行命令:

javah -jni com.yjs.ndkdemo.JNIUtils  

会在dubug文件夹下生成c++头文件:
这里写图片描述
内容如下:

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

#ifndef _Included_com_yjs_ndkdemo_JNIUtils
#define _Included_com_yjs_ndkdemo_JNIUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_yjs_ndkdemo_JNIUtils
 * Method:    add
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL Java_com_yjs_ndkdemo_JNIUtils_add
  (JNIEnv *, jobject, jint, jint);

4、在main文件夹下创建一个jni文件夹,并将上一步生成的头文件拷贝到jni中,
然后在jni中创建.cpp文件:
这里写图片描述

在其中实现头文件的方法:

JNIEXPORT jint JNICALL Java_com_yjs_ndkdemo_JNIUtils_add(JNIEnv *env, jobject obj, jint a, jint b) {
    return (a + b);
}

5、调用native方法:
首先在声明native方法的类中加入

 static {
        System.loadLibrary("JNISample");
    }

其中”JNISample”和你在app的build.gradle中声明的ndk的moduleName一致。
之后便可以调用native方法:

 JNIUtils jniUtils = new JNIUtils();
 Log.d("JNIUtils", String.valueOf(jniUtils.add(1,2)));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值