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);
       }
    }
  • 相关阅读:
    SignalR了解
    轮询、长轮询、长连接、socket连接、WebSocket
    WebSocket
    FileSaver.js 实现浏览器文件导出
    上传文件调用webapi方式
    JS离开页面 弹窗
    微信公众号开发 VS2015本地调试
    C# 微信 企业号通知消息
    nginx防止DDOS攻击配置
    如何在终端使用后台运行模式启动一个Linux应用程序
  • 原文地址:https://www.cnblogs.com/hack132/p/5155766.html
Copyright © 2011-2022 走看看