添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
部署面向 Android 系统的 Kanzi 应用程序

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

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

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

  • Android Studio 4.1.0 and NDK 21.3.6528147
    您可以在以下地址下载 Android Studio: https://developer.android.com/studio/archive
  • Android Gradle plugin 4.1.3 and Gradle 6.7.1 or lower
  • Java Development Environment Kit 1.8 或更高版本(64 位版本)
    捆绑提供 Android Studio 安装程序。
  • CMake 3.5.1 或更新版本
  • 适用于您 Android 设备的 USB 设备驱动程序
    请查阅 安装适用于 Android 设备的 Android USB 驱动程序 .
  • Kanzi 支持 Android API 等级 21(Android 5.0 版本)及更新版本。

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

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

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

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

  • Lifecycle.Event.ON_CREATE
    //加载提供 Kanzi 功能的原生库,
    //初始化上下文,以及分配用于渲染的 KanziView 的本机库。
    //此函数调用 KanziNativeLibrary.createApplication() 函数
    //加载 Kanzi 工程。
    KanziView.createNativeApplication();
  • Lifecycle.Event.ON_DESTROY
    //停止并销毁 Kanzi 应用程序。
    //此函数调用 KanziNativeLibrary.haltApplication() 和
    // KanziNativeLibrary.destroyApplication() 函数。
    KanziView.destroyNativeApplication();
  • SurfaceHolder.Callback.surfaceCreated
    //创建应用程序图面时,运行 Kanzi 应用程序。
    KanziNativeLibrary.runApplication(holder.getSurface());
  • SurfaceHolder.Callback.surfaceDestroyed
    //销毁 Kanzi 应用程序图面时,暂停渲染。
    KanziNativeLibrary.haltApplication();
  • SurfaceHolder.Callback.surfaceChanged
    //当 Kanzi 应用程序图面格式或大小更改时,
    //调整应用程序图面的大小。
    // @param width: 图面的新宽度。
    // @param height: 图面的新高度。
    KanziNativeLibrary.resizeEvent(width, height);

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

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

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

    向 Android Studio 工程添加一个 KanziView

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

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

  • Kanzi Studio 中打开要作为 Kanzi 视图添加到 Android Studio 工程的工程,并选择 文件 (File) > 导出 (Export) > 导出 KZB (Export KZB)
  • 复制 <KanziWorkspace> / Projects / <ProjectName> / Application / bin 目录到您的 Android Studio 工程根目录中。这样就在 Android 软件包中添加了 kzb 文件。
    例如,对于一个名为“ MyProject ”的 Android Studio 工程,将 Application / bin 目录复制到 MyProject 目录中。
  • 在 Android Studio 中打开想要添加 KanziView 的工程。
  • 在 Android Studio 的 app / src / main 目录中,创建一个名为“ cpp ”的目录,并将 Kanzi 工程的 Cmake 生成文件和源代码添加到该目录中。
    • Kanzi 应用程序的 <KanziWorkspace> / Projects / <ProjectName> / Application 目录中,复制 CMakeLists.txt 文件到 cpp 目录。
    • Kanzi 应用程序的 <KanziWorkspace> / Projects / <ProjectName> / Application / src 目录中,复制 <project_name>.cpp 文件到 cpp 目录。
  • <KanziWorkspace> / Templates / Basic_application / Application / configs / platforms / android_gradle 复制 getkanzi.gradle 文件到您的 Android 工程目录中。
    Gradle 使用 getkanzi.gradle 脚本查找 Kanzi Engine Kanzi Gradle 插件。
  • 在 Android Studio 中,将 Kanzi 添加到您的工程:
    1. app / build.gradle 文件中,将 Kanzi 添加到您的 Android 工程中:
      apply plugin: 'com.rightware.gradle.kanzi'
    2. 导入 Java 活动 Configuration KanziView 类。
      例如,在 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 生成应用程序包。
    8. 部署 Kanzi 应用程序到 Android

      Android API 参考

  •