新闻详情

新闻详情

首页 / 资讯中心 / 详情

Kuikly动态化能力完全指南:AOT+动态产物双模式如何实现热更新下发

发布时间:2026/9/28 20:37:24来源:尧图网络
Kuikly动态化能力完全指南:AOT+动态产物双模式如何实现热更新下发
Kuikly动态化能力完全指南AOT动态产物双模式如何实现热更新下发【免费下载链接】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/KuiklyUIKuikly 动态化能力基于 Kotlin MultiplatformKMP技术是腾讯 TDS 团队开源的跨端框架 Kuikly 的核心特性之一。它通过AOT 内置产物 动态化产物双模式灵活切换让业务既能享受原生级性能又能像前端一样通过服务端下发实现热更新无需用户升级 App 即可修复问题、上线新页面。下面用最少概念讲清楚这套机制的原理、约束与落地姿势。一、为什么需要双模式动态化的痛点传统跨端框架如 RN、Flutter 方案靠虚拟机或中间层抹平平台差异带来了额外性能开销。Kuikly 走的是非虚拟机方案——直接利用 Kotlin 的编译产物实现跨平台与原生二进制一致详见 Kuikly QA 汇总模式产物性能更新方式AOT 内置模式Android 生成 AAR约 0.3MB、iOS 生成 Framework约 1.2MB原生级性能随 App 版本发布动态化模式编译成 JS 等动态产物略低于原生服务端下发热更新这种设计的精髓在于本地始终保留 AOT 版本作为兜底。下发动态产物后如果出现问题可以立即本地降级回已有的 AAR 版本形成稳妥的降级措施——这是动态化能力能敢用、敢上的关键。二、标准模式与进阶模式业务代码怎么拆分Kuikly 支持丰富的开发模式核心是把业务代码拆成可动态化与只能内置两类完整说明见 跨端工程模式。1. 标准模式UI 逻辑全部可动态化这是业务使用最多的模式每个 Page 都用 Kuikly DSL 和 Kotlin 实现包含 UI 及其配套逻辑。绿框部分UI 表示层 UI 控制逻辑既可以内置也可以动态化方式下发。标准模式有三条约束需要牢记使用单线程模型逻辑完全在 Kuikly 线程中执行不直接依赖平台能力需要平台能力时通过Module 方式解耦不能依赖协程或带有xxxMain的 KMP 平台组件。2. 进阶模式底层逻辑也跨端但边界更清晰当跨端提效要求进一步提高时可以把网络请求、数据回包处理、数据存储等底层业务逻辑也放到跨端层。此时页面分为两种类型可动态化类型绿框内置和动态灵活切换纯内置类型红框只能内置属于标准 KMP 模块可直接依赖平台能力、使用多线程和协程。3. 纯逻辑跨端模式如果各端都已有 UI 实现、只需要业务逻辑跨端KuiklyBase 的基础设施也能满足属于 Kuikly 架构 中纯逻辑跨端这一层三、动态化产物的关键约束为什么不能直接用平台能力动态化产物运行在 JS 环境中由于 JS 单线程、无法直接提供平台能力等限制决定了动态化部分不能直接使用多线程和平台能力。这是新手最容易踩的坑✅ 需要调用平台能力时务必通过Kuikly Module 方式解耦调用避免直接依赖✅ 可动态化页面不可依赖内置部分也不可使用多线程协程仅支持 Kuikly 内建协程✅ 实际项目中可动态化和纯内置两种类型通常同时存在动态化页面可保留内置版本运营过程中按需下发动态化版本。四、动态化页面的数据隔离别用全局变量传数据这是动态化热更新下发后最容易被忽略的机制每个动态化页面的数据是互相隔离的页面之间无法使用全局变量共享数据原理与案例见 多页面场景案例与原理解析。正确姿势有两类页面数据 PagerData打开页面时传递初始数据Kuikly 页面事件通知用于页面间交互如状态同步、事件广播。// 打开第二个页面并通过 PagerData 传递初始数据 val param JSONObject().put(digit, ctx.digit) ctx.routerModule.openPage(foo, param)另外注意observable与创建它的PageScope绑定即使放进companion object也只能驱动创建它的 Pager 的 UI 更新不能跨页面使用。五、动态化能力的开放现状与接入路径目前动态化能力的完整配套安全、稳定性、发布体系仍在持续完善中开源时间待定详见 动态化开发指南。有急需的业务方可通过官方渠道联系Shiply获取支持。对想上手的开发者推荐路线先以AOT 内置模式跑通业务Android/iOS 原生开发体验原生工具链调试遵循标准模式的三条约束编写页面天然具备可动态化资格需要热更新时将同一份业务代码编译成动态产物下发本地 AAR/Framework 作为兜底降级。总结双模式切换是 Kuikly 动态化的核心AOT 产物保证性能与兜底动态产物实现热更新下发边界清晰UI 与 UI 控制逻辑可动态化依赖平台能力的逻辑走 Module 解耦数据隔离动态页面之间用 PagerData 和事件通知通信不要用全局变量降级稳妥动态产物异常时可自动回落到本地 AOT 版本线上风险可控。【免费下载链接】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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Cadence Virtuoso入门:一阶RC低通滤波器设计与仿真全流程解析 2026/9/28 21:29:49

Cadence Virtuoso入门:一阶RC低通滤波器设计与仿真全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Python+KNN手写拼音识别课程设计:图像预处理与分类实战 2026/9/28 21:29:28

Python+KNN手写拼音识别课程设计:图像预处理与分类实战

简介:面向高校机器学习课程设计场景,这份基于Python开发的手写拼音识别资源以KNN(K最近邻)算法为分类核心,覆盖从手写图像输入到拼音类别输出的完整流程。包体包含2589个文件,主体为1649个txt与924个jpg&am…

阅读更多 →
ESP32-C3中GPIO8/GPIO9的I2C硬件直连原理与实战应用 2026/9/28 21:29:22

ESP32-C3中GPIO8/GPIO9的I2C硬件直连原理与实战应用

1. 为什么GPIO8和GPIO9在ESP32-C3-Super-Mini上“不按常理出牌”?刚拿到ESP32-C3-Super-Mini开发板时,我第一反应是——这板子太小了,小到连USB口都得靠Type-C转接线才能插稳。但真正让我停下调试进度、反复翻手册的,不是它的尺寸…

阅读更多 →
ESP32P4与ESP32C6异构通信:SDIO互联架构设计与性能优化实战 2026/9/28 21:29:22

ESP32P4与ESP32C6异构通信:SDIO互联架构设计与性能优化实战

1. 异构通信系统架构的整体设计思路1.1 为什么要在两颗芯片之间做SDIO互联做过嵌入式项目的人大概都有这种体会:一颗芯片既要跑高速数据采集,又要处理无线通信协议栈,还要兼顾实时控制,算力和外设资源很快就会捉襟见肘。我最早接触…

阅读更多 →
ESP32-P4与C6异构通信:SDIO高速链路从硬件到协议栈的实战调优 2026/9/28 21:29:22

ESP32-P4与C6异构通信:SDIO高速链路从硬件到协议栈的实战调优

ESP32-P4 这颗芯片刚出来的时候,我盯着它的规格书看了很久——双核 RISC-V、H.264 硬编解码、MIPI 接口、以太网 MAC,唯独缺了无线。乐鑫的解法很直接:让 P4 专注做高性能计算和多媒体处理,无线连接交给 C6 这类带 Wi-Fi 6 和 BLE…

阅读更多 →
离线人脸识别部署:SeetaFace6在无网无GPU工控机上的C#全链路实践 2026/9/28 21:29:15

离线人脸识别部署:SeetaFace6在无网无GPU工控机上的C#全链路实践

简介:这是一份面向C#开发者与人工智能初学者的离线人脸识别实践项目,基于开源SeetaFace6引擎构建,适用于Windows与Linux平台的.NET桌面应用开发场景,解决身份认证、人脸比对等实际业务需求。资源共401个文件,包含130个…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉