6

听说不使用NDK开发安卓游戏,性能明显下降。这是事实吗?

4

3 回答 3

14

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

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

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

于 2013-03-15T07:34:47.153 回答
7

不,这根本不是真的。

这在很大程度上取决于您的特定游戏在做什么。基本问题是:您的游戏是否会占用大量 CPU(或需要更多内存)。

  • 如果不是,请坚持使用 SDK。
  • 如果您不知道,因为您过去还没有编写过很多游戏,请务必坚持使用 SDK。
  • 即使结果证明游戏的某些部分可以使用额外的处理能力,您也可以在开发过程中根据需要将这些部分提取到本机代码中。

选择 NDK 而不是 SDK 的一个原因是拥有丰富的 C++ 背景,这可能会使您在该环境中更有效率。然而,鉴于工具集的当前状态(方便调试、构建时间、轻松访问 SDK 库等),这很少有效。

于 2013-03-15T07:24:34.597 回答
1

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

于 2013-03-15T07:24:26.157 回答