zoukankan      html  css  js  c++  java
  • Android JNI 环境搭建(ADT)

      ADT 下搭建jni环境:

      1、下载NDK开发包,android-ndk-r10e-windows-x86_64.exe,然后解压缩到 ${ndkroot}。

      2、打开ADT,Window->Android->NDK->选择1中解压缩的文件夹  ${ndkroot}。

      3、在需要进行JNI开发的项目上右键,Android Tools -> Add Native Support -> hello。

      4、一切顺利的话,在左侧就出现一个jni文件夹,里面有hello.cpp和Android.mk两个文件。

      5、配置cpp文件的include文件,项目右键-> C/C++ General -> Path and Symbols -> Includes选项卡 -> 左侧选中c,cpp -> 右侧add ${ndkroot}/platforms/android-8/arch-arm/user/include。

      到这里,JNI开发环境配置完成 

      使用注意事项:

       1、Java代码中System.loadLibrary对应Android.mk中的LOCAL_MODULE。

       2、(C++ name mangling) JNI接口以C的方式定义,但使用C++进行实现,因为C++要处理函数重载,会在函数名称中加上参数信息导致生成的函数名称与定义的不同,所以在cpp文件中的函数定义前都要加上extern "C" ,让cpp文件中的函数名得以保留,否则JNI无法找到对应的C++方法名。

      一个例子(libhello.so)

       Java端:

     static {
         System.loadLibrary("hello");
        }
      public  native String HelloWorld();

     cpp文件:

    #include <jni.h>
    extern "C"
    {
       JNIEXPORT jstring JNICALL Java_com_example_jni_MainActivity_HelloWorld(JNIEnv* env, jobject thiz) {
        char* str = "HelloWorld!";
        return (env)->NewStringUTF(str);
       }
    }
  • 相关阅读:
    VUE 入门基础(2)
    VUE 入门基础(1)
    常用正则表达式
    git 常用命令
    JavaScript 常用算法
    SVG 使用
    移动前端头部标签(HTML5 meta)
    开发常用小demo 整理
    Reactjs 入门基础(三)
    Reactjs 入门基础(二)
  • 原文地址:https://www.cnblogs.com/hack132/p/5155766.html
Copyright © 2011-2022 走看看