Kanzi Engine プラグイン¶
Kanzi プラグインを使用すると、Kanzi の機能を拡張し、Kanzi をカスタマイズしてアプリケーション開発の要件に適合させることができます。Kanzi プラグインを作成すると、拡張された機能を任意の Kanzi ユーザーと共有できます。
Kanzi では、次のタイプのプラグインを作成して使用できます。
Kanzi Engine プラグインは Kanzi Engine の機能を拡張します。Kanzi Engine はターゲットプラットフォーム上でこれらのプラグインを実行します。
以下を作成できます。
C++でのネイティブプラグイン。これらのプラグインは、すべてのサポートされているプラットフォームで動作します。
Kanzi Engine プラグインはJavaで作成されています。これらのプラグインはWindowsとAndroidで動作します。Kanzi Android framework (droidfw) と共に、Java Kanzi Engine プラグインは、ネイティブのグルーコードを書くことなく、Androidオペレーティングシステム上で Kanzi アプリケーションの機能を拡張することを可能にします。
Kanzi Engine プラグインの作成 を参照してください。
Kanzi Studio プラグインは Kanzi Studio の機能を拡張し、Kanzi Studio で実行されます。
Kanzi Studio プラグイン を参照してください。
Kanzi Engine プラグインを使用して:
Kanzi Engine APIを使用してカスタムノードを作成し、それらを Kanzi Studio プロジェクトで使用し、Kanzi Studio Preview でどのように機能するかを確認してください。
Kanzi Engine APIを使用してカスタムプロパティタイプとメッセージを作成し、それらを Kanzi Studio プロジェクトで使用します。
Kanzi アプリケーションへのデータエントリポイントを定義し、Kanzi アプリケーションのデザイナーと開発者の間で契約を形成します。
Kanzi Engine プラグインの使用方法については、以下を参照してください。
ネイティブ Kanzi Engine プラグインのデプロイは柔軟です。使用できるのは次のとおりです。
プラグインをアプリケーションバイナリと共にデプロイするための 静的リンク。
このアプローチを使用する場合:
いくつかの最適化を使用することで、より良いパフォーマンスを提供できます。
プラグインを削除または更新するには、アプリケーションバイナリを更新する必要があります。
Module::registerMetadataOverrideでアプリケーションの起動時に、すべての静的プラグインを手動で登録する必要があります。
プラグインを動的リンクライブラリとしてデプロイするための 動的リンク。例えば、DLLやSO。
このアプローチを使用する場合:
アプリケーションの実行ファイルを変更せずに、プラグインを追加または削除できます。
例えば、Kanzi Studio Preview はプロジェクトで指定されたプラグインを動的にロードします。
これは、LLVM C++ ライブラリを使用した Android および QNX ではサポートされていません。
プラグインを独立したバイナリとしてデプロイした場合、それらを個別に更新することができます。
例えば、機能を拡張するためにこれを行います。
これは、LLVM C++ ライブラリを使用した Android および QNX ではサポートされていません。
kzbファイルのコンテンツを通じて、プラグインからクラスを間接的に参照することができます。
一部のプラットフォームでは、動的リンクライブラリのサポートがないか、サポートが制限されています。
Androidは.apkコンテンツの独立した更新をサポートしていません。
AndroidとQNXでLLVM C++ライブラリを使用する場合、ビルド時に動的リンクされたプラグインをリンクする必要があります。
動的にリンクされた Kanzi Engine プラグインは、Rightware が動的プラットフォームパッケージで提供する動的 Kanzi Engine ライブラリで構築された Kanzi アプリケーションでのみ使用してください。
動的な Kanzi Engine プラグインを、静的 Kanzi Engine ライブラリで構築された Kanzi アプリケーションで使用しないでください。静的な実行可能ファイルをビルドする際、リンカはその実行可能ファイルを最適化することができます。その結果、実行可能ファイルには、動的にリンクされた Kanzi Engine プラグインが呼び出すすべての関数が含まれているとは限りません。
推奨されるアプローチは、Kanzi Studio Preview で使用するためにプラグインをDLLとして構築し、アプリケーションにプラグインを静的にリンクすることです。これにより、Preview でプラグインを使用し、アプリケーションの最適化の利点を享受できます。
各プラグインは、Module から派生したクラスを提供します。プラグインを使用する前に、そのモジュールを登録する必要があります。ライブラリの動的ロードをサポートするプラットフォームでは、Kanzi Engine は、プラグインが kzb ファイルの依存関係であるが、まだロードまたは登録されていない場合、自動的にこれを試みます。動的ロードがないプラットフォームや静的にリンクされたプラグインの場合、Module::registerMetadataOverride でモジュールを手動で登録する必要があります。
Node2D および Node3D プラグインの例には、Android プラットフォーム用にモジュールを登録するサンプルコードが含まれています。Node2Dプラグインの例 および Node3D プラグインの例 を参照してください。