HarmonyOS/OpenHarmony元服务开发-ArkTS卡片运行机制

这篇具有很好参考价值的文章主要介绍了HarmonyOS/OpenHarmony元服务开发-ArkTS卡片运行机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实现原理
图1 ArkTS卡片实现原理
 

HarmonyOS/OpenHarmony元服务开发-ArkTS卡片运行机制,HarmonyOS/OpenHarmony开发学习分享,华为,HarmonyOS


卡片使用方:显示卡片内容的宿主应用,控制卡片在宿主中展示的位置,当前仅系统应用可以作为卡片使用方。
卡片提供方:提供卡片显示内容的应用,控制卡片的显示内容、控件布局以及控件点击事件。
卡片管理服务:用于管理系统中所添加卡片的常驻代理服务,提供formProvider接口能力,同时提供卡片对象的管理与使用以及卡片周期性刷新等能力。
卡片渲染服务:用于管理卡片渲染实例,渲染实例与卡片使用方上的卡片组件一一绑定。卡片渲染服务运行卡片页面代码widgets.abc进行渲染,并将渲染后的数据发送至卡片使用方对应的卡片组件。
图2 ArkTS卡片渲染服务运行原理
 

HarmonyOS/OpenHarmony元服务开发-ArkTS卡片运行机制,HarmonyOS/OpenHarmony开发学习分享,华为,HarmonyOS


与JS卡片相比,ArkTS卡片支持在卡片中运行逻辑代码,为确保ArkTS卡片发生问题后不影响卡片使用方应用的使用,ArkTS卡片新增了卡片渲染服务用于运行卡片页面代码widgets.abc,卡片渲染服务由卡片管理服务管理。卡片使用方的每个卡片组件都对应了卡片渲染服务里的一个渲染实例,同一应用提供方的渲染实例运行在同一个虚拟机运行环境中,不同应用提供方的渲染实例运行在不同的虚拟机运行环境中,通过虚拟机运行环境隔离不同应用提供方卡片之间的资源与状态。开发过程中需要注意的是globalThis对象的使用,相同应用提供方的卡片globalThis对象是同一个,不同应用提供方的卡片globalThis对象是不同的。
二、ArkTS卡片的优势
卡片作为应用的一个快捷入口,ArkTS卡片相较于JS卡片具备如下几点优势:
统一开发范式,提升开发体验和开发效率。
OpenHarmony在2022年发布了声明式范式的UI开发框架,而卡片还延续了css/hml/json三段式类Web范式的开发方式,提高了开发者的学习成本,提供ArkTS卡片能力后,统一了卡片和页面的开发范式,页面的布局可以直接复用到卡片布局中,提升开发体验和开发效率。

图3 卡片工程结构对比

HarmonyOS/OpenHarmony元服务开发-ArkTS卡片运行机制,HarmonyOS/OpenHarmony开发学习分享,华为,HarmonyOS

增强了卡片的能力,使卡片更加万能。
新增了动效的能力:ArkTS卡片开放了属性动画和显式动画的能力,使卡片的交互更加友好。
新增了自定义绘制的能力:ArkTS卡片开放了Canvas画布组件,卡片可以使用自定义绘制的能力构建更多样的显示和交互效果。
允许卡片中运行逻辑代码:开放逻辑代码运行后很多业务逻辑可以在卡片内部自闭环,拓宽了卡片的业务适用场景。
三、ArkTS卡片的约束
ArkTS卡片相较于JS卡片具备了更加丰富的能力,但也增加了使用卡片进行恶意行为的风险。由于ArkTS卡片显示在使用方应用中,使用方应用一般为桌面应用,为确保桌面的使用体验以及功耗相关考虑,对ArkTS卡片的能力做了以下约束:
不支持加载so。
不支持使用native语言开发。
仅支持声明式范式的部分组件、事件、动效、数据管理、状态管理和API能力。
卡片的事件处理和使用方的事件处理是独立的,建议在使用方支持左右滑动的场景下卡片内容不要使用左右滑动功能的组件,以防手势冲突影响交互体验。
除此之外,当前ArkTS卡片还存在如下约束:
暂不支持导入模块。
暂不支持极速预览。
暂不支持断点调试能力。
暂不支持Hot Reload热重载。文章来源地址https://www.toymoban.com/news/detail-604633.html

到了这里,关于HarmonyOS/OpenHarmony元服务开发-ArkTS卡片运行机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HarmonyOS/OpenHarmony元服务开发-卡片使用动效能力

    ArkTS卡片开放了使用动画效果的能力,支持显式动画、属性动画、组件内转场能力。需要注意的是,ArkTS卡片使用动画效果时具有以下限制:   以下示例代码实现了按钮旋转的动画效果:

    2024年02月15日
    浏览(35)
  • HarmonyOS/OpenHarmony-ArkTS基于API9元服务开发快速入门

    一、创建项目     二、创建卡片     三、添加资源   四、具体代码 五、运行案例     六、案例卡片效果   七、代码地址 (HarmonyOSAPP开发相关组件: 深圳市蛟龙腾飞网络科技有限公司 - Gitee.com)

    2024年02月14日
    浏览(48)
  • HarmonyOS/OpenHarmony(Stage模型)卡片开发AbilityStage组件容器

    AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。 AbilityStage与Module一一对应,即一个Module拥有一个AbilityStage。 DevEco Studio默认工程中未自动生成AbilityStage,如需要使用AbilityStage的能力,可以手动新建一个

    2024年02月11日
    浏览(42)
  • HarmonyOS/OpenHarmony应用开发-ArkTS语言基本语法说明

    图1  示例效果图   本示例中,ArkTS的基本组成如下所示。 图2  ArkTS的基本组成     装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组

    2024年02月07日
    浏览(55)
  • HarmonyOS/OpenHarmony(Stage模型)卡片开发应用上下文Context使用场景二

    3.创建其他应用或其他Module的Context 基类Context提供创建其他应用或其他Module的Context的方法为createModuleContext(moduleName:string),创建其他应用或者其他Module的Context,从而通过该Context获取相应的资源信息(例如获取其他Module的获取应用开发路径信息)。 调用createModuleContext(moduleNa

    2024年02月11日
    浏览(58)
  • HarmonyOS/OpenHarmony(Stage模型)卡片开发应用上下文Context使用场景一

    1.获取应用文件路径 基类Context提供了获取应用文件路径的能力,ApplicationContext、AbilityStageContext、UIAbilityContext和ExtensionContext均继承该能力。应用文件路径属于应用沙箱路径。上述各类Context获取的应用文件路径有所不同。 通过ApplicationContext获取应用级别的应用文件路径,此路

    2024年02月11日
    浏览(56)
  • HarmonyOS/OpenHarmony应用开发-ArkTS语言声明式UI描述

    ArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。 一、创建组件 根据组件构造方法的不同,创建组件包含有参数和无参数两种方式。 说明,创建组件时不需要new运算符。 1.无参数 如果组

    2024年02月08日
    浏览(86)
  • HarmonyOS/OpenHarmony应用开发-Stage模型ArkTS语言FormExtensionAbility

    FormExtensionAbility模块提供了卡片扩展相关接口。 说明 : 模块首批接口从API version 9 开始支持。模块接口仅可在Stage模型下使用。 导入模块 : import FormExtensionAbility from \\\'@ohos.app.form.FormExtensionAbility\\\'; 属性: 名称 类型 可读 可写 说明 context FormExtensionContext 是 否 FormExtensionAbility的上下

    2024年02月01日
    浏览(47)
  • 【直播预告】HarmonyOS极客松赋能直播第三期:一次开发多端部署与ArkTS卡片开发

    直播预约通道: 【直播预告】HarmonyOS极客松赋能直播第三期:一次开发多端部署与ArkTS卡片开发

    2024年02月09日
    浏览(40)
  • HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制LazyForEach数据懒加载

    LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当LazyForEach在滚动容器中使用了,框架会根据滚动容器可视区域按需创建组件,当组件划出可视区域外时,框架会进行组件销毁回收以降低内存占用。 一、接口描述 二、IDataSource类型说明 三、

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包