NDK 惯用到的三个宏,精简JNI接口函数名称
NDK 常用到的三个宏,精简JNI接口函数名称
1.Test.java:
public native void test();
2.Testjni.cpp
#include <jni.h>
#include <android/log.h>
#define LOG_TAG "Testjni.cpp"
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
//几个常用的宏
#define NAME1(CLZ, FUN) Java_##CLZ##_##FUN
#define NAME2(CLZ, FUN) NAME1(CLZ, FUN)
#define NAME(FUN) NAME2(CLASS, FUN)
extern "C" {
JNIEXPORT void JNICALL NAME(test)(JNIEnv *env, jclass obj, jint bitRate){
LOGE("Test hello world....");
}
}
3.Android.mk
// 追加下面:指明1中Test.java的包名和类名(注:以后包名或类名有更改时,只需要更改下面语句即可)
LOCAL_CFLAGS := -DCLASS=包名_类名
此文参考该开源项目:https://github.com/tewilove/faplayer