电子说
方舟开发框架(简称ArkUI)是鸿蒙开发的UI框架,提供如下两种开发范式,我们 只学声明式开发范式
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]我们使用ArkTS写完页面描述后,交给语言运行时进行语法解析,再之后由C++编写的后端引擎将UI转换为渲染指令交给渲染引擎绘制到屏幕上
ArkUI的渲染分为两大情况
① 通过devEco将源码编译成带类型标识的字节码文件,同时携带创建这个结构所需信息的指令流
② 通过跨语言调用生成C++层的Component树。这一步只是把ArkTS描述转变成了使用C++描述
③ 通过Component树生成Element树,Element是Component的实例,用于表示一个具体的组件节点。界面在运行时的树形结构就是通过Element树来维持的,同时自动更新的diff算法也是依赖Element树来减少复杂度的
④ 对于每个可显示的Element都会为其创建对应的RenderNode。RenderNode负责一个节点的显示信息,它形成的Render树维护着整个界面渲染需要用到的信息,包括位置、大小、绘制命令等。后续的布局、绘制都是在Render树上进行的
⑤ 实现真正的渲染并显示绘制结果。HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿
⑥ 点击事件传递到组件,组件的onClick事件方法被触发执行
⑦ 由于onClick事件方法中@State注解过的变量改变了,相应getter/setter函数会被触发
⑧ 状态管理模块定位出关联的UI组件
⑨ 状态管理模块更新相应的Element树的信息
⑩ 更新相应的UI组件的渲染信息
⑪ 界面显示,与⑤类似
上面我们说的布局原理,子视图上报给父视图自身大小的值是指 组件内容区的大小
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !