zoukankan      html  css  js  c++  java
  • JNI介绍

    1.基础知识

      JNI(Java Native Interface)Java原生接口

      使用JNI可以使java代码其它代码(如c)进行交互

      问:为什么要进行交互?

      |-  首先,Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低。

      |-  然后,Java语言无法直接操作硬件,C/C++代码不仅能操作硬件而且还能发挥硬件最佳性能。

      |-  接着,使用Java调用本地的C/C++代码所写的库,省去了重复开发的麻烦,并且可以利用很多开源的库提高程序效率

      //以上为牛人总结,本人mark一下而已

    2.jni使用过程

      1.检验C代码的正确性,c代码必须提供个main方法

      2.在activity中编写native方法 

     1 public native int getPressure();

      3.到cmd中运行javah命令

      D:\jniroom\monitor\bin\classes>javah com.dazhu.MonitorActivity

       生成com_dazhu_MonitorActivity.h

      4.根据com_dazhu_MonitorActivity.h来写java调用c方法

       Hello.c

      5.得到Android.mk文件,放到与Hello.c,com_dazhu_MonitorActivity.h同一个目录下 

     1 LOCAL_PATH := $(call my-dir)
     2 
     3 include $(CLEAR_VARS) 
     4 
     5 LOCAL_MODULE    := Hello
     6 LOCAL_SRC_FILES := Hello.c 
     7 include $(BUILD_SHARED_LIBRARY)

      6.使用Cygwin来使Hello.c生成库文件,打开cygwin来到android工程目录

      Administrator@china-80491747f /cygdrive/d/jniroom/monito
      $ ndk-build
      Compile thumb : Hello <= Hello.c
      SharedLibrary : libHello.so
      Install : libHello.so => libs/armeabi/libHello.so

      7.在java代码中引用libHello.so库

       System.loadLibrary("Hello");

      8.然后就噢了~~~~~~,可以调用使用java代码中的native方法了

  • 相关阅读:
    如何使用xshell在阿里云服务器上安装tomcat
    如何使用Xshell连接阿里云服务器
    jQuery封装ajax的使用方法
    ES6新增语法
    数组坍塌原理
    JavaScript冒泡排序、选择排序、数组去重
    JS循环嵌套的执行原理
    分栏布局
    如何实现两列固定与一列自适应
    CSS过渡、动画及变形的基本属性与运用
  • 原文地址:https://www.cnblogs.com/fanglove/p/2713024.html
Copyright © 2011-2022 走看看