1. C++的代碼後綴是".cpp"android
2. 在JNI.h 文件中有兩套代碼。一套是支持c的, 一套是支持JNI的。c++
JNI。h地址:mac ▸ 用戶 ▸ douj ▸ Documents ▸ android-ndk-r10b ▸ platforms ▸ android-8 ▸
函數
JNI中針對C的代碼是:this
jstring (*NewStringUTF)(JNIEnv*, const char*);spa
C中調用方式:日誌
(*env)->NewStringUTF(env,"haha from c");
JNI中針對C++的代碼是:code
jstring NewStringUTF(const char* bytes)orm
{ return functions->NewStringUTF(this, bytes); }blog
C++中調用方式string
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++的優點
不須要的函數參數名稱能夠不命名參數。