6

NDKを使用せずにAndroidゲームを開発すると、パフォーマンスが大幅に低下すると聞きました。これは真実ですか?

4

3 に答える 3

14

NDK を使用する主な理由は 3 つあります。

  • C/C++ コード ベースを再利用したい (例: C++ で書かれたゲーム エンジン、クロスプラットフォーム ゲーム)
  • より多くのメモリを取得します (NDK を介してより多くのメモリを使用できます)
  • あなたのゲームは非常に CPU を集中的に使用し、すべてのデバイスのパワーが必要です。

それ以外の場合は、好きなものを選択できます。SDK/Java では、OpenGL を NDK と同じ方法で使用できるため、グラフィックが遅くなることはありません。スムーズなゲームプレイを実現するには、GC に注意する必要があります。ゲームが非常に CPU を集中的に使用する場合、C++ でいくつかのメソッドを記述し、JNI 経由で呼び出すことができます。ところで、Dalvik には JIT があるため、Java コードは C コードと同じくらい高速 (場合によってはさらに高速) になります。

于 2013-03-15T07:34:47.153 に答える
7

いいえ、それは単に真実ではありません。

それは、特定のゲームが何をしているかに大きく依存します。重要な質問は、ゲームが CPU を集中的に使用するか (または大量のメモリを必要とするか) かどうかです。

  • そうでない場合は、SDK を使用してください。
  • 過去に多くのゲームを書いたことがなく、わからない場合は、ぜひ SDK を使用してください。
  • 余分な処理能力で処理できるゲームの部分があったとしても、必要に応じて開発中にいつでもそれらの部分をネイティブ コードに抽出できます。

SDK ではなく NDK を選択する理由の 1 つは、C++ の豊富なバックグラウンドを持っていることです。これにより、その環境での生産性が向上する可能性があります。ただし、ツールセットの現在の状態 (便利なデバッグ、ビルド時間、SDK ライブラリへの簡単なアクセスなど) を考えると、これはほとんど効果的ではありません。

于 2013-03-15T07:24:34.597 に答える
1

Real Racing 3のような超リアルな 3D ゲームを作成する場合を除き、ndk を使用する必要はありません。単純なグラフィックスを使用するゲームであるか、時間が重要でないゲームである場合は Java で問題ありません。

于 2013-03-15T07:24:26.157 に答える