AndroidプログラミングでNDK機能を使用したい理由を理解しようとしていますか? C++ は Android で学ぶことが本当に重要ですか?
質問する
394 次
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 に答える