zoukankan      html  css  js  c++  java
  • 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++的优势

      不需要的函数参数名称可以不命名参数。

  • 相关阅读:
    写给理工科人看的乐理(一)声学基础
    魔方最少记忆还原法
    甲乙两人互猜数字(鬼谷子问题)的逻辑推理与算法建模
    模板元编程实现素数判定
    UVa OJ 194
    UVa OJ 175
    UVa OJ 197
    UVa OJ 180
    UVa OJ 140
    判断input或者div.span等标签是否存在
  • 原文地址:https://www.cnblogs.com/xitang/p/4174584.html
Copyright © 2011-2022 走看看