1、创建jni目录
在man中右键新添加目录 目录名jni
2、添加源文件
Android.mk如下
LOCAL_PATH := $(call my-dir)
# our own branch needs these headers
include $(CLEAR_VARS)
#LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../include
LOCAL_LDLIBS:= -llog
LOCAL_SRC_FILES := $(LOCAL_PATH)/UacHid.c \
LOCAL_MODULE := UacHid.default
include $(BUILD_SHARED_LIBRARY)
# ================================
UacHid.c如下
//C file for SystemInformation
//YBSzhang
//2020.12.17
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <jni.h>
#include <fcntl.h>
#include <unistd.h>
//描述:获取目前设备的sn号。
JNIEXPORT jstring JNICALL Java_tech_oom_idealrecorder_USBHidStatusThread_readhidstatus
(JNIEnv *env, jobject obj) {
const char buf[100] = "helloworld!~";
return (*env)->NewStringUTF(env,buf);
}
值得注意的点就是一个:
Java_tech_oom_idealrecorder_USBHidStatusThread_readhidstatus
命名规则为调用这个函数的java文件的包名+文件名+函数名
我这里的调用它的包名为:tech.oom.idealrecorder
文件名为:USBHidStatusThread
函数名为:readhidstatus
加载的动态库名字如Android.mk中为UacHid.default.so
3、配置文件修改
externalNativeBuild {
// cmake {
// path "src/main/cpp/CMakeLists.txt"
// version "3.10.2"
// }
ndkBuild {
path '/home/dexing/AndroidStudioProjects/IdealRecorder/IdealRecorder/library/src/main/jni/Android.mk'
//path 'C:/Users/dell/Desktop/AS_project/fistjni/app/src/main/cpp/NEW_HAL/hal/Android.mk'
}
}
在build.gradle中的android下添加如上配置;
修改刚添加的Android.mk的绝对路径即可
ok结束~这个只是添加单个文件的方法。
后期会介绍如果jni是个庞大的结构
需要怎么配置,最后生成更多库