共计 1786 个字符,预计需要花费 5 分钟才能阅读完成。
实现原理
图 1 ArkTS 卡片实现原理
- 卡片应用方:显示卡片内容的宿主利用,管制卡片在宿主中展现的地位,以后仅零碎利用能够作为卡片应用方。
- 卡片提供方:提供卡片显示内容的利用,管制卡片的显示内容、控件布局以及控件点击事件。
- 卡片治理服务:用于管理系统中所增加卡片的常驻代理服务,提供 formProvider 接口能力,同时提供卡片对象的治理与应用以及卡片周期性刷新等能力。
- 卡片渲染服务:用于治理卡片渲染实例,渲染实例与卡片应用方上的卡片组件一一绑定。卡片渲染服务运行卡片页面代码 widgets.abc 进行渲染,并将渲染后的数据发送至卡片应用方对应的卡片组件。
图 2 ArkTS 卡片渲染服务运行原理
与 JS 卡片相比,ArkTS 卡片反对在卡片中运行逻辑代码,为确保 ArkTS 卡片产生问题后不影响卡片应用方利用的应用,ArkTS 卡片新增了卡片渲染服务用于运行卡片页面代码 widgets.abc,卡片渲染服务由卡片治理服务治理。卡片应用方的每个卡片组件都对应了卡片渲染服务里的一个渲染实例,同一利用提供方的渲染实例运行在同一个虚拟机运行环境中,不同利用提供方的渲染实例运行在不同的虚拟机运行环境中,通过虚拟机运行环境隔离不同利用提供方卡片之间的资源与状态。开发过程中须要留神的是 globalThis 对象的应用,雷同利用提供方的卡片 globalThis 对象是同一个,不同利用提供方的卡片 globalThis 对象是不同的。
ArkTS 卡片的劣势
卡片作为利用的一个快捷入口,ArkTS 卡片相较于 JS 卡片具备如下几点劣势:
- 对立开发范式,晋升开发体验和开发效率。
OpenHarmony 在 2022 年公布了申明式范式的 UI 开发框架,而卡片还连续了 css/hml/json 三段式类 Web 范式的开发方式,进步了开发者的学习老本,提供 ArkTS 卡片能力后,对立了卡片和页面的开发范式,页面的布局能够间接复用到卡片布局中,晋升开发体验和开发效率。
图 3 卡片工程构造比照
- 加强了卡片的能力,使卡片更加万能。
- 新增了动效的能力:ArkTS 卡片凋谢了属性动画和显式动画的能力,使卡片的交互更加敌对。
- 新增了自定义绘制的能力:ArkTS 卡片凋谢了 Canvas 画布组件,卡片能够应用自定义绘制的能力构建更多样的显示和交互成果。
- 容许卡片中运行逻辑代码:凋谢逻辑代码运行后很多业务逻辑能够在卡片外部自闭环,拓宽了卡片的业务实用场景。
ArkTS 卡片的束缚
ArkTS 卡片相较于 JS 卡片具备了更加丰盛的能力,但也减少了应用卡片进行歹意行为的危险。因为 ArkTS 卡片显示在应用方利用中,应用方利用个别为桌面利用,为确保桌面的应用体验以及功耗相干思考,对 ArkTS 卡片的能力做了以下束缚:
- 不反对加载 so。
- 不反对应用 native 语言开发。
- 仅反对申明式范式的局部组件、事件、动效、数据管理、状态治理和 API 能力。
- 卡片的事件处理和应用方的事件处理是独立的,倡议在应用方反对左右滑动的场景下卡片内容不要应用左右滑动性能的组件,以防手势抵触影响交互体验。
除此之外,以后 ArkTS 卡片还存在如下束缚:
- 暂不反对导入模块。
- 暂不反对极速预览。
- 暂不反对断点调试能力。
- 暂不反对 Hot Reload 热重载
作为一名合格一线开发程序员,大家心里必定会有很多疑难!鸿蒙零碎这么弱小~~
为了可能让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我本人近期学习心得以及参考网上材料整顿出的一份最新版的鸿蒙学习晋升材料 ,有须要的小伙伴自行支付, 限时开源,先到先得~~~~
支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙 HarmonyOS 根底技能学习路线图
支付以上残缺高清学习路线图,请点击→《鸿蒙开发学习之 UI》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等)
以上分享的学习路线都适宜哪些人跟着学习?
- 应届生 / 计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。
- 0 根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。
- 技术晋升 / 进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。
总结
如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的『点赞和评论』,才是我发明的能源。关注我,同时能够期待后续文章 ing,不定期分享原创常识。想要获取更多残缺鸿蒙最新 VIP 学习材料,请点击→《鸿蒙零根底入门学习指南》