Jni
jerry_lin3000
这个作者很懒,什么都没留下…
展开
-
JNI学习笔记(八)—— 调用接口
这一节的主要内容是讲如何在native程序中嵌入一个java VM。一个java的实现通常是作为一个native库运行。native程序可以和这个库链接,并且用调用接口来加载java VM。事实上,JDK或者java2 sdk的标准启动命令,就是一个简单链接了java VM的c程序。该启动器,解析命令行参数、加载VM、并且通过调用接口运行java程序。创建java虚拟机先看原创 2011-08-29 12:58:03 · 1307 阅读 · 0 评论 -
JNI 学习笔记(一)——字符串字符集转换
以下方式 总归 还是在使用使用java的string:"java/lang/String"治根的办法 还是完整地在native code 中实现。推荐可以使用开源代码icu 或者iconvandroid本身也是用了开源的库: iconv,只默认是未对外导出。先放段代码作为开头,本段主要调用java中到构造函数,本段代码实现,字符串字符集转换。jstr原创 2011-08-04 19:17:23 · 6003 阅读 · 2 评论 -
Java Native Interface Specification contents——jni官方文档
SEE: http://download.oracle.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html 1. IntroductionJava Native Interface OverviewBackgroundJDK 1.0 Native Method InterfaceJava Runtime Int原创 2011-04-15 18:17:00 · 892 阅读 · 0 评论 -
JNI学习笔记(二)——JNI
JNI 是JAVA Native Interface的简称,它是java平台的一个非常有用的特性。JNI 是java平台的一部分, 应用程序使用JNI,以便在java中调用“native code”(如C、C++语言写的代码)。java平台和主机环境java平台是一个编程环境,它包含java虚拟机(VM)和java应用程序编程接口(API)。java程序由java编原创 2011-08-16 18:21:25 · 1332 阅读 · 0 评论 -
JNI学习笔记(三)——HelloWorld
概述helloworld作为大多编程语言和平台的入门程序,JNI也不例外。下图展示了java程序调用JNI的例子:HelloWorld。编写这样一个程序,需要以下几个步骤,大多调用JNI的java程序也都需要有以下几个步骤:1)创建声明了native 方法的类(HelloWorld.java)。2)使用javac编译源文件,生成类文件(HelloWorld.class)。3原创 2011-08-17 13:57:34 · 1735 阅读 · 1 评论 -
JNI学习笔记(四)——基础类型、Strings和数组
由于java编程语言和C、C++的数据类型不一致,所以在JNI和native代码直接数据类型的映射就成了问题。这里将学习java编程语言和native代码之间的类型如何转换。一个简单的native方法我们在java中实现这样一个类,保存为Prompt.java:class Prompt { public static void main(String[]原创 2011-08-18 15:34:58 · 3346 阅读 · 0 评论 -
JNI学习笔记(五)——fields和methods
之前的学习,知道了JNI可以让native代码访问基础类型和引用类型,本章节,我们要学习如果访问一个对象的字段(其实就是对象中的变量)和方法。此外,还将学习如何在native代码调用java编程语言实现的方法——这对回调函数,尤其有用。访问字段java编程语言,支持两种字段:实例字段和static字段,(可以这么理解:实例变量和static变量)。JNI原创 2011-08-21 00:36:22 · 4923 阅读 · 0 评论 -
JNI学习笔记(六)——局部和全局引用
JNI将实例、数组类型暴露为不透明的引用。native代码从不会直接检查一个不透明的引用指针的上下文,而是通过使用JNI函数来访问由不透明的引用所指向的数据结构。因为只处理不透明的引用,这样就不需要担心不同的java VM实现而导致的不同的内部对象的布局。然而,还是有必要了解一下JNI中不同种类的引用:1)JNI 支持3中不透明的引用:局部引用、全局引用和弱全局引用。2)局部和全局引用,有原创 2011-08-24 08:35:34 · 3845 阅读 · 0 评论 -
JNI学习笔记(七)——异常处理
我们已经碰到过在一个JNI函数调用后,native代码进行错误检查的情形。本节解释native代码如何从这些错误条件中检查和恢复。我们将关注发生错误的JNI函数调用上(而不是native代码上的二进制错误)。如果一个native方法有调用了一个系统调用,只需要简单地按照系统文件表明的方法来检查系统调用可能的失败。另一方面,native方法,呼叫了一个回调函数——java API方法,这原创 2011-08-29 12:56:30 · 4533 阅读 · 0 评论