1
4
我认为你的方式并不是错的,但是要知道,在java和C++之间传递数据是很耗时的。因此,我建议您在C/C++中编写大部分代码,如果不能避免,只需调用java的C/C++函数即可。例如,您需要为GUI传回数据。特别是当你在编程一个实时游戏时,我会避免在java和C/C++代码之间传递数据。所以仅仅改变所有的方法,然后在Java代码中调用它们并不是一个好主意。 顺便说一下,如果你必须把一些东西从C/C++传递给java,我不会把它作为返回值传递,而是把目的地作为函数调用中的参数。 |
2
5
使用“自动绑定”JNI格式不需要更改任何现有方法。googlendk示例中没有很好的例子,但是googlesdk在内部使用了另一个JNI绑定方法:在JNI文档中搜索RegisterNatives()。但即便如此,您实际上只需要为androidsdk需要与库对话的几个地方创建一个包装器:一般的用户输入/传感器、draw回调,以及可能的“更新”回调。除此之外,你的应用程序的其余部分应该保持不变,除了让它建立。
与某些观点(包括谷歌的观点)相反,NDK可以而且经常 用于将游戏移植到Android。事实上,我现在就是这么用的。java需要C++从java到C++的用户事件,需要java建立基本的GL上下文(NDK中没有EGL绑定),但是你可以用OpenGL做C++中的所有其他事情,一旦你的基本Java消息被传递给C++,你就可以(大部分)忽略Java。谢天谢地。:) 你仍然需要和java对话,以获得你的文件:两个都需要经过java,所以你可能想要使用“反向JNI”,在那里你调用C++的java函数。也不难,到处都有例子。 我将在这里详细介绍如何访问您的资产: File Operations in Android NDK
|
3
1
NDK只是Android的本地C和C++开发环境。Bionic(libc的Android版本)的局限性更大一些。唯一真正复杂的是将新组件集成到Android构建工具链中。Android有一个高度定制的Makefile系统。下载源代码并查看简单的本机组件可以让您了解如何使用它。
|
4
1
新版本的ndk(r5)现在包含了完全用本机代码编写应用程序的功能。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |