JNI支持C++與C的區別

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++的優點

  不須要的函數參數名稱能夠不命名參數。

相關文章
相關標籤/搜索