摘要: 在Java存在两种数据类型: 基本类型 和 引用类型 ,大家都懂的 。 在JNI的世界里也存在类似的数据类型,与Java比较起来,其范围更具严格性,如下: 1、primitive types 基本数据类型,如:int、 float 、char等基本类型 2、reference types 引用类型, 阅读全文
posted @ 2017-05-23 19:32 chenxibobo 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 要素 :1、 该函数大全是基于C语言方式的,对于C++方式可以直接转换 ,例如,对于生成一个jstring类型的方法转换分别如下: C编程环境中使用方法为:(*env) ->NewStringUTF(env , "123") ; C++编程环境中(例如,VC下)则是: env ->NewString 阅读全文
posted @ 2017-05-23 19:31 chenxibobo 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 在Java的编程中,我们经常会遇到各种的异常,也会处理各种的异常。处理异常在java中非常简单,我们通常会使用try-catch-finally来处理,也可以使用throw简单抛出一个异常。那么在jni编程的时候我们又是如何处理异常的呢? 异常处理流程 jni规范已经给我们做好了所有需要做的事情。回 阅读全文
posted @ 2017-05-23 18:43 chenxibobo 阅读(5470) 评论(0) 推荐(0) 编辑
摘要: 一.JNI引用类型 JNI支持三种类型的 opaque reference:local references, global references,和weak global references,下面我们将逐一探讨。 local references 大部分JNI 函数都会创建LocalRef,如N 阅读全文
posted @ 2017-05-23 18:42 chenxibobo 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 一.访问静态字段 Java层的field和method,不管它是public,还是package、private和protected,从 JNI都可以访问到,Java面向语言的封装性不见了。 静态字段和非静态的字段访问方式不同,jni规范提供了一系列带static标示的访问静态字段的函数: 访问流程 阅读全文
posted @ 2017-05-23 18:40 chenxibobo 阅读(854) 评论(0) 推荐(0) 编辑
摘要: 一.数据类型映射概述 从我们开始jni编程起,就不可能避开函数的参数与返回值的问题。java语言的数据类型和c/c++有很多不同的地方,所以我们必须考虑当在java层调用c/c++函数时,怎么正确的把java的参数传给c/c++函数,怎么正确的从c/c++函数获取正确的函数返回值;反之,当我们在c/ 阅读全文
posted @ 2017-05-23 18:37 chenxibobo 阅读(5311) 评论(0) 推荐(0) 编辑
摘要: Android平台很多地方都可以看到jni的身影,比如之前接触到一个投屏的项目,主要的代码是c/c++写的,然后通过Jni供Java层调用;另外,就拿Android系统中的Service来说,很多的Service都有java层代码和native层代码组成,native层代码会在android启动的过 阅读全文
posted @ 2017-05-23 18:35 chenxibobo 阅读(860) 评论(0) 推荐(0) 编辑