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

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

    }

    }

  • 相关阅读:
    [JZOJ3386] 守卫者的挑战
    [JZOJ3385] 黑魔法师之门
    [JZOJ3383] 太鼓达人
    [JZOJ3382] 七夕祭
    NOIP模拟测试on 2019.9.27
    数据结构测试2 on 2019.9.25
    数据结构测试1 on 2019.9.24
    P2047 [NOI2007]社交网络
    P2286 [HNOI2004]宠物收养场
    P1342 请柬 建反图+dijkstra
  • 原文地址:https://www.cnblogs.com/maoIT/p/3711409.html
Copyright © 2011-2022 走看看