部署面向 Android 系统的 Kanzi 应用程序

要创建面向 Android 系统的 Kanzi 应用程序,您可以使用 Android Studio、Clang 工具链和 Gradle 构建系统。

要求

在将 Kanzi 应用程序部署到 Android 设备前,需要设置您的构建环境。请参阅 部署 Kanzi 应用程序到 Android

要使用 KanziAndroid 平台软件包构建 Kanzi 应用程序并部署到 Android 设备,您需要:

Kanzi 支持 Android API 等级 21(Android 5.0 版本)及更新版本。

Kanzi 在 Android 系统中不支持 JavaScript 脚本编写功能。

此图表展示出 Kanzi 构建 Android 包所需要的流程。

Kanzi 应用程序中的 Android 生命周期事件

Android 生命周期事件设置 Kanzi 应用程序在活动状态更改时的行为方式。每个事件映射到一个 Android 活动回调方法。一个 Kanzi 应用程序会使用以下生命周期活动:

Kanzi 不使用 LifeCycle.Event.ON_PAUSELifecycle.Event.ON_RESUME 事件,因为这两个事件不告知应用程序图面是否准备好渲染。KanziView 分别使用 SurfaceHolder.CallbacksurfaceCreated()surfaceDestroyed() 函数,来暂停和恢复渲染。

请参阅 https://developer.android.com/reference/androidx/lifecycle/Lifecycle.Event.htmlhttps://developer.android.com/reference/android/view/SurfaceHolder.Callback

此图表展示了一个 Kanzi 应用程序在 Android 平台上的初始化序列。

向 Android Studio 工程添加一个 KanziView

要在您的 Android 应用程序中运行 Kanzi 应用程序,您可以向现有的 Android Studio 工程添加一个 KanziView

要向 Android Studio 工程添加 KanziView,请执行以下操作:

  1. Kanzi Studio 中打开要作为 Kanzi 视图添加到 Android Studio 工程的工程,并选择 文件 (File) > 导出 (Export) > 导出 KZB (Export KZB)
  2. 复制 <KanziWorkspace>/Projects/<ProjectName>/Application/bin 目录到您的 Android Studio 工程根目录中。这样就在 Android 软件包中添加了 kzb 文件。
    例如,对于一个名为“MyProject”的 Android Studio 工程,将 Application/bin 目录复制到 MyProject 目录中。
  3. 在 Android Studio 中打开想要添加 KanziView 的工程。
  4. 在 Android Studio 的 app/src/main 目录中,创建一个名为“cpp”的目录,并将 Kanzi 工程的 Cmake 生成文件和源代码添加到该目录中。
  5. <KanziWorkspace>/Templates/Basic_application/Application/configs/platforms/android_gradle 复制 getkanzi.gradle 文件到您的 Android 工程目录中。
    Gradle 使用 getkanzi.gradle 脚本查找 Kanzi EngineKanzi Gradle 插件。
  6. 在 Android Studio 中,将 Kanzi 添加到您的工程:
    1. app/build.gradle 文件中,将 Kanzi 添加到您的 Android 工程中:
      apply plugin: 'com.rightware.gradle.kanzi'
    2. 导入 Java 活动 ConfigurationKanziView 类。
      例如,在 app/src/main/java/com/rightware/<projectname>/MainActivity.java 中添加以下代码:
      import android.content.res.Configuration;
      import com.rightware.kanzi.KanziView;
    3. MainActivity.java 文件中,将 Kanzi 视图添加到 MainActivity 类:
      public class MainActivity extends AppCompatActivity {
      
          private KanziView mView = null;
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              
              ...
      
              mView = findViewById(R.id.kanzicontent);
              mView.registerLifecycle(getLifecycle());
          }
          ...
      
          @Override
          public void onConfigurationChanged(Configuration newConfig)
          {
              super.onConfigurationChanged(newConfig);
      
              mView.setOrientation(newConfig.orientation);
          }
      }
    4. 在 Android 工程根目录的 build.gradle 文件中获取 Kanzi Gradle 插件,并添加作为依赖项的 Kanzi
      buildscript {
          apply from: 'getkanzi.gradle'
      
          repositories {
              google()
              jcenter()
      
              flatDir { dirs getKanziPlugins().toString() }
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:4.1.0'
              classpath 'com.rightware.gradle:kanzi:0.6.1'
          }
      ...
    5. 向您的 Android 应用程序内容添加 KanziView 并设置其布局。
      例如,在 app/src/main/res/layout/content_main.xml 中添加以下代码:
          <com.rightware.kanzi.KanziView
                  android:id="@+id/kanzicontent"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_marginTop="24dp"
                  app:layout_constraintBottom_toBottomOf="parent"
                  app:layout_constraintEnd_toEndOf="parent"
                  app:layout_constraintStart_toStartOf="parent" />
    6. app/build.gradle 文件中进行以下设置:
      • 将 Android 工程的资产目录设置为包含 kzb 文件的目录。
      • 将路径设置 Cmake 构建文件
      apply plugin: 'com.android.application'
      apply plugin: 'com.rightware.gradle.kanzi'
      
      android {
      
      ...
      
              sourceSets {
                  main {
                      assets.srcDirs = [new File(rootDir, "bin")]
                  }
              }
          }
      
      ...
      
          externalNativeBuild {
              cmake {
                  path file("$projectDir/src/main/cpp/CMakeLists.txt")
              }
          }
      }
  7. 在 Android Studio 主菜单中选择“生成”>“制作工程”。
    Android Studio 生成应用程序包。

另请参阅

部署 Kanzi 应用程序到 Android

Android API 参考