• 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");

                  }

         }

  • 相关阅读:
    DOCTYPE和namespace
    由浅入深漫谈margin属性
    checkbox的完美用户体验
    XSL 属性模板的运用
    各浏览器里默认的表单控件(form controls)
    简单form标准化实例(二):语义结构
    zindex在IE中的迷惑(二)
    最简单的清除浮动的方法
    Default style sheet for HTML 4
    PNG透明背景图片的无界应用
  • 原文地址:https://www.cnblogs.com/wliangde/p/3679175.html
Copyright © 2020-2023  润新知