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