Android Studio JNI开发的环境配置 NDK

1配置NDK路径
NDK路径配置

2 build.gradle(module):放在defaultConfig里面
ndk{
moduleName “JNI_ANDROID” //so库名字
abiFilters “armeabi”, “armeabi-v7a”, “x86”
ldLibs “log”, “z”, “m”//log支持
}
sourceSets.main {
jni.srcDirs = []
jniLibs.srcDir ‘src/main/libs’
}

3 gradle.properties:
android.useDeprecatedNdk=true

4 写本地方法 加载so库JNI_ANDROID

5 在jni目录下创建Android.mk 文件
LOCAL_PATH := (callmydir)include (CLEAR_VARS)
LOCAL_MODULE := JNI_ANDROID
LOCAL_SRC_FILES := helloc.c
LOCAL_LDLIBS := -llog 在c中打印log
include $(BUILD_SHARED_LIBRARY)

在jni目录下创建Application.mk 文件
APP_MODULES := JNI_ANDROID
APP_ABI := armeabi armeabi-v7a x86

5 配置 NDK快捷命令javah -jni ndk-build ndk-build clean
根据本地方法自动生成.h文件
根据本地方法自动生成.h文件
自动生成so库
自动生成so库
clean后重新生成so
clean后重新生成so

6 分别运行javah -jni ndk-build命令即可

7 C文件如下

#include <string.h>
#include <android/log.h>
#include <jni.h>
#include <stdio.h>

#define LOG_TAG "System.out"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
JNIEXPORT jstring JNICALL Java_com_test_jni_myapplication_MainActivity_getPackname
  (JNIEnv * env, jclass clazz){
   char* cstr = "hello from cFF啊实打实的FF";
   LOGD("测试打印LOG");
          return (*env)->NewStringUTF(env, cstr);

  };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值