首页 > 代码库 > JNI支持C++与C的区别
JNI支持C++与C的区别
1. C++的代码后缀是".cpp"
2. 在JNI.h 文件中有两套代码。一套是支持c的, 一套是支持JNI的。
JNI。h地址:mac ? 用户 ? douj ? Documents ? android-ndk-r10b ? platforms ? android-8 ?
JNI中针对C的代码是:
jstring (*NewStringUTF)(JNIEnv*, const char*);
C中调用方式:
(*env)->NewStringUTF(env,"haha from c");
JNI中针对C++的代码是:
jstring NewStringUTF(const char* bytes)
{ return functions->NewStringUTF(this, bytes); }
C++中调用方式
JNIEXPORT jstring JNICALL Java_cn_itcast_cpp_DemoActivity_helloInC (JNIEnv * env, jobject obj){ return env->NewStringUTF("haha from c");}
3. 修改 Android.mk 文件
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) #针对C++的支持,标记c++文件的扩展名名称 LOCAL_CPP_EXTENSION := cpp #打的包模块名称。 会根据这个生成libHello.so库。 LOCAL_MODULE := Hello LOCAL_SRC_FILES := Hello.cpp #需要编译的相关C、c++ 代码 # 日志支持 LOCAL_LDLIBS += -llog include $(BUILD_SHARED_LIBRARY)
4. C++的优势
不需要的函数参数名称可以不命名参数。
JNI支持C++与C的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。