一:ACE_Engine框架概述:
ACE_Engine框架是OpenHarmony 的UI开发框架,提供开发者在进行应用UI开发时所必需的各种组件,以及定义这些组件的属性,样式,事件及方法。通过这些组件可以很方便的进行OpenHarmony上UI应用的开发。 ACE_Engine提供的组件分为两种类型,即:类Web开发范式类型和声明式开发范式类型。其中类Web开发范式中定义一个页面需要三个文件,html,css和js文件。html文件负责页面布局,css文件负责定义组件的样式,js文件负责业务逻辑实现。而声明式范式仅需要1个ets文件,页面布局和组件的样式以及业务逻辑实现都在此文件中。如图:
二:ACE_Engine框架模块划分对于类Web开发范式组件,根据组件从前端到后端的过程,可以将整个框架划分为JsFrameWork,DomNode, ComPonent, RenderNode四个模块。其作用分别如下:- JsFrameWork:
- EtsLoader
各模块见的调用关系及主要函数如下:
三:组件的属性/样式的传递过程- 组件的属性和样式是保存在前端页面的,通过JsframeWork解析页面,并调用JsEngine的CreateDomNode接口创建Dom节点的同时传递新节点属性和样式。 如果页面中属性样式发生变化,则单独调用SetAttr或SetStyle来更新属性和样式。
- DomNode收到属性和样式之后,会将通用属性保存在Declation类中,将组件特有的属性通过SetSpecialAttr和SetSpectialStyle函数保存在自身。
- DomNode调用对应Component类的Set***函数,将所有属性和样式设置到Component中。
- RenderNode创建后,会调用其Update函数。 该函数内调用对应Component的Get***函数,来接收组件的所有属性和样式。
- 在PipeLine中会遍历每个RenderNode进行布局和绘制,此时,就依据RenderNode中接收的属性和样式,进行布局并绘制。
四:总结ACE_Engine框架整体代码较复杂,涉及的类也比较多。本文简单介绍了一个ACE组件从前端的页面描述,到中间层三棵树的创建和属性传递,以及最终进行UI布局和绘制的整个过程。该过程简单总结一下就是:JS页面 —> Dom树 —> Component树 —> Render树,最后绘制Render树。大家只要理解这个基本过程,在结合代码关注重点流程。相信一定能够对ACE_Engine框架的代码有整体的理解。再此基础上可以进行ACE组件的增强功能开发,包括新增一个ACE组件等。
文章转自:鸿湖万联
参考:新增一个类Web范式组件开发指南:https://gitee.com/yan-shuifeng/arkui_docs/blob/master/wiki/Ace1.0前端新增组件开发指南%EF%BC%9A以新增MyCircle组件为例_ver1.0.md
新增一个声明式范式组件开发指南https://gitee.com/yan-shuifeng/arkui_docs/blob/master/wiki/Ace2.0前端新增组件开发指南%EF%BC%9A以新增MyCircle组件为例_ver1.0.md
更多热点文章阅读- 玩转OpenHarmony PID:教你打造两轮平衡车
- 基于 OpenHarmony 的智联北斗海防系统
- 玩转OpenHarmony智能家居:如何实现树莓派“碰一碰”设备控制
- 带你玩转OpenHarmony AI:基于Seetaface2的人脸识别
-
带你玩转OpenHarmony AI:打造智能语音子系统
提示:本文由电子发烧友社区发布,转载请注明以上来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。
原文标题:OpenHarmony ACE 代码框架总结
文章出处:【微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
电子发烧友
+关注
关注
34文章
593浏览量
34459 -
开源社区
+关注
关注
1文章
97浏览量
831
原文标题:OpenHarmony ACE 代码框架总结
文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
ACE1502系列算术控制器引擎:低功耗应用的理想之选
ACE1502系列算术控制器引擎:低功耗应用的理想之选 作为电子工程师,我们在设计过程中常常为寻找一款高性能、低功耗且尺寸小巧的微控制器而绞尽脑汁。今天我要给大家介绍Fairchild
探索ACE1202:专为低功耗应用打造的算术控制器引擎
探索ACE1202:专为低功耗应用打造的算术控制器引擎 在电子设备日益追求高性能与低功耗的今天,一款优秀的微控制器对于产品的成功至关重要。Fairchild Semiconductor推出
深入了解ACE1101:适用于低功耗应用的算术控制器引擎
深入了解ACE1101:适用于低功耗应用的算术控制器引擎 在当今对功耗要求日益严苛的电子应用领域,低功耗高性能的微控制器显得尤为重要。Fairchild Semiconductor推出
探索ACE1001:低功耗应用的理想算术控制器引擎
探索ACE1001:低功耗应用的理想算术控制器引擎 在电子设计领域,对于高性能、低功耗且小尺寸的微控制器需求日益增长。Fairchild Semiconductor的ACE1001作为ACEx
COSEL ACE系列AC - DC可配置型电源供应器详解
COSEL ACE系列AC - DC可配置型电源供应器详解 在电子设备的设计中,电源供应器是至关重要的一环,它直接关系到设备的性能和稳定性。今天我们就来详细介绍COSEL的ACE系列AC - DC
大晓机器人开源空间智能通用模型ACE-Brain-0
近日,大晓机器人联合上海交通大学、南洋理工大学、香港中文大学、香港大学等研究机构共同推出以空间智能为底层框架、跨不同具身本体的通用基础模型“ACE-Brain-0”,正式面向全行业开源。
知乎开源“智能预渲染框架” 几行代码实现鸿蒙应用页面“秒开”
近日,知乎在Gitee平台开源了其自研的鸿蒙“智能预渲染框架”,并将该框架的Har包上架到OpenHarmony三方库中心仓。该框架在鸿蒙平台首创“智能预渲染”技术,旨在破解应用复杂页
ArkUI-X框架LogInterface使用指南
ArkUI-X框架支持日志拦截能力,Android侧提供原生接口,用于注入LogInterface接口,框架日志及ts日志通过该接口输出,本文的核心内容是介绍如何在Android平台上有效利用
发表于 06-15 23:20
贡献 OpenHarmony 库关键配置
# 贡献 OpenHarmony 库关键配置 #自研框架#ArkUI-X#三方框架#OpenHarmony#HarmonyOS
## 创建第三方库
- 打开 DevEco Stud
发表于 05-28 13:46
OpenHarmony ACE 代码框架总结
评论