当前位置: 首页 > wzjs >正文

网站建设功能报价表网站测速

网站建设功能报价表,网站测速,哪里找高清图片素材,北仑网站建设培训在移动应用开发领域,跨平台技术一直是开发者们追求的目标,它能够帮助企业降低开发成本、提高开发效率,同时保证应用在不同平台上的一致性体验。2025 年 6 月 3 日,腾讯视频团队迎来了一个重要的里程碑 —— 正式发布 ovCompose 跨…

在这里插入图片描述

在移动应用开发领域,跨平台技术一直是开发者们追求的目标,它能够帮助企业降低开发成本、提高开发效率,同时保证应用在不同平台上的一致性体验。2025 年 6 月 3 日,腾讯视频团队迎来了一个重要的里程碑 —— 正式发布 ovCompose 跨平台框架,这一框架的最大亮点在于全面支持纯血鸿蒙系统,为开发者们带来了全新的跨端开发体验。

1. 背景:跨平台需求的升级与挑战

随着纯血鸿蒙系统的推出,单纯的 UI 跨端已经难以满足复杂业务的需求,企业迫切需要构建能够同时在 Android、iOS 和鸿蒙平台上运行的全跨端应用,以最大程度地降低开发成本、提升人效。与此同时,对于非小程序类的常规应用来说,开发者们更希望在保持原生优良性能的同时,使用行业通用的 UI 开发语言,以降低学习成本。

Kotlin 与 Compose 作为 Google 官方推荐的 Android 开发语言与 UI 框架,深受开发者们的喜爱。Kotlin Multiplatform(KMP)更是具备高性能、与原生交互灵活等优点,因此腾讯视频团队选择了 Compose Multiplatform 作为全跨端应用的基础。

然而,这套方案也存在一些问题,如不支持纯血鸿蒙、iOS 平台混排能力受限、GC 性能表现一般等。面对这些挑战,腾讯视频团队经过不懈努力,成功解决了这些问题,并决定将解决方案开源,与全行业一同推动 Compose 跨端生态的成熟。

2. 框架的核心特性与优势

2.1 KuiklyBase 高性能:原生方案带来极致体验

KuiklyBase 是腾讯为 Kotlin Multiplatform 开发提供的一整套跨平台基础能力组件。它选择了 Native 方案而非 JS 方案,这是因为 Kotlin-Native(KN)相比 JS 具有更快的执行速度。ovCompose 底层依托 KuiklyBase ,通过一系列的性能优化,KN+Compose 的性能表现令人瞩目。
在这里插入图片描述

在 “小球碰撞” Demo 测试中,以 30FPS 为最低极限,优化后小球数量从 600 提升到 1500(Android 可达 1600 球),绘制性能提升了 150%。这些优化成果不仅提升了应用的流畅度,也为更复杂的业务场景提供了坚实的性能基础。

2.2 鸿蒙三明治架构:完美解决视图混排难题

鸿蒙平台采用了 Skia 的渲染方案,能够 100% 支持 Compose 语法和渲染能力。通过三明治镂空结构,很好地解决了与原生组件的混排问题。原生 UI 可以灵活地展示在 Compose 上层或下层,满足了绝大部分的业务需求。
在这里插入图片描述

更值得一提的是,该架构还支持粘贴按钮等安全组件的混排,使得 Compose 无需申请权限也能使用系统能力,这在提升开发效率的同时,也增强了应用的安全性。

2.3 三端高一致性:逻辑与 UI 的完美统一

在逻辑运行方面,由于鸿蒙平台采用了 Kotlin-Native 方案,解决了 Kotlin-JS 使用 TaskPool 时无法约束跨线程访问的问题,保持了高度的三端一致性。
在这里插入图片描述

在 UI 绘制方面,iOS、鸿蒙平台均采用 Skia 渲染,Android 底层也使用 Skia 渲染,应用层暴露了 Paragraph/Canvas 的绘制接口。基于 Skia 封装后的 Skiko 可以完美还原 Android 绘制效果,实现了三端 UI 的高度一致。这意味着开发者们可以在三个平台上 100% 使用 Compose 的控件与绘制能力,大大降低了开发和维护成本。

2.4 iOS 多模态渲染:解放混排能力

针对 iOS 端大量存量业务模块高度依赖 Compose 与原生 UI 混合编排能力的需求,腾讯视频团队提出了指令映射的自研实现方案。这种方案在画布层进行映射实现,虽然开发难度较高,但可以充分利用 UIKit 丰富的渲染能力,对 Compose 的绘制效果实现较高的还原度。

该方案成功在腾讯视频 iOS 端核心业务场景落地,业务团队甚至可以根据实际应用场景在基于 UIKit 实现的自研指令映射方案或官方的 Skia 渲染方案之间自由切换,并且可以在 Runtime 期共存。在文本渲染方面,通过 Skia 将文本渲染成图片,利用 CALayer 进行展示的方案,保持了高度的一致性。
在这里插入图片描述

2.5 Kotlin Native 内存优化:GC 与堆 Dump 的双重突破

  • GC 优化:在 APP 滑动等高帧率场景,短暂抑制 GC 保障流畅;低影响场景高频 GC 降低 PSS。分析 CMS 算法发现两次 STW 暂停,利用 GC 挂起能力,在 Vsync 时挂起、idle 时恢复,并调整 munmap 流程,将第二次 STW 时间压缩至 1ms 内。

  • KN 堆 Dump 优化:KN 堆转储会暂停线程致界面冻结。鸿蒙端借助 Linux 内核 fork 特性,以 “父子进程异步转储” 实现零延迟;iOS 端重新设计流程,缓存数据异步写入,使 450MB 转储耗时从 2.8 秒降至 410 毫秒,满足线上使用需求。

2.6 KuiklyBase 组件生态:丰富组件助力高效开发

KuiklyBase 提供了丰富的组件生态,涵盖了开发过程中的各个方面:

  • Kotlin Native 堆栈还原组件:提供 Kotlin 异常堆栈还原,方便定位问题。
  • Kotlin Native/ArkTS 互调用组件:支持 ArkTS 与 Kotlin Native 跨语言访问,提供基础类型、闭包、ArrayBuffer 等类型互转,统一的生命周期管理,支持跨线程同步调用和跨 Runtime 的服务发现。
  • 资源管理组件:构建了一套跨平台原生资源管理解决方案,支持 Android、iOS 及 HarmonyOS 三大移动端平台,实现了多平台资源统一管理与编译期强校验。
  • 原子操作组件:提供轻量级的原子类型,支持原子读写、CAS 等操作,实现线程安全的并发编程。
  • 协程组件:简化异步和并发编程,支持协程构建器、调度器、挂起函数等能力。
  • 序列化组件:支持高效、类型安全的对象序列化与反序列化,兼容多种复杂类型。
  • IO、网络等三方工具库:为开发者提供了全面的工具支持,屏蔽了平台差异,提高了开发效率。

3. 实现原理:技术细节的深度探索

3.1 KN 鸿蒙平台适配:创新方案解决架构难题

Kotlin 1.9 使用的 LLVM 11,Kotlin 2.1 升级到 LLVM 16,但鸿蒙平台能够支持的版本在 LLVM 12~15。腾讯视频团队提出了一种创新的 KuiklyBase 方案:在第一步 Kotlin IR 转 LLVM IR 时采用苹果的 LLVM 11,在 LLVM IR 生成可执行文件时使用鸿蒙的 LLVM 12。这种方案既满足了需求,又无需对 Kotlin 本身进行架构调整,解决了常规方案中需要依赖不同 Kotlin 版本的问题。
在这里插入图片描述

3.2 KN 性能优化:多维度提升运行效率

  • 内联优化:对比 Kotlin IR 与 LLVM IR 文件,发现鸿蒙平台 LLVM IR 内联不足,添加 always inline 后性能显著提升。后查明 Kotlin 与 C++ 代码生成 LLVM 函数时 cpu feature 不一致影响内联,经属性配置修复问题。

  • ThreadLocal 优化:分析 Benchmark 中鸿蒙耗时超 iOS 的案例,发现其默认用软件模拟 thread_local 致 Kotlin-Native 内存分配性能差。通过编译时强制使用硬件 thread_local,性能提升 30%。

  • 协程性能优化:Compose Multiplatform 协程调度依赖异常处理模型,运行损耗大,且鸿蒙 libhilog.so 捕获异常加剧延迟。通过缓存或舍弃关键位置异常,解决非法捕获,实现长列表滑动 120Hz 稳定。

  • 调试性能优化:针对 Kotlin Native 调试耗时过长问题,在 KDS 与 LLDB 上采用流程合并、缓存等优化手段,提升通信与处理效率,性能提升数倍至数十倍,接近 Native 水平。

3.3 鸿蒙绘制不同步问题解决:Texture 模式实现完美同步

在鸿蒙系统中,Compose 列表与 ArkUI 元素混排滚动时,由于两种组件属于独立的绘制层,存在不同步的问题,导致 UI 衔接处出现空白区域。腾讯视频团队采用 XComponent 的 Texture 模式,将内容绘制到 FBO 中,由 FBO 参与原有的 ArkUI 的绘制节奏,保证了完全的同步,解决了这一难题。
在这里插入图片描述

3.4 iOS 多模态渲染:PictureRecorder 局部更新架构提升效率

针对 iOS 集中渲染架构的特点,设计了基于 iOS 的 PictureRecorder 局部更新架构。通过对绘制命令进行差量处理,只更新变化的部分,提升了绘制效率。进一步升级后,采用增量 hash 来减少 hash 计算量,并将原先由 OC 对象代表的指令改为简单的 C 结构体,去掉 OC 闭包,大幅提升了渲染效率。以腾讯视频的视频播放页面为例,首次渲染耗时降低 13%,再次渲染耗时降低 56%。

3.5 与 KuiklyUI 的差异:两种方案满足不同需求

腾讯大前端 Oteam 同时进行了两种方案的探索:

  • 原生渲染方案 KuiklyUI:侧重于静态化 + 动态化双运行模式,采用轻量原生渲染保持原生 UI 体验并具备高度一致性,基于原生组件映射的方式支持 Compose API,还支持 H5 和小程序(6 月底推出)。

  • 自渲染方案 ovCompose:专注于全面对齐 Compose Multiplatform 标准 API,采用自渲染方式实现鸿蒙平台的适配,确保三端高度一致性,针对 iOS 上较多的存量业务,提出多模态渲染方案解决低端 iPhone 内存紧张、混排原生视图、手势等问题。

4. 开源说明:携手业界共建生态

此次开源共包含 5 个仓库,涵盖了 ovCompose 和 KuiklyBase:

  • ovCompose-sample:展示 ovCompose 与 KuiklyBase 的功能。
  • ovCompose-multiplatform-core:基于 JetBrains 的 compose-multiplatorm-core 定制,实现鸿蒙端适配及 iOS 多模态渲染能力。
  • KuiklyBase-kotlin:基于 JetBrains 的 kotlin-multiplatform 定制,适配鸿蒙平台并进行了部分优化。
  • KuiklyBase-components:封装常用的跨端组件,涵盖资源管理、跨语言通信、网络请求和图片加载四大模块。
  • KuiklyBase-platform:基于官方组件适配鸿蒙平台,并对部分功能进行性能优化,提升开发效率,现已覆盖 10 个基础组件。

仓库 group 地址:https://github.com/Tencent-TDS

5. 未来计划:持续优化推动技术进步

尽管 KMM 生态已经取得了长足的发展,Kotlin-Native 的执行性能在很多方面超越了 Kotlin-JVM,但 Compose Multiplatform 跨平台技术还没有达到成熟的状态(特别是 GC)。ovCompose & KuiklyBase 将持续优化,重点关注以下方向:

  • GC 在业务场景的表现:进一步优化 GC 性能,减少对应用流畅度的影响。
  • Kotlin-Native 组件化:提升组件化水平,提高开发效率和代码复用率。
  • Kotlin-Native 的开发体验优化:简化开发流程,提升开发者体验。
  • UIKit 渲染模式进一步对齐 Skia 的渲染:确保 iOS 平台上的渲染效果与其他平台更加一致。
http://www.dtcms.com/wzjs/143315.html

相关文章:

  • 网站建设设计开发公司软件推广是什么工作
  • 长城集团建设有限公司网站网站怎么优化关键词
  • 高端网站建设高端网站建设专家市场推广专员
  • 做彩票网站需要什么收钱的郑州做网站推广哪家好
  • 响应式网站建设济南口碑营销是什么意思
  • 专业的上海网站建设公司排名2024小学生时事新闻十条
  • 手机网站 cms舆情视频
  • 网站建设费用评估重庆seo培训
  • 建网站域名后怎样做百度正版下载恢复百度
  • 二手交易网站建设内容策划seo快速优化方法
  • 苏州市智信建设职业培训学校网站2022年7到8月份的十大新闻
  • 商城网站建设付款怎么实现关键词指数
  • 如何用阿里云做私服网站网站案例
  • 一键建设网站自助建站网站哪个好
  • 网站管理平台扩展插件爱站网综合查询
  • 网站可以做无形资产怎样做推广营销
  • 美团网站开发合作商关键词推广哪家好
  • 做网站开通手机验证功能优化工作流程
  • 做恋足的网站能赚钱吗百度推广的优化软件
  • 哪个网站有上门做指甲域名被墙检测
  • 宁波建设网站手机百度识图网页版入口
  • 网站加入百度广告联盟青岛百度网站排名
  • 网站这么做整站优化提升排名
  • 桂林北站到阳朔青岛网站排名提升
  • 做汽车配件的都在那个网站做呀游戏代理300元一天
  • 凯里网站设计哪家好seo会被取代吗
  • 网站如何添加统计代码是什么网络推广平台几大类
  • 自己做视频会员网站seo的研究对象
  • wordpress图片投票插件seo招聘信息
  • 大连建设网信息公开行政审批专栏西安网站seo费用