0

AndroidプログラミングでNDK機能を使用したい理由を理解しようとしていますか? C++ は Android で学ぶことが本当に重要ですか?

4

2 に答える 2

4

3 つ (そしておそらく 4 つ目) の主な理由は次のとおりです。

  • パフォーマンス。一部の重要な内部ループでは、特に Android コンパイラで Just In Time コンパイル (JIT) が使用可能になる前は、Java よりも C/C++ の方がわずかにパフォーマンスが優れていることが、決定的な要因になる可能性があります。
  • 既存の C/C++ ライブラリを使用するには。ここでの理由は非常に明白です。
  • Java API では管理できないことを NDK で許可すること。ハードウェアに近い低レベルの操作、特にメーカー固有のハードウェアに触れる操作は、C/C++ を介してのみ可能です。
  • Yojimbo が示唆したように、難読化. コンパイル済みのマシン コードをリバース エンジニアリングするのは、Java バイト コードよりもやや困難ですが、あいまいさによるセキュリティを当てにするべきではありません。

とはいえ、NDK を使用する前に、NDK が必要であることを十分に確認する必要があります。NDK コードのテストとメンテナンスのコストは、同等の Java よりも高くなる可能性があります。

于 2013-07-31T19:38:11.890 に答える
1

次のいずれかの目的で、NDKを数回使用しました。

  • 既存の C ライブラリを利用します。
  • Java を使用しないプラットフォーム (iOS など) 間でコードを共有する。

通常、Android アプリは CPU バウンドではなく、ネットワークまたはファイル アクセスを待機するため、NDK はパフォーマンスの面であまり役に立ちません。そのため、Googleは次のように述べています。

通常、Android でネイティブ コードを使用してもパフォーマンスが大幅に向上することはありませんが、常にアプリの複雑さが増します。

于 2013-07-31T19:46:08.663 に答える