要实现这样的功能:java 程序 提供一个字符数组,然后把这个字符串传给ndk开发的c程序,C程序中会不断更新字符数组,同时java端开启一个线程观察字符数组的变化,应该怎么实现这个数组的传参呢?

解决方案 »

  1.   

    我觉得这个应该可行啊。NDK里面就正常的写就是了,定义一个字符数组,在里面你不断更新。
    至于java这边,第一,你说java提供这个字符数组,谁提供不重要啦,如果java提供,那让NDK进行不断更新,肯定你要传递这个数组过去,这个比较好说了。至于java在线程中不断观察字符数组的变化,你就在C里面定义一个函数,假设是getArray(),用于返回一个java的字符串就可以了,每次你要观察就在java里面调用一下getArray去获取就是了。至于C里面的实现,就是一个c字符串到java字符串的转换了,这个很基础。
    PS:关键是性能问题,如果数组太大,估计性能有问题,不过,要完全实现真正的“内存共享”,还真不知道行不行。