Kanzi Engine プラグインの作成

Kanzi Engine プラグインは Kanzi Engine の機能を拡張します。Kanzi Engine はターゲットプラットフォーム上でこれらのプラグインを実行します。

Kanzi Engine プラグインを使用して:

  • Kanzi Engine APIを使用してカスタムノードを作成し、それらを Kanzi Studio プロジェクトで使用し、Kanzi Studio Preview でどのように機能するかを確認してください。

  • Kanzi Engine APIを使用してカスタムプロパティタイプとメッセージを作成し、それらを Kanzi Studio プロジェクトで使用します。

  • Kanzi アプリケーションへのデータエントリポイントを定義し、Kanzi アプリケーションのデザイナーと開発者の間で契約を形成します。

Kanzi Engine プラグインの使用方法については、以下を参照してください。

ネイティブ Kanzi Engine プラグインを作成するには、以下の手順に従います。

  1. 次のいずれかの方法でプラグインを作成します。

  2. プラグインをインストールします。Kanzi Studio プロジェクトに Kanzi Engine プラグインを追加する を参照してください。

  3. プラグインをデバッグします。ネイティブ Kanzi Engine プラグインのデバッグ を参照してください。

テンプレートを使用してネイティブ Kanzi Engine プラグインを作成する

Kanzi にインストールされるテンプレートを使用して、ネイティブ Kanzi Engine プラグインを作成できます。

テンプレートを使用してネイティブ Kanzi Engine プラグインを作成するには:

  1. Kanzi Studio Quick Start 画面で New Project をクリックします。

    ../../_images/new-project.png
  2. New Project ウィンドウで Template を Application with Kanzi Engine plugin に設定し、Create をクリックします。

    Kanzi は <ProjectName>/Tool_project ディレクトリに Kanzi Studio プロジェクトを作成し、<ProjectName>/Application ディレクトリにプロジェクトのアプリケーションコードの構造を作成します。

    • bin ディレクトリには、プロジェクトの kzb ファイルと設定ファイルが含まれています。

    • configs ディレクトリには、さまざまなプラットフォーム用の構成ファイルが含まれています。デフォルトで、Kanzi はいくつかの異なるプラットフォーム用の構成ファイルを作成します。Kanzi アプリケーションの開発に推奨されるプラットフォームは Microsoft Visual Studio です。Kanzi アプリケーションのデプロイ を参照してください。

    • src ディレクトリには、アプリケーションのソースコードが含まれています。

    • CMakeLists.txt ファイルには、CMake が Kanzi アプリケーションの Visual Studio ソリューションを生成するための手順が含まれています。

    • generate_cmake_vs<Version>_solution.bat は、Kanzi アプリケーションのために Visual Studio ソリューションを生成するために使用できるスクリプトです。スクリプトは、<ProjectName>/Application/build_vs<Version> ディレクトリに Visual Studio ソリューションを生成します。

    ../../_images/create-project-with-plugin.png
  3. Kanzi Studio で、File > Open Kanzi Command Prompt を選択します。

    Kanzi Command Prompt は、Kanzi 環境変数が設定された Windows コマンドプロンプトを開き、Kanzi のバージョンに対して Kanzi Command Prompt を開きます。

    Kanzi Command Prompt を使用して、絶対パスや環境変数を設定せずに、Gradle、SCons、CMake などの Kanzi ユーティリティおよびビルドツールにアクセスします。

    ../../_images/open-kanzi-command-prompt.png

    ヒント

    Kanzi Command Prompt は、Rightware ディレクトリの Windows スタートメニューで見つけることができます。

    Kanzi のバージョンが複数インストールされている場合は、そのコマンドプロンプトで作業したい Kanzi のバージョンに対応する Kanzi Command Prompt を起動するようにしてください。

  4. <ProjectName>/Application ディレクトリ内の Kanzi Command Prompt で、アプリケーション用の Visual Studio ソリューションを生成するスクリプトを実行します。

    たとえば、Visual Studio 2019 を使用している場合は、次のコマンドを実行します。

    generate_cmake_vs2019_solution.bat
    

    このスクリプトは、ディレクトリ <ProjectName>/Application/build_vs2019 内のアプリケーション用の Visual Studio ソリューションを生成します。

  5. Visual Studioで <ProjectName>/Application/build_vs<Version>/<ProjectName>.sln Visual Studioソリューションを開きます。

    Visual Studio ソリューションには以下が含まれています:

    • <ProjectName> という名前の Kanzi Engine プラグイン用のプロジェクト。このプロジェクトで Kanzi Engine プラグインを定義します。

    • <ProjectName>_executable という名前のC++アプリケーションのプロジェクト。このプロジェクトで Kanzi アプリケーションのロジックを定義します。

    ../../_images/mykanziengineplugin-project-contents.png
  6. Visual Studioで、Kanzi アプリケーションと Kanzi Engine プラグインのロジックを作成し、Kanzi Studio 用に Kanzi Engine プラグインのカスタムコンポーネントを設定します。アプリケーション開発、データソースの定義、および Kanzi Engine の機能を拡張する を参照してください。

    Kanzi アプリケーションまたは Kanzi Engine プラグインが使用するファイルを追加または削除する場合、CMakeLists.txt 内のファイルリストを set コマンドで更新し、generate_cmake_vs<Version>_solution.bat スクリプトを実行してください。

    • Kanzi アプリケーションで使用するファイルを変更する場合は、<ProjectName>/Application/src/executable/CMakeLists.txt を更新してください。

    • Kanzi Engine プラグインで使用するファイルを変更した場合は、<ProjectName>/Application/src/plugin/CMakeLists.txt を更新してください。

    例えば、tinyxml2.cpp と tinyxml2.h ファイルを Kanzi Engine プラグインに追加するには、これらのファイルを含むように <ProjectName>/Application/src/plugin/CMakeLists.txt を更新します。

    set(sources_plugin
        src/tinyxml2.cpp
        src/tinyxml2.h
        src/mykanziengineplugin.cpp
        src/mykanziengineplugin.hpp
        src/mykanziengineplugin.rc
        src/mykanziengineplugin_module.cpp
        src/mykanziengineplugin_module.hpp)
    
  7. 使用したいソリューション構成を選択してください。

    開発中は、Debug 構成を選択してください。プロダクション用のバージョンを作成する準備ができたら、Release 構成を選択してください。

    ../../_images/debug-configuration.png
  8. Kanzi Engine プラグインをビルドする:

    • Kanzi Engine プラグイン DLL のみをビルドするには、<ProjectName> プロジェクトを右クリックし、ビルドを選択します。

      ../../_images/mykanziengineplugin-vs-build.png
    • Kanzi Engine プラグイン DLL と Kanzi アプリケーションをビルドするには、<ProjectName>_executable プロジェクトを右クリックして、ビルドを選択します。

      ../../_images/mykanziengineplugin_executable-vs-build.png

    Visual Studio ビルド:

    • <ProjectName>/Application/lib/<PlatformName>/<ConfigurationName> および <ProjectName>/Application/build_vs<Version>/runtime/<ConfigurationName> ディレクトリ内のプラグイン DLL

      Kanzi Studio は <ProjectName>/Application/lib ディレクトリ内のプラグインDLLを使用します。

    • <ProjectName>/Application/build_<Version>/runtime/<ConfigurationName> ディレクトリ内のアプリケーション実行可能ファイル。

  9. Kanzi Studio プロジェクトの Kanzi Engine プラグインを更新します。

    1. DLLプラグインの場合、Kanzi Studio プロジェクトの設定が、アプリケーションおよびプラグインプロジェクトをビルドするためにVisual Studioで使用するソリューション構成と一致していることを確認してください。

      例えば、Visual Studio 2019で Release ソリューション構成を使用する場合、Project > Properties セット内の Kanzi Studio プロジェクトで:

      • Preview OpenGL ES Wrapper から GL (Emulation through desktop OpenGL) へ

      • Preview Build Configuration から Release へ

      • Preview Visual Studio Version から 2019 へ

      • Preview Working Directory から ..\Application\bin へ。

      これらの設定により、Kanzi Studio Preview をプラグインで動作させることができます。

      ../../_images/project-properties.png ../../_images/project-properties1.png
    2. 最初のステップで作成したプロジェクトの Kanzi Studio で、Library > Kanzi Engine Plugins 内でプラグインを右クリックし、Update Kanzi Engine Plugin を選択します。

      この方法で、プラグインを更新し、Visual Studio プラグインプロジェクトで行った変更を使用します。

      ../../_images/update-plugin-metadata.png
    3. Properties で、Is Enabled プロパティが有効になっていることを確認してください。

      ../../_images/enable-plugin.png

      ヒント

      Kanzi Engine プラグインをプロジェクトで有効または無効にするには、Is Enabled プロパティを使用します。

ネイティブ Kanzi Engine プラグインを手動で作成する

ネイティブ Kanzi Engine プラグインを手動で作成するには:

  1. Kanzi Studio New Project ウィンドウで、Template を Application に設定して、C++ アプリケーションを使用した新しいプロジェクトを作成します。

    ../../_images/kanzi-engine-plugin-new-project.png
  2. <ProjectName>/Application ディレクトリのファイルエクスプローラーで、plugin/src ディレクトリを作成します。

  3. <ProjectName>/Application/plugin/src ディレクトリに、createModule、deleteModule、および Module::getMetaclassesOverride 関数を追加するファイルを追加し、プラグインで実装するすべてのメタクラスを登録します。

    プラグインは、これらの関数を使用して、DLL内の関数、メタクラス、およびコンポーネントのリストを取得します。これらを Kanzi Engine に登録するために使用します。

    例えば、そのファイルに my_kanzi_engine_plugin.cpp という名前を付けてください。

    #include <kanzi/core/module/module.hpp>
    extern "C"
    {
        MY_KANZI_ENGINE_PLUGIN_API kanzi::Module* createModule(uint32_t kanziVersionMajor, uint32_t kanziVersionMinor);
    }
    class MY_KANZI_ENGINE_PLUGIN_API MyKanziEnginePluginModule: public kanzi::Module
    {
        MetaclassContainer getMetaclassesOverride() override;
    };
    MyKanziEnginePluginModule::MetaclassContainer MyKanziEnginePluginModule::getMetaclassesOverride()
    {
        MetaclassContainer metaclasses;
        return metaclasses;
    }
    MY_KANZI_ENGINE_PLUGIN_API kanzi::Module* createModule(uint32_t /*kanziVersionMajor*/, uint32_t /*kanziVersionMinor*/)
    {
        return new MyKanziEnginePluginModule;
    }
    
  4. <ProjectName>/Application/plugin ディレクトリに、ビルド手順を含む CMakeLists.txt ファイルを追加します。

    cmake_minimum_required(VERSION 3.10.0)
    # Define the name of the plugin.
    project(MyKanziEnginePlugin)
    # Build the plugin as a dll.
    if(MSVC)
        option(BUILD_SHARED_LIBS "Selects whether to build and link to shared or static libraries" ON)
    endif()
    # Import the Kanzi CMake targets. Define the path to Kanzi (Kanzi_DIR) either in the
    # CMakeLists.txt or pass as a parameter when running cmake.
    if(NOT KANZI_ENGINE_BUILD)
        find_package(Kanzi REQUIRED CONFIG CMAKE_FIND_ROOT_PATH_BOTH
            HINTS "$ENV{KANZI_HOME}/Engine/lib/cmake/Kanzi")
    endif()
    
    include(kanzi-common)
    
    # Define the sources of the plugin. Produce a library.
    set(sources
        src/my_kanzi_engine_plugin.cpp)
    
    add_library(MyKanziEnginePlugin ${sources})
    # Define Kanzi libraries as the dependencies of the plugin.
    target_link_libraries(MyKanziEnginePlugin PUBLIC Kanzi::kzcore Kanzi::kzcoreui Kanzi::kzui)
    
    target_include_directories(MyKanziEnginePlugin PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
    
    # Define the dll interface macros.
    if(BUILD_SHARED_LIBS AND MSVC)
        target_compile_definitions(MyKanziEnginePlugin PRIVATE "MY_KANZI_ENGINE_PLUGIN_API=__declspec(dllexport)")
        target_compile_definitions(MyKanziEnginePlugin PRIVATE "MY_KANZI_ENGINE_PLUGIN_API_EXPORT")
        target_compile_definitions(MyKanziEnginePlugin INTERFACE "MY_KANZI_ENGINE_PLUGIN_API=__declspec(dllimport)")
    else()
        target_compile_definitions(MyKanziEnginePlugin PUBLIC "MY_KANZI_ENGINE_PLUGIN_API=")
    endif()
    
    # Add a post-build step that copies the plugin dll to a directory where the Kanzi Studio project can find it.
    # Set the relative path that points from the plugin directory to the application lib directory.
    if(BUILD_SHARED_LIBS AND MSVC)
        set(KANZI_PROJECT_PLUGIN_PATH "${PROJECT_SOURCE_DIR}/../lib/${CMAKE_VS_PLATFORM_NAME}/${MSVC_TAG}_$<CONFIG>_DLL")
        add_custom_command(TARGET MyKanziEnginePlugin POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E make_directory "${KANZI_PROJECT_PLUGIN_PATH}"
            COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:MyKanziEnginePlugin>" "${KANZI_PROJECT_PLUGIN_PATH}")
    endif()
    
    install_target_to_output_directory(MyKanziEnginePlugin)
    
  5. <ProjectName>/Application ディレクトリで、Kanzi Engine プラグインへの依存関係を含めるために、メイン実行可能プロジェクトの CMakeLists.txt ファイルを編集します。

    add_subdirectory(plugin)
    target_link_libraries(MyKanziApplication Kanzi::kzui Kanzi::kzcoreui MyKanziEnginePlugin)
    
  6. Kanzi Studio で、File > Open Kanzi Command Prompt を選択します。

    Kanzi Command Prompt は、Kanzi 環境変数が設定された Windows コマンドプロンプトを開き、Kanzi のバージョンに対して Kanzi Command Prompt を開きます。

    Kanzi Command Prompt を使用して、絶対パスや環境変数を設定せずに、Gradle、SCons、CMake などの Kanzi ユーティリティおよびビルドツールにアクセスします。

    ../../_images/open-kanzi-command-prompt.png

    ヒント

    Kanzi Command Prompt は、Rightware ディレクトリの Windows スタートメニューで見つけることができます。

    Kanzi のバージョンが複数インストールされている場合は、そのコマンドプロンプトで作業したい Kanzi のバージョンに対応する Kanzi Command Prompt を起動するようにしてください。

  7. <ProjectName>/Application ディレクトリ内の Kanzi Command Prompt で、アプリケーション用の Visual Studio ソリューションを生成するスクリプトを実行します。

    たとえば、Visual Studio 2019 を使用している場合は、次のコマンドを実行します。

    generate_cmake_vs2019_solution.bat
    

    このスクリプトは、ディレクトリ <ProjectName>/Application/build_vs2019 内のアプリケーション用の Visual Studio ソリューションを生成します。

  8. Visual Studioで <ProjectName>/Application/build_vs<Version>/<ProjectName>.sln Visual Studioソリューションを開きます。Visual Studioソリューションには以下が含まれています。

    • Kanzi Engine プラグインのプロジェクト名は MyKanziEnginePlugin です。ここで Kanzi Engine プラグインを作成します。

    • C++アプリケーション <ProjectName> のプロジェクトです。ここでアプリケーションのロジックを作成できます。

    ../../_images/manual-engine-plugin-projects-in-visual-studio.png
  9. Visual Studioで、Kanzi アプリケーションと Kanzi Engine プラグインのロジックを作成し、Kanzi Studio 用に Kanzi Engine プラグインのカスタムコンポーネントを設定します。アプリケーション開発、Kanzi Engine プラグインの作成、データソースの定義、および Kanzi Engine の機能を拡張する を参照してください。

    Kanzi アプリケーションまたは Kanzi Engine プラグインが使用するファイルを追加または削除する場合、CMakeLists.txt 内のファイルリストを set コマンドで更新し、generate_cmake_vs<Version>_solution.bat スクリプトを実行してください。

    • Kanzi アプリケーションで使用するファイルを変更する場合は、<ProjectName>/Application/src/executable/CMakeLists.txt を更新してください。

    • Kanzi Engine プラグインで使用するファイルを変更した場合は、<ProjectName>/Application/src/plugin/CMakeLists.txt を更新してください。

    例えば、tinyxml2.cpp と tinyxml2.h ファイルを Kanzi Engine プラグインに追加するには、これらのファイルを含むように <ProjectName>/Application/src/plugin/CMakeLists.txt を更新します。

    set(sources_plugin
        src/tinyxml2.cpp
        src/tinyxml2.h
        src/mykanziengineplugin.cpp
        src/mykanziengineplugin.hpp
        src/mykanziengineplugin.rc
        src/mykanziengineplugin_module.cpp
        src/mykanziengineplugin_module.hpp)
    
  10. 使用したいソリューション構成を選択してください。

    開発中は、Debug 構成を選択してください。プロダクション用のバージョンを作成する準備ができたら、Release 構成を選択してください。

    ../../_images/debug-configuration.png
  11. Kanzi Engine プラグインをビルドする:

    • Kanzi Engine プラグイン DLL のみをビルドするには、<ProjectName> プロジェクトを右クリックし、ビルドを選択します。

      ../../_images/mykanziengineplugin-vs-build.png
    • Kanzi Engine プラグイン DLL と Kanzi アプリケーションをビルドするには、<ProjectName>_executable プロジェクトを右クリックして、ビルドを選択します。

      ../../_images/mykanziengineplugin_executable-vs-build.png

    Visual Studio ビルド:

    • <ProjectName>/Application/lib/<PlatformName>/<ConfigurationName> および <ProjectName>/Application/build_vs<Version>/runtime/<ConfigurationName> ディレクトリ内のプラグイン DLL

      Kanzi Studio は <ProjectName>/Application/lib ディレクトリ内のプラグインDLLを使用します。Kanzi Studio プロジェクトに Kanzi Engine プラグインを追加する を参照してください。

    • <ProjectName>/Application/build_vs<Version>/runtime/<ConfigurationName> ディレクトリ内のアプリケーション実行可能ファイル。

テンプレートを使用してJava Kanzi Engine プラグインを作成する

Kanzi と共にインストールされるテンプレートを使用して、Java Kanzi Engine プラグインを作成できます。

Android デバイスへのプロジェクトのデプロイや Java Kanzi Engine プラグインのインポートなど、Kanzi Studio で Android の機能を使用するには、64 ビットの JDK 17 が必要です。Kanzi Studio 用のAndroid環境のセットアップ を参照してください。

Java プラグインは Kanzi Android framework (droidfw) アプリケーションでのみ使用できます。

テンプレートを使用してJava Kanzi Engine プラグインを作成するには:

  1. Kanzi Studio Quick Start 画面で New Project をクリックします。

    ../../_images/new-project.png
  2. New Project ウィンドウで Template を Android Application with Java plugin に設定し、Create をクリックします。

    Kanzi は <ProjectName>/Tool_project ディレクトリに Kanzi Studio プロジェクトを作成し、<ProjectName>/Application ディレクトリにプロジェクトのアプリケーションコードの構造を作成します。

    • bin ディレクトリには、プロジェクトの kzb ファイルと設定ファイルが含まれています。

    • configs/platforms/android_gradle ディレクトリには、Kanzi Android framework (droidfw) の設定ファイルが含まれています。Kanzi Android framework (droidfw) での開発 を参照してください。

    • configs/platforms/android_gradle/app/src/main は、あなたのアプリケーションのソースコードを含んでいます。

    • configs/platforms/android_gradle/<ProjectName>plugin/src/main には、あなたのJavaプラグインのソースコードが含まれています。

    ../../_images/create-project-with-java-plugin.png
  3. Android Studioで <ProjectName>/Application/configs/platforms/android_gradle Android Studioプロジェクトを開きます。

    Android Studioプロジェクトには、以下が含まれています:

    • <ProjectName>plugin という名前の Kanzi Engine プラグインのプロジェクト。このプロジェクトで Kanzi Engine プラグインを定義します。

    • app という名前のJavaアプリケーションのプロジェクト。このプロジェクトで Kanzi アプリケーションのロジックを定義します。

    ../../_images/mykanziengineplugin-java-project-contents.png
  4. Android Studioで、Kanzi アプリケーションと Kanzi Engine プラグインのロジックを作成し、Kanzi Studio 用の Kanzi Engine プラグインでカスタムコンポーネントを設定します。Kanzi Engine の機能を拡張する を参照してください。

  5. Kanzi Engine プラグインをビルドする:

    • Kanzi Studio で使用される Kanzi Engine プラグイン JAR のみをビルドするには、exportJarDebug または exportJarRelease Gradle ターゲットを実行します。

      ../../_images/mykanziengineplugin-jar-build.png
    • Kanzi Engine プラグインと Kanzi アプリケーションをビルドするには、app Javaモジュールを選択し、次に Build > Make Project を選択します。

  6. Kanzi Studio プロジェクトの Kanzi Engine プラグインを更新します。

    1. 最初のステップで作成したプロジェクトの Kanzi Studio で、Library > Kanzi Engine Plugins 内でプラグインを右クリックし、Update Kanzi Engine Plugin を選択します。

      この方法でプラグインを更新し、Android Studio プラグインプロジェクトで行った変更を使用します。

      ../../_images/update-java-plugin-metadata1.png
    2. Properties で、Is Enabled プロパティが有効になっていることを確認してください。

      ../../_images/enable-plugin.png

      ヒント

      Kanzi Engine プラグインをプロジェクトで有効または無効にするには、Is Enabled プロパティを使用します。

Java Kanzi Engine プラグインを手動で作成する

Java Kanzi Engine プラグインを手動で作成するには:

  1. Kanzi Studio New Project ウィンドウで、Template を Android Application に設定して、Javaアプリケーションで新しいプロジェクトを作成します。

    ../../_images/kanzi-engine-new-android-project.png
  2. Java Kanzi Engine プラグインを定義するディレクトリとファイルを作成します。

    1. Application/configs/platforms/android_gradle ディレクトリ内にディレクトリ構造 MyKanziplugin/src/main/java/com/rightware/kanzi/MyKanziplugin を作成します。

    2. MyKanziplugin/src/main/java/com/rightware/kanzi/MyKanziplugin ディレクトリに MyKanziDataSource.java ファイルを作成し、基本的なカスタム DataSource を追加します。

      package com.rightware.kanzi.mykanziplugin;
      
      import com.rightware.kanzi.DataObject;
      import com.rightware.kanzi.DataObjectInt;
      import com.rightware.kanzi.DataObjectReal;
      import com.rightware.kanzi.DataObjectString;
      import com.rightware.kanzi.DataSource;
      import com.rightware.kanzi.Domain;
      import com.rightware.kanzi.Metaclass;
      import com.rightware.kanzi.Metadata;
      
      public class MyKanziDataSource extends DataSource {
          @Metadata
          private static final Metaclass metaclass = new Metaclass("MyKanziDataSource");
      
          private ObjectRef<DataObject> mRoot;
      
          public static ObjectRef<MyKanziDataSource> create(Domain domain, String name) {
              return DataSource.createDerived(domain, name, metaclass);
          }
      
          public static Metaclass getStaticMetaclass() {
              return sStaticMetaclass;
          }
      
          public DataObject getData() {
              return mRoot.get();
          }
      
          private MyKanziDataSource(Domain domain, long native Metaclass metaclass) {
              super(domain, native, metaclass);
      
              // Construct the data object tree of the data source.
              mRoot = DataObject.create(domain, "Root");
              DataObject root = mRoot.get();
              root.addChild(DataObjectInt.create(domain, "Integer value", 1).get());
              root.addChild(DataObjectString.create(domain, "String value", "Placeholder value").get());
              root.addChild(DataObjectReal.create(domain, "Real value", 0.5).get());
          }
      }
      
    3. MyKanziplugin/src/main/java/com/rightware/kanzi/MyKanziplugin ディレクトリに MyKanziPlugin.java ファイルを作成し、プラグイン定義を追加します。

      package com.rightware.kanzi.mykanziplugin;
      
      import com.rightware.kanzi.MetaclassRegistry;
      import com.rightware.kanzi.Plugin;
      
      public class MyKanziPlugin extends Plugin {
          @Override
          public String getName() {
              return "mykanziplugin";
          }
      
          @Override
          public void registerClasses(MetaclassRegistry metaclassRegistry) {
              metaclassRegistry.registerClass(MyKanziDataSource.class);
          }
      }
      

      ヒント

      Plugin.getName から返される文字列は、Jar ファイルの名前と一致している必要があります。

    4. MyKanziplugin/src/main ディレクトリに AndroidManifest.xml ファイルを作成し、プラグインの Android マニフェストを追加します。

      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.rightware.kanzi.mykanziplugin">
      </manifest>
      
    5. Application/configs/platforms/android_gradle/MyKanziplugin ディレクトリに build.gradle ファイルを作成し、Gradle ビルド手順を追加します。

      apply plugin: 'com.android.library'
      
      android {
          compileSdkVersion 28
          defaultConfig {
              minSdkVersion 26
              targetSdkVersion 28
              versionCode 1
              versionName "1.0"
          }
      
          buildTypes {
              release {
                  minifyEnabled false
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
              }
          }
      }
      
      android.buildTypes.all { buildType ->
          task "exportJar${buildType.name.capitalize()}"(type: Jar, group: 'Kanzi') {
              archiveBaseName = project.name
              destinationDir = file("${rootDir}/../../../lib/java/${buildType.name.capitalize()}")
              description "Export ${buildType.name} JAR plugin into ${destinationDirectory.get().toString()}."
              manifest {
                  attributes 'Plugin-Version': "${android.defaultConfig.versionName}",
                          'Plugin-Class': 'com.rightware.kanzi.mykanziplugin.MyKanziPlugin'
              }
              from("build/intermediates/javac/${buildType.name}/classes/")
              dependsOn("assemble${buildType.name.capitalize()}")
          }
      }
      
      java {
          sourceCompatibility = JavaVersion.VERSION_1_7
          targetCompatibility = JavaVersion.VERSION_1_7
      }
      
      dependencies {
          implementation 'com.rightware.kanzi:kzjava@aar'
      }
      
  3. Kanzi Android framework (droidfw) プロジェクトに Java Kanzi Engine プラグインへの参照を追加します。Application/configs/platforms/android_gradle ディレクトリで:

    1. settings.gradle ファイルに、作成したプラグインプロジェクトへの参照を追加します。

      include ':MyKanziplugin'
      
    2. app ディレクトリの build.gradle ファイルで、プラグインを dependencies セクションに追加します。

      implementation project(':MyKanziplugin')
      
    3. app/src/main/java/com/rightware/kanzi/<ProjectName> ディレクトリの <ProjectName>Activity.java ファイルで、次の変更を行います。

      • インポートに以下を追加します:

        import com.rightware.kanzi.mykanziplugin.MyKanziPlugin;
        
      • onCreate メソッドの冒頭に次を追加します。

        mRuntimeRef.get().getDomain().registerPlugin(new MyKanziPlugin());
        
  4. Android Studio で Kanzi Engine プラグインをビルドします。

    • Kanzi Studio が使用する Kanzi Engine プラグイン JAR をビルドするには、exportJarDebug または exportJarRelease Gradle ターゲットを実行します。

      ../../_images/mykanziapplication-jar-build.png
    • Kanzi Engine プラグインと Kanzi アプリケーションをビルドするには、app Javaモジュールを選択し、次に Build > Make Project を選択します。

    Android Studio は、Application/lib/java/<buildType>/MyKanziplugin.jar で Kanzi Studio が使用する JAR ファイルをビルドします。プラグインを使用するには、それを Kanzi Studio にインポートします。Kanzi Studio プロジェクトに Kanzi Engine プラグインを追加する を参照してください。

Kanzi Studio プロジェクトに Kanzi Engine プラグインを追加する

Kanzi Studio プロジェクトに Kanzi Engine プラグインを追加するには、

  1. Library で右クリックして Kanzi Engine Plugins を選択し、Import Kanzi Engine Plugin を選択します。

    ../../_images/import-kanzi-engine-plugin.png

    ヒント

    スクリプトを使用して、Kanzi Engine プラグインのインポートを自動化できます。スクリプトを使用して Kanzi Engine プラグインをインポートする を参照してください。

  2. インポートしたいプラグインのDLLまたはJARファイルを選択し、Open をクリックします。

    注釈

    Kanzi Studio 3.9.5 から、Kanzi Java プラグインのパスは次のパターンに従う必要があります:

    • デバッグのため、パスは lib/java/Debug/<PluginName>.jar でなければなりません。

    • リリースのためには、パスは lib/java/Release/<PluginName>.jar でなければなりません。

    Kanzi Engine Javaプラグインのデバッグおよびリリースビルドタイプのサポートの変更 を参照してください。

    Library > Kanzi Engine Plugins でインポートしたプラグインを選択すると、Properties でそのプラグインが Kanzi Studio プロジェクトに持ち込むコンテンツのリストを見ることができます。例えば、Properties では、選択したプラグインによって提供されるプロパティタイプ、コンポーネント、データソース、レンダーパス、ノードコンポーネント、トリガーアクションタイプのリストを見ることができます。

  3. DLLプラグインの場合、Kanzi Studio プロジェクトの設定が、アプリケーションおよびプラグインプロジェクトをビルドするためにVisual Studioで使用するソリューション構成と一致していることを確認してください。

    例えば、Visual Studio 2019で Release ソリューション構成を使用する場合、Project > Properties セット内の Kanzi Studio プロジェクトで:

    • Preview OpenGL ES Wrapper から GL (Emulation through desktop OpenGL) へ

    • Preview Build Configuration から Release へ

    • Preview Visual Studio Version から 2019 へ

    • Preview Working Directory から ..\Application\bin へ。

    これらの設定により、Kanzi Studio Preview をプラグインで動作させることができます。

    ../../_images/project-properties.png ../../_images/project-properties1.png
  4. Library > Kanzi Engine Plugins でプラグインを選択し、Properties で Is Enabled プロパティが有効になっていることを確認してください。

    ../../_images/enable-is-enabled-property.png

    ヒント

    Kanzi Engine プラグインをプロジェクトで有効または無効にするには、Is Enabled プロパティを使用します。

  5. Preview を再起動するには、Ctrl F8 を押すか、Preview > Restart Preview を選択します。

    Kanzi Engine プラグインによって提供されるコンテンツを、Kanzi Studio プロジェクトで使用できるようになりました。

関連項目

Java と Kotlin を使用して

ネイティブ Kanzi Engine プラグインのデバッグ

Kanzi Engine の機能を拡張する

Kanzi Engine プラグインで宣言されたプロパティタイプのための Kanzi Studio プロパティエディタ

Kanzi Engine プラグイン