ネイティブ開発キットとは何ですか?

コンピュータープログラミングとソフトウェア開発では、ネイティブ開発キット(NDK)は通常、開発者がコアオペレーティングシステムを介して機能を使用したりコードを直接実行したりできる機能を提供する抽象プログラミングインターフェイス(API)です。 プログラムを実行するこの方法は、マネージコードまたはインタープリタープログラムの実行とは明らかに異なります。この場合、記述されるコードは、コアオペレーティングシステム機能とユーザー作成コードの間のソフトウェア層として機能する仮想マシンまたはインタープリターによって実行されます。 ネイティブ開発キットの使用は、オペレーティングシステムが使用するハードウェアとライブラリへの直接アクセスを提供できるため、可能な限り高速の実行と処理時間を必要とするアプリケーションでは不可欠です。 書き込まれているプログラムの種類とターゲットオペレーティングシステムによっては、ネイティブ開発キットを使用してもプログラムの速度がまったく向上せず、コードの保守、読み取り、他のシステムへの移植が困難になる場合があります。

スマートフォンなどの一部のデバイス用に作成されたアプリケーション、または解釈されたコンピューター言語を使用するアプリケーションは、コアオペレーティングシステムプロセスまたはカーネルによって直接実行されません。 代わりに、プログラムコードは、仮想マシン(VM)またはインタープリターと呼ばれる別のプログラムによって実行されます。 仮想マシンはコードを読み取り、コマンドを展開および解決し、カーネルとインターフェイスしてコードを実行します。 これは、移植性のための優れた抽象化レイヤーを提供し、リソース管理やファイル処理などの多くの複雑な詳細を仮想マシンの作成者に任せるため、一部の開発者にとって有益です。

ただし、場合によっては、仮想マシンが特定の種類のプログラムの妨げになることがあります。 VMは実行を遅くしたり、ホストカーネル内の一部の機能へのアクセスを提供できなかったりする可能性があります。 ターゲットオペレーティングシステムまたはデバイス用のネイティブ開発キットは、カーネルの機能を作成中のアプリケーションに公開します。 これにより、キットの範囲に応じて、プログラムがハードウェアに直接アクセスしたり、独自のカスタムライブラリをカーネルにロードしたり、システム固有の最適化を使用したりできます。

ネイティブ開発キットは、ほとんどの場合、プログラムのタイムクリティカルな部分にのみ使用されます。 これらは、グラフィックス処理の計算、ディスプレイへの出力、またはファイルの入出力です。 ネイティブ関数またはルーチンを使用するすべてのプログラムで速度が向上するわけではありません。仮想マシンはマネージコードを既に最適化しているため、ネイティブ関数が使用されているかどうかにかかわらず、結果のマシンコードは同一です。 さらに、ネイティブコードは、プログラムをオペレーティングシステムの特定の実装と、場合によってはデバイスの特定のバージョンに結び付けます。つまり、ネイティブ開発キットを使用するコードは、他のシステムに簡単に移植できない場合があります。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?