Skip to main content

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

computerコンピュータープログラミングとソフトウェア開発では、ネイティブ開発キット(NDK)は通常、コアオペレーティングシステムを介して機能を使用したり、コードを直接実行したりする機能を開発者に提供する抽象プログラミングインターフェイス(API)です。プログラムを実行するこの方法は、マネージドコードまたは解釈されたプログラムを実行することとは明らかに異なります。このプログラムでは、書かれたコードは、コアオペレーティングシステム機能とユーザーが作成したコードの間のソフトウェアレイヤーとして機能する仮想マシンまたはインタープリターによって実行されます。。ネイティブ開発キットの使用は、オペレーティングシステムが使用するハードウェアとライブラリへの直接アクセスを提供できるため、可能な最速の実行時間と処理時間を必要とするアプリケーションでは不可欠です。書かれているプログラムの種類とターゲットオペレーティングシステムに応じて、ネイティブ開発キットの使用はプログラムの速度をまったく向上させず、他のシステムに維持、読み取り、およびポートするのが難しいコードを作成する可能性があります。スマートフォンなどの一部のデバイス用に記述されているか、解釈されたコンピューター言語の使用は、コアオペレーティングシステムプロセスまたはカーネルによって直接実行されません。代わりに、プログラムコードは、仮想マシン(VM)またはインタープリターと呼ばれる別のプログラムによって実行されます。仮想マシンは、コードを読み取り、コマンドを展開および解決し、コードを実行するためにカーネルとインターフェイスを解決します。これは、一部の開発者にとって有益な場合があります。これは、携帯性のための抽象化の適切な層を提供し、仮想マシンの作成者にリソース管理やファイル処理などの複雑な詳細を多く残しているためです。マシンは、いくつかの種類のプログラムを妨げる可能性があります。VMは、実行を遅らせたり、ホストカーネル内の一部の機能へのアクセスを提供したりできません。ターゲットオペレーティングシステムまたはデバイス用のネイティブ開発キットは、カーネルの機能を作成しているアプリケーションに公開します。キットの範囲に応じて、これにより、プログラムがハードウェアに直接アクセスしたり、独自のカスタムライブラリをカーネルにロードしたり、システム固有の最適化を使用したりできます。プログラムの。これらは、グラフィックの処理計算、ディスプレイまたはファイル入力への出力と出力です。ネイティブ機能やルーチンを使用するすべてのプログラムが速度のメリットを確認するわけではありません。仮想マシンは既にマネージコードを最適化する可能性があるため、ネイティブ機能が使用されているかどうかに関係なく、結果のマシンコードは同一です。さらに、ネイティブコードは、プログラムをオペレーティングシステムの特定の実装と、特定のバージョンのデバイスの実装に結び付けます。つまり、ネイティブ開発キットを使用したコードは他のシステムに簡単に移植されない可能性があります。