zoukankan      html  css  js  c++  java
  • Android JNI和NDK的关系

    转自:http://blog.csdn.net/elfylin/article/details/6121466

    1、什么JNI

    Java Native Interface(JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机(VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。

    上面过程分为2个部分:

    第一、用C语言生成一个库文件。

    第二、在java中调用这个库文件的函数。

    2、NDK

    NDK全称:Native Development Kit。
    NDK是一系列工具的集合。
    * NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
    * NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
    * NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。

     个人理解,NDK就是能够方便快捷开发.so文件的工具。

    JNI的过程比较复杂,生成.so需要大量操作,而NDK就是简化了这个过程。

      

    3、java中调用.so文件代码

    其中,在java中加载库文件的代码如下:

         System.loadLibrary(*.so的档案名);

        例如,Android框架里所提供的MediaPlayer.java类,含指令:

         public class MediaPlayer{   

             static {

                       System.loadLibrary("media_jni");

                  }

         }

  • 相关阅读:
    【3】hexo+github搭建个人博客的主题配置
    【2】hexo+github搭建个人博客的简单使用
    每日思考(2020/05/06)
    每日思考(2020/05/05)
    每日思考(2020/03/27)
    文件和异常
    每日思考(2020/03/24)
    图形用户界面和游戏开发
    每日思考(2020/03/19)
    面向对象进阶
  • 原文地址:https://www.cnblogs.com/wliangde/p/3679175.html
Copyright © 2011-2022 走看看