JNI
文章平均质量分 81
rainsbaby
这个作者很懒,什么都没留下…
展开
-
jni编程进阶
JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,JNI技术的出现主要是基于三个方面的应用需求: 1. 解决性能问题 Java具有平台无关性,这使人们在开发企业级应用的时候总是把它作为主要候选方案之一,但是性能方面的因素又大大削弱了它的竞争力。为此,提高Java的性能就显得十分重要。Sun公司及Java的支转载 2013-01-09 21:28:40 · 474 阅读 · 0 评论 -
JNI 资源释放
JNI 编程实现了 native code 和 Java 程序的交互,因此 JNI 代码编程既遵循 native code 编程语言的编程规则,同时也遵守 JNI 编程的文档规范。在内存管理方面,native code 编程语言本身的内存管理机制依然要遵循,同时也要考虑 JNI 编程的内存管理。 本章简单概括 JNI 编程中显而易见的内存泄漏。从 native code 编程语言自身的内存管理,转载 2013-01-10 15:19:01 · 13919 阅读 · 0 评论 -
使用 Java Native Interface 的最佳实践
本文介绍 JNI 用户最常遇到的 10 大编码和设计错误。其目标是帮助您认识到并避免它们,以便您可以编写安全、高效、性能出众的 JNI 代码。本文还将介绍一些用于在新代码或已有代码中查找这些问题的工具和技巧,并展示如何有效地应用它们。 JNI 编程缺陷可以分为两类: · 性能:代码能执行所设计的功能,但运行缓慢或者以某种形式拖慢整个程序。 · 正确性:代码有时能正常运行,但不转载 2013-01-10 14:44:40 · 602 阅读 · 0 评论 -
使用 Java Native Interface 的最佳实践2
2.正确性缺陷 5 大 JNI正确性缺陷包括: · 使用错误的JNIEnv · 未检测异常 · 未检测返回值 · 未正确使用数组方法 · 未正确使用全局引用 2.1使用错误的JNIEnv 执行本机代码的线程使用JNIEnv发起 JNI方法调用。但是,JNIEnv并不是仅仅用于分派所请求的方法。JNI规范规定每个JNIEnv对于线程来转载 2013-01-10 14:45:08 · 929 阅读 · 0 评论 -
JNI 传递字符串和结构体
用c写的程序,要生成dll供java调用,现学现用JNI。字符串的调用还比较简单,有现成的语句,传递结构体把俺累的半死,因为结构体里有一维和二维数组。看了不少博文,终于弄出来了,总结一下,希望有助他人。 c和c++的写法略有不同,以下为c++版本。 传递结构体如下: struct mystruct { float array1[M]; float array2[M][N]; };以下重点原创 2012-11-22 21:57:52 · 8095 阅读 · 3 评论 -
较详细的介绍JNI
JNI其实是Java Native Interface的简称,也就是java本地接口。它提供了若干的API实现了和Java和其他语言的通信(主要是C&C++)。也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢?我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的,所以在多数时间我们是不需要JNI的,但是假如你遇到了如下的三种情况之一呢? 你转载 2013-01-09 21:17:28 · 647 阅读 · 0 评论 -
JNI编程注意事项
整理项目文档时, 忽然发现当年的一篇以前公司里关于JNI编程 的标准化文档。做为收藏,就贴在这里吧。 注:关于JNI, 现在好像有一个OpenSource项目jace可以帮助进行JNI的开发。另外, 推荐IBM Developerworks网站上的一个教程《用jni进行java编程》 JNI编程注意事项: 1、 JNI的函数声明: JNI函数声明方法为JAVA_Pac转载 2013-01-09 21:27:29 · 569 阅读 · 0 评论 -
JNI完全手册
JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。 JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口转载 2013-01-09 21:58:06 · 624 阅读 · 0 评论