jni能不能让java程序和C共享一段内存啊? 要实现这样的功能:java 程序 提供一个字符数组,然后把这个字符串传给ndk开发的c程序,C程序中会不断更新字符数组,同时java端开启一个线程观察字符数组的变化,应该怎么实现这个数组的传参呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我觉得这个应该可行啊。NDK里面就正常的写就是了,定义一个字符数组,在里面你不断更新。至于java这边,第一,你说java提供这个字符数组,谁提供不重要啦,如果java提供,那让NDK进行不断更新,肯定你要传递这个数组过去,这个比较好说了。至于java在线程中不断观察字符数组的变化,你就在C里面定义一个函数,假设是getArray(),用于返回一个java的字符串就可以了,每次你要观察就在java里面调用一下getArray去获取就是了。至于C里面的实现,就是一个c字符串到java字符串的转换了,这个很基础。PS:关键是性能问题,如果数组太大,估计性能有问题,不过,要完全实现真正的“内存共享”,还真不知道行不行。 android monkey截图出来不正确。 请教各位大神如何爬取网页内容。。= = 求助,想画个课程表,没思路 Android 贪吃蛇 eclipse 源代码 listview中progressBar的问题。 android 编译的问题 客户端是用Volley传参,到后台怎么接收? android 媒体库刷新问题 MT6580(android5.1)做横屏,物理旋转90度之后,开机动画只显示三分之二 webview里再进行post请求的问题 android开发中如何判断一个网址是否被墙? Android调用Google Map的问题??
至于java这边,第一,你说java提供这个字符数组,谁提供不重要啦,如果java提供,那让NDK进行不断更新,肯定你要传递这个数组过去,这个比较好说了。至于java在线程中不断观察字符数组的变化,你就在C里面定义一个函数,假设是getArray(),用于返回一个java的字符串就可以了,每次你要观察就在java里面调用一下getArray去获取就是了。至于C里面的实现,就是一个c字符串到java字符串的转换了,这个很基础。
PS:关键是性能问题,如果数组太大,估计性能有问题,不过,要完全实现真正的“内存共享”,还真不知道行不行。