Java与C互相调用.docVIP

  • 6
  • 0
  • 约9.76千字
  • 约 15页
  • 2017-03-30 发布于江苏
  • 举报
Java与C互相调用

Android NDK开发(1)----- Java与C互相调用实例详解 一、概述 对于大部分应用开发者来说可能都不怎么接触到NDK,但如果涉及到硬件操作的话就不得不使用NDK了。使用NDK还有另一个原因,就是C/C++的效率比较高,因此我们可以把一些耗时的操作放在NDK中实现。所以NDK主要做驱动的开发。 在java中调用一个本地方法,然后由该本地方法直接返回一个参数给java(例如,在java中定义的本地方法为private int callJNI(int i))。但在大多数时候要求的并不是由开发者在java层主动去调JNI中的函数来返回想要的数据,而是由JNI主动去调java中的函数。举个最简单的例子,Android中的Camera,图像数据由内核一直往上传到java层,然而这些数据的传递并不需要开发者每一次主动去调用来JNI中的函数来获取,而是由JNI主动传给用java中方法,这类似于Linux驱动机制中的异步通知。 二、要求 用NDK实现Java与C/C++互调,实现int,string,byte[]这三种类型的互相传递。 三、实现 下面的实现中,每次java调用JNI中的某个函数时,最后会在该函数里回调java中相应的方法而不是直接返回一个参数。可能你会觉得这不还是每次都是由开发者来主动调用吗,其实这只是为了讲解

文档评论(0)

1亿VIP精品文档

相关文档