JNI浅谈

JNI(Java Native Interface,java本地接口)是java平台定义的一套标准的本地编程接口。JNI允许Java代码与本地代码互相操作,即Java代码可以调用本地代码,本地代码也可以调用Java代码。所谓本地代码指的是其他编程语言(如C/C++)实现的、依赖于特定硬件和操作系统的代码。通过JNI调用本地代码,可以实现Java语言所不能实现的功能。在Android平台上,Dalvik虚拟机会实现JNI定义的接口。


从图2-1宗可以看出,JNI可以直接调用本地代码库,并可以通过Dalvik虚拟机实现与应用层和应用框架层之间的交互。

NDK:(Native Development Kits)NDK是便于开发基于JNI的应用而提供的一套开发和编译工具集

NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。

NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。

NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。

JNI:JNI是一套编程接口,可以运用在应用层,也可以运用在应用框架层,以实现java代码与本地代码的互相操作。

SDK(Sofware development kit):软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,025评论 25 708
  • Android跨进程通信IPC整体内容如下 1、Android跨进程通信IPC之1——Linux基础2、Andro...
    隔壁老李头阅读 11,621评论 1 46
  • JNI开发系列阅读 JNI与底层调用1 JNI与底层调用2 C/C++在Android开发中的应用 1. JNI ...
    JackChen1024阅读 732评论 0 3
  • 世间不过你死我活, 或者你活我更要活~ 说句丧气话:这世界,比你美比你能干比你厉害比你讨喜的人多的去了~你活着,是...
    南思嘉木阅读 548评论 0 0
  • 文盲是指不识字的成年人。 按照我国的标准是指年满十五周岁以上的文盲、半文盲公民。 今天老师上课讲没有思想的人是什么...
    小烈呐阅读 257评论 2 2