☰
Kuikly HarmonyOS开发指南:DevEco Studio跨端页面开发全流程详解
2026/9/27 9:16:26 网站建设 项目流程

Kuikly HarmonyOS开发指南:DevEco Studio跨端页面开发全流程详解

【免费下载链接】KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!项目地址: https://gitcode.com/Tencent-TDS/KuiklyUI

Kuikly 是腾讯开源的基于 Kotlin Multiplatform(KMP)的高性能全平台 UI 框架,支持一套代码同时运行在 Android、iOS、HarmonyOS 等多端。本指南带你走通 Kuikly 鸿蒙(HarmonyOS/OHOS)开发全流程:从工程配置、跨端页面编写、so 产物编译,到在 DevEco Studio 中构建、运行与调试鸿蒙 App 🚀

一、为什么用 Kuikly 做鸿蒙跨端开发?

Kuikly 的核心价值在于统一代码库:业务页面写在commonMain中,各端只保留薄薄的一层原生宿主。对于鸿蒙平台,Kuikly 提供了定制版 Kotlin 工具链(2.0.21-KBA-010),将跨端代码编译为鸿蒙可加载的.so产物,再由鸿蒙宿主工程(ArkTS)加载渲染。

整体开发流程如下:

Android Studio(Kuikly 工程)→ 编写跨端页面 → 编译ohosArm64so 产物 → 同步到鸿蒙宿主工程(ohosApp)→DevEco Studio构建运行 App

官方鸿蒙开发文档可参考:docs/DevGuide/harmony-dev.md

二、环境准备:定制版 Kotlin 工具链

鸿蒙跨端产物需要使用鸿蒙 SDK 的 LLVM 工具链编译,必须使用定制版 Kotlin 版本:

配置项值
Kotlin 版本2.0.21-KBA-010(已支持 Windows/Linux 编译)
Kuikly 版本带-ohos后缀的版本
构建目标ohosArm64
  • Windows 环境:需设置环境变量OHOS_SDK_HOME指向 DevEco Studio 中的 SDK 路径(如D:\Program Files\DevEco Studio\sdk\default\openharmony)
  • 两种编译链模式:
    • 方式一(推荐新手):为鸿蒙单独配置 Gradle 脚本settings.ohos.gradle.kts,用-c参数指定编译
    • 方式二:统一编译链,Android/iOS/Ohos 共用一份build.gradle.kts,配置更简洁

三、配置 ohosArm64 构建目标

在 Kuikly 工程的 Gradle 脚本中,为 shared 模块添加ohosArm64构建目标,并声明共享库:

kotlin { ohosArm64 { binaries { sharedLib() } } }

同时引入带-ohos后缀的 Kuikly SDK 与 KSP 编译器:

implementation("com.tencent.kuikly-open:core:KUIKLY_VERSION-ohos")

💡 独立编译链模式下,工程根目录会提供settings.ohos.gradle.kts,例如本仓库的 settings.2.0.ohos.gradle.kts,源码工程可直接用它编译鸿蒙产物。

四、编写第一个 Kuikly 鸿蒙跨端页面

Kuikly 页面与 Android/iOS 端的写法完全一致,写在commonMain中即可复用;如需平台差异化逻辑,可放入ohosArm64Main源集做平台实现。本仓库中就有鸿蒙专属页面示例:demo/src/ohosArm64Main/

在页面内可以通过以下方式判断当前是否运行在鸿蒙平台:

val isOhos = pagerData.platform === "ohos"

页面编写方法可参照官方入门文档 docs/QuickStart/hello-world.md。

五、编译 so 产物并同步到鸿蒙宿主工程

执行 Gradle 任务linkOhosArm64即可生成 so 产物和头文件:

./gradlew -c settings.2.0.ohos.gradle.kts :demo:linkSharedOhosArm64

构建成功后,so 产物位于shared/build/bin/ohosArm64/目录,需要与头文件一起同步到鸿蒙宿主工程。Kuikly 提供了Kuikly Hvigor 插件(kuikly-ohos-compile-plugin),在鸿蒙工程运行时自动编译并拷贝 so 与头文件,省去手动操作。

本仓库的鸿蒙宿主工程位于 ohosApp/ 目录,加载渲染页面由KuiklyPageView承载,核心实现见 KuiklyPageView.ets:

export class KuiklyPageView extends KuiklyRenderBaseView { static readonly VIEW_NAME = 'KuiklyPageView' pageName: string = '' pageData: string = '{}' }

注意:鸿蒙不支持assets资源内置打包,跨端资源需拷贝到鸿蒙工程的resfile目录中,同样可借助 Hvigor 插件自动完成。

六、在 DevEco Studio 中构建运行鸿蒙 App

  1. 用DevEco Studio打开ohosApp鸿蒙工程;
  2. 选择真机或模拟器,点击Run运行;
  3. App 启动后,ArkTS 侧通过KuiklyPageView加载 Kuikly 渲染引擎,展示你在commonMain中编写的跨端页面 🎉

至此,一套 Kotlin 代码就同时跑在了鸿蒙设备上。KMP 组件的鸿蒙适配进阶技巧可参考 docs/Community/kmp_ohos_adaptation_guide.md。

七、DevEco Studio 鸿蒙平台调试

当遇到鸿蒙特有问题时,可以在宿主侧直接调试 Kotlin 跨端代码:

让 DevEco 识别 .kt 文件

Preferences -> Editor -> File Types,在 C code file 类型中添加*.kt条目,即可像普通文件一样打开并设置断点:

设置断点并 Attach 调试进程

将 kt 文件拖入 DevEco 后点击文件行号设置断点,也可以直接在 LLDB 命令窗口用breakpoint set --file foo.kt --line 12设置:

App 已运行时可通过右侧按钮Attach 进程,或在 DevEco 中直接点击 Debug 启动调试。命中断点后可正常查看变量与调用栈:

调试 Kotlin 跨端代码需使用debug 产物;Kotlin 版本为2.0.21-KBA-010时需加载konan_lldb.py调试脚本。完整调试指引见 docs/DevGuide/ohos-debug.md。

性能分析方面,可使用 DevEco 自带的 Profiler 观察渲染耗时:

八、常见问题速查

问题解决方式
编译报错找不到工具链确认 Kotlin 版本为2.0.21-KBA-010,且添加了定制 Maven 源
Windows 下无法联动编译 Ohos App先 Gradle 编译 so 产物并拷贝到 ohosApp,再在 DevEco 中单独构建
ohosArm64Main 无编译提示说明未使用独立编译链模式,可切换为统一工具链或接受多脚本维护
断点不生效确认使用 debug 产物,并已加载konan_lldb.py脚本

小结

Kuikly 的鸿蒙开发链路非常清晰:commonMain 写页面 → ohosArm64 编译 so → Hvigor 插件同步 → DevEco Studio 运行调试。掌握这套流程后,你只需维护一份 Kotlin 代码,即可同时交付 Android、iOS 与 HarmonyOS 三端应用。

更多资料:

  • 鸿蒙开发方式:docs/DevGuide/harmony-dev.md
  • 鸿蒙调试:docs/DevGuide/ohos-debug.md
  • 鸿蒙宿主工程:ohosApp/
  • KMP 组件鸿蒙适配:docs/Community/kmp_ohos_adaptation_guide.md

【免费下载链接】KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!项目地址: https://gitcode.com/Tencent-TDS/KuiklyUI

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询