web-dev-qa-db-ja.com

Android Native Development Kit(NDK)とは何ですか?

Android NDK(ネイティブ開発キット)とは何ですか?どのように使用できますか?なぜ使用する必要がありますか?

75
Nikunj Patel

NDK(Native Development Kit)は、Androidデバイス用のC/C++でプログラムできるツールです。SDKと統合することを目的としています(「コンパニオンツール」として説明されています)プロジェクトのパフォーマンスが重要な部分にのみ使用されます。詳細については、 here を参照してください。

85
Ted Hopp

NDKにより、アプリケーションのパフォーマンスが向上する場合があります。これは、通常、多くのプロセッサバウンドアプリケーションに当てはまります。多くのマルチメディアアプリケーションおよびビデオゲームは、プロセッサを集中的に使用するタスクにネイティブコードを使用します。パフォーマンスの改善は、3つのソースから得られます。まず、ネイティブコードはバイナリコードにコンパイルされ、OS上で直接実行されます。一方、JavaコードはJavaバイトコードに変換され、Dalvik Virtual Machine(VM)によって解釈されます=。 Android 2.2以降では、Just-In-Time(JIT)コンパイラがDalvik VMに追加され、Javaバイトコードを分析および最適化します。プログラムが実行されている(たとえば、JITは、実行前にバイトコードの一部をバイナリコードにコンパイルできます)。しかし、多くの場合、ネイティブコードはJavaコードよりも高速に実行されます。

Javaコードは、AndroidのDalvik VMによって実行されます。 Dalvik VMは、ハードウェアリソース(メモリスペース、プロセッサ速度など)が制限されたシステム向けに特別に設計されています。

NDKのパフォーマンス向上の2番目のソースは、ネイティブコードにより、開発者がNEONなどのAndroid SDKでアクセスできない一部のプロセッサー機能を使用できることですSingle Instruction Multiple Data(SIMD)テクノロジー。複数のデータ要素を並列処理できます。 1つの特定のコーディングタスクの例は、ビデオフレームまたは写真の色変換です。 RGBカラースペースからYCbCrカラースペースに1920x1280ピクセルの写真を変換するとします。単純なアプローチは、すべてのピクセル(つまり、200万ピクセル以上)に変換式を適用することです。 NEONを使用すると、複数のピクセルを一度に処理して処理時間を短縮できます。

3番目の側面は、アセンブリレベルで重要なコードを最適化できることです。これは、デスクトップソフトウェア開発の一般的な方法です。

欠点

NDKはAndroid SDKで利用可能な多くのAPIに直接アクセスできません。NDKで開発すると、常にアプリケーションに余分な複雑さが生じます。

51
sujith s

Android NDKは、Android SDKと組み合わせてのみ使用されるコンパニオンツールです。アプリケーション開発者は、ネイティブのC/C++)コード。

これにより、既存のコードの再利用と速度の向上という利点が得られます。

以下のリンクをご覧ください。

リンク-1

リンク2

リンク-

18
Chirag

Android NDKは、アプリのパフォーマンスが重要な部分をネイティブコードでビルドできるAndroid SDKのコンパニオンツールです。ヘッダーと libraries を提供し、アクティビティの構築、ユーザー入力の処理、ハードウェアセンサーの使用、アプリケーションリソースへのアクセスなど、CまたはC++。ネイティブコードを記述する場合、アプリケーションは引き続き.apkファイルにパッケージ化され、デバイス上の仮想マシン内で実行されます。基本的なAndroid=アプリケーションモデルは変わりません。

次のリンクも質問に答えます。

NDKとは?

ネイティブコードで開発する場合

NDKダウンロード

NDKアプリのビルド方法

NDKの操作方法

Android NDK の10のヒント

8
Hussain

Android NDKは、Androidアプリケーションでネイティブコードを使用するコンポーネントを埋め込むことができるツールセットです。

AndroidアプリケーションはDalvik仮想マシンで実行されます。 NDKを使用すると、CやC++などのネイティブコード言語を使用して、アプリケーションの一部を実装できます。これにより、既存のコードの再利用という形で、特定のクラスのアプリケーションに利点がもたらされ、場合によっては速度が向上します。

ソース: http://developer.Android.com/sdk/ndk/overview.html

Android NDKは、アプリのパフォーマンスが重要な部分をネイティブコードでビルドできるAndroid SDKのコンパニオンツールです。 CまたはC++でプログラミングするときに、アクティビティの構築、ユーザー入力の処理、ハードウェアセンサーの使用、アプリケーションリソースへのアクセスなどを許可します。ネイティブコードを記述する場合、アプリケーションは.apkファイルにパッケージ化され、デバイス上の仮想マシン。基本的なAndroidアプリケーションモデルは変更されません。

ソース: http://developer.Android.com/sdk/ndk/index.html

3
Daniel Kutik

NDKは、CやC++などのネイティブコード言語を使用してアプリの一部を実装できるツールセットです。..チェックアウト https://developer.Android.com/tools/sdk/ndk/index .html

2
RNR123

Android NDK(ネイティブ開発キット)

Android Native Development Kit(NDK)は、ネイティブコードにコンパイルするC/C++でコードを作成する開発者です。

なぜそれを使用する必要がありますか?

ソースコードはCPUのマシンコードに直接コンパイルされ(Javaのように中間言語にコンパイルされない)、開発者は最高のパフォーマンスを得ることができます

どのように使用できますか?

ここで最高のチュートリアル

https://developer.Android.com/ndk/index.html

https://www.androidauthority.com/Android-ndk-everything-need-know-677642/

https://www.ntu.edu.sg/home/ehchua/programming/Android/Android_NDK.html

2
Ramesh sambu

NDKは、アプリケーション用のC/C++コードを作成できるツールのセットです。たとえば、アプリに重要な機能/パフォーマンスを追加し、C/C++で作成した後、Eclipseなどで作成するとします。 IDEではC/C++を記述できません。その場合、NDKを使用してアプリに統合する必要があります。

2
Tanmay harsh