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");
}
}
最新文章
- 设置Hyper V
- 支持ASP.NET MVC
- Ubuntu 12.04 改造指南
- 【转载】ansys中压力随时间变化的表格加载方法
- 【SpringMVC】SpringMVC系列15之SpringMVC最佳实践
- ngios
- 嵌入式 Linux下编译并使用curl静态库
- JQueryMobile页面跳转参数的传递解决方案
- ASIHTTPRequest的使用(转)
- S2SH邮件注册激活后注册成功
- call、apply以及bind
- emmet 教程 emmet快捷键大全
- AspNetCore 基于AOP实现Polly的使用
- ASP.NET在MVC控制器中获取Form表单值的方法
- pytest学习--快速入门
- Redis需要多少内存预留-内存占用多少才安全
- Express 体验 路由、模板引擎、中间件
- 五、Java基础加强
- C++ 的static 与 const
- 过虑器应用之1-设置request编码
热门文章
- 读取txt文件的简易算法
- 温故而知新_C语言_前缀++(--)和后缀++(--)
- Percona Toolkit安装、使用
- jzoj4918. 【GDOI2017模拟12.9】最近公共祖先 (树链剖分+线段树)
- Warning: Static member accessed via instance reference
- 9.path Sum III(路径和 III)
- kuangbin专题十六 KMP&;&;扩展KMP POJ2406 Power Strings
- HashMap的容量大小增长原理(JDK1.6/1.7/1.8)
- sublime 显示 python 错误信息
- C语言中的预处理命令