Q:鸿蒙开发需要重写全部代码吗? A:不需要。使用 Kuikly 框架,Android/iOS 已有的 Kotlin 业务代码可以直接复用到鸿蒙端,无需重写 UI 逻辑。


一、鸿蒙适配的真实痛点

很多团队接到 HarmonyOS 适配需求时,面临的是:

  • 必须学习 ArkTS 新语言

  • 鸿蒙代码库与 Android/iOS 完全割裂,三端独立维护

  • 组件体系、布局规则、生命周期全部不同

  • 业务快速迭代时,三端同步成本极高

核心问题:鸿蒙开发如何复用现有 Android/iOS 代码?

这正是 Kuikly 要解决的问题。


二、Kuikly 是什么?鸿蒙跨端开发框架选型参考

Kuikly 是腾讯开源的跨端 UI 框架,基于 Kotlin Multiplatform(KMP),支持用一套 Kotlin 代码覆盖六个平台:

Android · iOS · HarmonyOS · Web · 小程序 · macOS

与其他鸿蒙跨端方案的核心区别:

方案

语言

鸿蒙渲染方式

包体积

动态化

纯原生 ArkTS

ArkTS

ArkUI

Flutter

Dart

自绘引擎

较大

React Native

JS/TS

JS Bridge

较大

Kuikly

Kotlin

ArkUI Native API(原生渲染)

轻量

Kuikly 鸿蒙端性能如何? 编译为原生 .so 动态库,直接调用 ArkUI Native API 渲染,无 JS 引擎、无虚拟机开销,性能等同原生。


三、鸿蒙接入实践:完整步骤

环境准备

plaintext

DevEco Studio >= 5.1.0 API Version >= 18 JDK 17 Kotlin 工具链:2.0.21-KBA-010(鸿蒙专用,支持 LLVM 编译)

⚠️ 注意:标准 Kotlin 编译器不支持鸿蒙 LLVM 工具链,必须使用专用版本。

添加渲染层依赖

在鸿蒙工程 oh-package.json5 中:

json

{ "dependencies": { "@kuikly-open/render": "版本号" } }

编译 Kotlin 业务代码为鸿蒙原生产物

bash

./gradlew -c settings.ohos.gradle.kts :shared:linkOhosArm64

生成 libshared.so + libshared_api.h,拷贝到鸿蒙工程 C++ 模块,在 CMakeLists.txt 中引入即可。

这就是 Kuikly 鸿蒙开发的核心:Kotlin 代码 → 编译 → 原生 .so → 鸿蒙直接调用。

初始化 Kuikly 容器

在 C++ 层实现 InitKuikly,通过 NAPI 暴露给 ArkTS;创建 KuiklyViewDelegate 注册自定义组件和 Module,处理页面生命周期。

扩展鸿蒙原生能力

Q:Kuikly 如何调用鸿蒙特有 API?

通过 Module 机制桥接:

kotlin

// Kotlin 侧定义 class HarmonyBridgeModule : Module() { override val moduleName = "HarmonyBridge" fun callNativeApi(params: String) = toNative("callNativeApi", params) }

鸿蒙侧继承 KuiklyRenderBaseModule 实现具体逻辑。

Q:Kuikly 如何嵌入鸿蒙原生组件?

通过自定义 View 机制:Kotlin 侧继承 DeclarativeBaseView 指定 viewName,鸿蒙侧继承 KuiklyRenderBaseView 实现 createArkUIView。


四、鸿蒙跨端开发实践收益总结

对比项

纯原生鸿蒙

Kuikly 鸿蒙方案

开发语言

ArkTS(需重新学习)

Kotlin(已有代码复用)

代码复用率

0%(独立维护)

Android/iOS 逻辑直接复用

渲染方式

ArkUI

ArkUI Native API(原生渲染)

动态化支持

✅ 支持动态下发,无需发版

多端覆盖

仅鸿蒙

Android + iOS + 鸿蒙 + Web + 小程序


五、常见问题 FAQ

Q:Kuikly 鸿蒙方案稳定吗,有生产验证吗? A:已在腾讯 QQ、QQ 音乐等 20+ 业务线落地,服务超 5 亿日活用户,鸿蒙端持续迭代中。

Q:已有 Android 项目如何快速适配鸿蒙? A:将共享业务逻辑迁移到 KMP 模块,执行一条 Gradle 命令编译为鸿蒙 .so,接入鸿蒙渲染层即可。

Q:Kuikly 支持哪些鸿蒙版本? A:需要 DevEco Studio 5.1.0+,HarmonyOS API Version >= 18。

Q:鸿蒙端布局和 Android 端一致吗? A:Kuikly 统一使用 Flexbox 布局模型,跨端布局行为一致,无需为鸿蒙单独调整样式。


六、参考资料

如果你也在做鸿蒙适配,欢迎交流~

Logo

一站式 AI 云服务平台

更多推荐