在开发Android游戏时,NDK是否需要良好的性能?

时间:2013-03-15 07:18:33

标签: android android-ndk

我听说如果我在不使用NDK的情况下开发Android游戏,性能会明显降低。这是真的吗?

3 个答案:

答案 0 :(得分:14)

我看到使用NDK的3个主要原因:

  • 你想重用C / C ++代码库(例如用C ++编写的游戏引擎,跨平台游戏)
  • 获得更多内存(您可以通过NDK使用更多内存)
  • 您的游戏非常耗费CPU,您需要所有设备电源。

在所有其他情况下,您可以选择自己喜欢的任何内容。 SDK / Java允许您以与NDK相同的方式使用OpenGL,因此您的图形不会变慢。你应该小心使用GC来获得流畅的游戏体验。如果你的游戏非常占用CPU,你可以用C ++编写一些方法并通过JNI调用它们。顺便说一句,Dalvik有JIT,所以Java代码可以像C代码一样快(有时甚至更快)。

答案 1 :(得分:7)

不,这根本不是真的。

这在很大程度上取决于你的特定游戏在做什么。关键问题是:是你的游戏将是CPU密集型(或需要更大量的内存)。

  • 如果不是,请坚持使用SDK。
  • 如果你不知道,因为你过去还没有写过很多游戏,一定要坚持使用SDK。
  • 即使它已成为游戏的一部分,可以利用额外的处理能力,你可以随时根据需要在开发过程中将这些部分提取到本机代码。

选择NDK而不是SDK的一个原因是拥有C ++的巨大背景,这可能会让您在该环境中更有效率。但是,考虑到工具集的当前状态(方便的调试,构建时间,易于访问SDK库等),这很少有效。

答案 2 :(得分:1)

不,你不需要使用ndk,除非你想制作一个超逼真的3D游戏,如Real Racing 3,如果它是一个简单的图形游戏或没有太多时间关键的东西java是好的