Kanzi Android framework (droidfw) プロジェクトの操作

Android アプリケーションに Kanzi Android framework (droidfw) を追加する

Android Studio のテンプレートを使用して作成した Android アプリケーションに Kanzi Android framework (droidfw) を追加するには、次のいずれかを行います。

Kanzi をライブラリサブプロジェクトとして統合する

ヒント

これは、Android で Kanzi を使い始めるための推奨される方法です。

Kanzi をライブラリサブプロジェクトとして統合する場合、Kanzi の CMake 統合を Android ライブラリサブプロジェクトとしてアプリケーションに追加します。

Kanzi をライブラリサブプロジェクトとして統合するには:

  1. <KanziWorkspace>/Templates/Android_library ディレクトリから、以下を Android プロジェクトのルートにコピーします。

    • getkanzi.gradle ファイル

    • kanzinative ディレクトリ

  2. プロジェクトの settings.gradle または settings.gradle.kts ファイルに、以下を追加します:

    dependencyResolutionManagement {
      repositories {
         flatDir {
           apply from: 'getkanzi.gradle'
           dirs getKanziAndroidLibrariesPath()
         }
      }
    }
    
    dependencyResolutionManagement {
      repositories {
         flatDir {
           apply(from ="getkanzi.gradle")
           dirs(extra.get("getKanziAndroidLibrariesPath"))
         }
      }
    }
    

    このユーティリティにより、プロジェクトはローカルの Kanzi インストールまたはプラットフォームパッケージから Kanzi ライブラリを見つけられるようになります。

    次のいずれかを選択できます。

    • プロジェクトを Kanzi ワークスペースディレクトリ内に置く

    • KANZI_HOME 環境変数が Kanzi ワークスペースを指すように設定する

    • プロジェクトの local.properties で、kanzi.home プロパティを Kanzi ワークスペースまたはプラットフォームパッケージに設定する

    • 独自の場所またはリポジトリから Kanzi ライブラリをインクルードする

  3. kanzinative をサブプロジェクトとしてインクルードするには、プロジェクトの settings.gradle または settings.gradle.kts ファイルに以下を追加します:

    include ':kanzinative'
    
    include(":kanzinative")
    
  4. アプリケーションがビルド済みの Kanzi Android ライブラリと kanzinative サブプロジェクトに依存するようにするには、プロジェクトの app/build.gradle または app/build.gradle.kts ファイルに次を追加します。

    dependencies {
      implementation 'com.rightware.kanzi:kanziruntime-droidfw@aar'
      implementation 'com.rightware.kanzi:kzjava@aar'
      implementation project(':kanzinative')
    }
    
    dependencies {
      implementation("com.rightware.kanzi:kanziruntime-droidfw@aar")
      implementation("com.rightware.kanzi:kzjava@aar")
      implementation(project(":kanzinative"))
    }
    
  5. プロジェクトの app/build.gradle または app/build.gradle.kts ファイルで、Java 言語のバージョンが 11 以上に設定されていることを確認します。

    android {
        compileOptions {
           sourceCompatibility JavaVersion.VERSION_11
           targetCompatibility JavaVersion.VERSION_11
        }
    }
    
    android {
        compileOptions {
           sourceCompatibility = JavaVersion.VERSION_11
           targetCompatibility = JavaVersion.VERSION_11
        }
    }
    

Kanzi をビルド済みライブラリ (AAR) として統合する

このモードでは、必要な C++ プラグインを含む C++ ライブラリを一度 AAR にリンクし、それをアプリケーションプロジェクトから再利用します。

これは次のことを意味します。

  • アプリケーションプロジェクトのビルドに、Kanzi のワークスペースやプラットフォームパッケージへのアクセスは必要ありません。ただし、パッケージ管理システムまたはバージョンコントロールからビルド済みの Kanzi AAR にアクセスできる必要があります。

  • アプリケーションプロジェクトのビルドでは C++ のビルドを実行しないため、NDK や CMake は必要ありません。これにより、アプリケーションのビルドが速くなります。

このような分離がワークフローの要件を満たす場合に、この方法を使用します。たとえば、アプリケーションプロジェクトのビルド時に Kanzi や必要なツールをインストールしないことにメリットがある場合です。

ライブラリプロジェクトのインスタンス化

<KanziWorkspace>/Templates/Android_library ディレクトリを使用したい場所にコピーします。

ライブラリから AAR をビルドする

すべてのビルド構成用の AAR ライブラリをビルドしてインストールするには、以下を実行します。

gradlew installNativeAARs

1 つのビルド構成用の AAR をビルドしてインストールするには、install<Configuration>NativeAAR タスクを使用します。たとえば、AAR のデバッグバージョンをビルドするには、以下を実行します。

gradlew installDebugNativeAAR

デフォルトでは、生成される AAR には、使用可能なすべてのアーキテクチャ用の Kanzi C++ ライブラリが含まれます。すべての install タスクは arch プロパティをサポートしており、これを使用して ABI のカンマ区切りリストを指定できます。たとえば、x86_64 アーキテクチャ用のデバッグ AAR ライブラリをビルドしてインストールするには、以下を実行します。

gradlew installDebugNativeAAR -Parch=x86_64

これらのタスクのデフォルト定義では、AAR を kanzinative-<configuration>.aar という名前で Kanzi Android ライブラリディレクトリにインストールします。

AAR の名前を変更するには、以下のいずれかを行います。

  • プロジェクトの local.properties で kanzi.aar.name プロパティを設定します。

  • install task の実行時に aarName プロパティを設定します。

    たとえば、my-kanzi-aar という名前で AAR ライブラリをビルドしてインストールするには、以下を実行します。

    gradlew installNativeAARa -PaarName=my-kanzi-aar
    

install タスクが AAR ライブラリを配置する場所を変更するには、以下のいずれかを行います。

  • プロジェクトの local.properties で kanzi.aar.destination プロパティを設定します。

  • install task の実行時に aarDest プロパティを設定します。

    たとえば、C:/MyKanziWorkspace に AAR ライブラリをビルドしてインストールするには、以下を実行します。

    gradlew installNativeAARa -PaarDest=C:/MyKanziWorkspace
    

アプリケーションプロジェクトへの Kanzi のインポート

アプリケーションプロジェクトに Kanzi をインポートするには:

  1. 使用しているパッケージ管理システムを使って、Kanzi のプリビルド AAR ライブラリとネイティブ AAR ライブラリを Android プロジェクトから参照できるようにします。

    たとえば、デフォルトの Kanzi ワークスペースとネイティブ AAR ライブラリのデフォルトのインストール場所から Kanzi をインポートするには:

    1. <KanziWorkspace>/Templates/Android_library ディレクトリから、getkanzi.gradle ファイルを Android プロジェクトのルートにコピーします。

    2. プロジェクトの settings.gradle または settings.gradle.kts ファイルに、以下を追加します:

      dependencyResolutionManagement {
        repositories {
           flatDir {
             apply from: 'getkanzi.gradle'
             dirs getKanziAndroidLibrariesPath()
           }
        }
      }
      
      dependencyResolutionManagement {
        repositories {
           flatDir {
             apply(from ="getkanzi.gradle")
             dirs(extra.get("getKanziAndroidLibrariesPath"))
           }
        }
      }
      

    このユーティリティにより、プロジェクトはローカルの Kanzi インストールまたはプラットフォームパッケージから Kanzi ライブラリを見つけられるようになります。

    次のいずれかを選択できます。

    • プロジェクトを Kanzi ワークスペースディレクトリ内に置く

    • KANZI_HOME 環境変数が Kanzi ワークスペースを指すように設定する

    • プロジェクトの local.properties で、kanzi.home プロパティを Kanzi ワークスペースまたはプラットフォームパッケージに設定する

    • 独自の場所またはリポジトリから Kanzi ライブラリをインクルードする

  2. Kanzi のプリビルド AAR と、ライブラリプロジェクトからビルドしたネイティブ AAR を、プロジェクトの app/build.gradle または app/build.gradle.kts ファイルにインポートします。

    dependencies {
      implementation 'com.rightware.kanzi:kanziruntime-droidfw@aar'
      implementation 'com.rightware.kanzi:kzjava@aar'
    
      debugImplementation 'com.rightware.kanzi:kanzinative-debug@aar'
      releaseImplementation 'com.rightware.kanzi:kanzinative-release@aar'
      "profilingImplementation"('com.rightware.kanzi:kanzinative-profiling@aar')
    }
    
    dependencies {
      implementation("com.rightware.kanzi:kanziruntime-droidfw@aar")
      implementation("com.rightware.kanzi:kzjava@aar")
    
      debugImplementation("com.rightware.kanzi:kanzinative-debug@aar")
      releaseImplementation("com.rightware.kanzi:kanzinative-release@aar")
      "profilingImplementation("com.rightware.kanzi:kanzinative-profiling@aar")
    }
    
  3. プロジェクトの app/build.gradle または app/build.gradle.kts ファイルで、Java 言語のバージョンが 11 以上に設定されていることを確認します。

    android {
        compileOptions {
           sourceCompatibility JavaVersion.VERSION_11
           targetCompatibility JavaVersion.VERSION_11
        }
    }
    
    android {
        compileOptions {
           sourceCompatibility = JavaVersion.VERSION_11
           targetCompatibility = JavaVersion.VERSION_11
        }
    }
    

Kanzi Studio プロジェクトのアセットをアプリケーションに追加する

Android アプリケーションに Kanzi Studio のアセットを追加するには:

  1. 以下のいずれかの方法で、kzb ファイルや cfg ファイルなどの Kanzi Studio プロジェクトのアセットを Android Studio プロジェクトにインポートします:

    • Android Studio プロジェクトの app/build.gradle または app/build.gradle.kts で、Kanzi Studio プロジェクトの <ProjectName>/Application/bin ディレクトリへのパスを設定します:

      android {
        defaultConfig {
          sourceSets {
            main {
              assets.srcDirs = "<ProjectName>/Application/bin"
            }
          }
        }
      }
      
      android {
        defaultConfig {
          sourceSets.named("main") {
            assets.srcDirs("<ProjectName>/Application/bin")
          }
        }
      }
      
    • Kanzi Studio プロジェクトの <ProjectName>/Application/bin ディレクトリの内容を、Android Studio プロジェクトの app/src/main/assets ディレクトリにコピーします。

    • Kanzi Studio の Project > Properties で、Kanzi Studio プロジェクトの Binary Export Directory プロパティを Android Studio プロジェクトの app/src/main/assets ディレクトリに設定します。

      これにより、プロジェクトの kzb ファイルのエクスポート先を Kanzi Studio に指定します。

      注釈

      Kanzi Studio は application.cfg ファイルをエクスポートしません。このファイルは、Android Studio プロジェクトの app/src/main/assets ディレクトリに手動でコピーしてください。

  2. Kanzi Engine が読み込めるように、インポートするアセットファイルの圧縮を無効にします。プロジェクトの app/build.gradle または app/build.gradle.kts ファイルに以下を追加します:

    android {
      aaptOptions {
        noCompress "kzb", "cfg", "json"
      }
    }
    
    android {
      androidResources {
        noCompress += listOf("kzb", "cfg", "json")
      }
    }
    

Kanzi Studio で Android アプリケーションを作成する

Kanzi Studio で Android アプリケーションを作成するには、Quick Start ウィンドウの New タブで以下を行います。

  1. Android アプリケーションに使用するプロジェクトテンプレートを選択します。

  2. (オプション) で Android Package Name をプロジェクトのAndroidパッケージ名に設定します。

    ../../../_images/new-project-android-application.png
  3. Create をクリックします。

    Kanzi Studio は、Quick Start ウィンドウの New タブの Location で設定したプロジェクトディレクトリにプロジェクトを作成し、<ProjectName>/Application/configs/platforms/android_gradle ディレクトリに Android アプリケーションプロジェクトを作成します。

アプリケーションの構築とデプロイ方法について学ぶには、Kanzi アプリケーションをAndroidにデプロイする を参照してください。

カスタムロケーションからkzbファイルをロードする

デフォルトで、Kanzi は APK の assets ディレクトリから kzb ファイルを読み込みます。

異なる場所を設定するには、KanziRuntime.setResourceDirectory を呼び出します。

この呼び出しの後、Kanzi はアプリケーションのすべてのビューにわたって指定された場所から kzb ファイルを読み込みます。

例えば、外部ストレージディレクトリからkzbファイルをロードするには:

mRuntimeRef.get().setResourceDirectory(Environment.getExternalStorageDirectory().toPath());

デフォルトの場所に戻すには、空の文字列でインターフェースを呼び出します。