SDK对于3D引擎开发是否可行,还是应该直接使用NDK?

3

正如标题所述 - 我想为Android编写一个3D OpenGL ES 2.0引擎(不感兴趣制作游戏,只是引擎)。我应该直接使用NDK并用C ++编写所有内容,还是先使用Java?

大多数关于Android性能的链接都来自2010年,在JIT和并发垃圾收集器出现之前。 Java的性能仍然很差吗(不要使用公共字段,不要使用虚拟方法),使用C ++应该期望什么样的加速?

顺便说一下,我两种语言都很熟悉,所以没有舒适度问题。

1个回答

2
根据Android的设计和工作原理,有1个专用于Java/SDK,1个专用于NDK/C++应用程序的单一线程。无论是SDK还是NDK都只能生成在沙盒中运行的应用程序。实际上,用NDK创建的应用程序被定义为“本地”的略微不正确,因为商业和官方的Android工具包永远无法真正做到本地化,这两种解决方案都需要权限,并最终打包成apk,对于开发人员来说,它们提供了大致相同的权衡。许多人选择C++而不是Java的主要原因是您可以轻松地将C++引擎移植到其他平台,而Java无法做到这一点。如果您需要跨平台解决方案,则建议使用C++;如果不需要跨平台解决方案,则使用Java会更容易处理,因为API的丰富性和管道的负担较小,特别是对于“构建和编译”部分。

1
取决于跨平台的定义。Android Java 引擎可以很容易地移植到 PC 上 :) - haxx
@haxx 当然,但无论如何,Java很难在灵活性和跨今天所有主要平台的可用性方面击败C++。总的来说,C++也受到供应商更好的支持。 - pictr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接