1

我一直在做大量的研究,甚至用 NDK for Android 进行了一些实验(而不是 SDK)。不过,我还没有真正找到一个清晰简洁的定义,说明 NDK不能做什么(除了缺乏异常处理和 rtti)。

我一直在为游戏和 Android 游戏引擎绘制一些代码(完全在 NDK 中编写),但它似乎没有像许多人希望的那样得到支持。不仅如此,我还希望能够为我的游戏提供一个性感的 UI,而无需在 OpenGL 中从头开始编写所有内容。

虽然我确信它在 Java 中更容易,但我想知道 NDK 的前端/UI 组件是否已经达到了在触摸屏 IO、声音和图形界面方面甚至可以与 Java 相媲美的地步. 在最坏的情况下,我可以用 Java 编写 UI,然后从中调用本机方法,但如果可能的话,我希望能够做更多的事情。

谢谢。

编辑

如果 C++ 甚至在某种程度上与 Java 的 UI 功能集相提并论,那么知道两者中的哪一个提供了更多的控制和定制将是很酷的。例如,虽然 Java 实现可能更易于使用,但它是否为程序员提供了很多选项来微调类似于特定事物的“外观”?

4

1 回答 1

3

官方NDK可以做异常和rtti就好了。阅读随 Android NDK 分发的“docs/CPLUSPLUS-SUPPORT.html”文件。

在 C++ 中你唯一不能做的就是实现 Java 接口,继承 Java 类并定义新的 Java 类。否则 - 你可以做任何 Java 可以做的事情。唯一的问题是很多事情(比如访问 Java 对象成员,或调用 Java 函数)都需要使用 JNI,而且代码看起来很丑。因此,如果您需要创建/继承 Java 类的 UI,那么您可以使用 C++ 编写所有代码。

我建议仅将 JNI 用于性能关键代码。混合代码 - 用于 UI 的 Java,C/C++ 中的数学计算非常容易。或者,如果您使用 OpenGL ES 编写游戏代码,也可以。

于 2012-04-25T06:00:11.290 回答