原标题:新的图形框架可以带来什么? 揭秘openharmony新图形框架
3月30日,openharmony v3.1 release版本正式发布了。此版本为大家带来了全新的图形框架,实现了ui框架显示、多窗口、流畅动画等基础能力,夯实了openharmony系统能力基座。下面就带大家详细了解新图形框架。
一、完整能力视图 新图形框架的能力在持续构建中,图1展示了新图形框架当前及未来提供的完整能力视图。
图1 openharmony图形完整能力视图
按照分层抽象和轻模块化的架构设计原则,新图形框架分为接口层、架构层和引擎层。各层级说明如下:
● 接口层:提供图形ndk(native development kit,原生开发包)能力,包括opengl es、native drawing等绘制接口能力。
● 框架层:由render service、animation、effect、drawing、显示与内存管理等核心模块组成。框架层各模块说明如下:
● 引擎层:包括2d图形库和3d图形引擎两个模块。2d图形库提供2d图形绘制底层api,支持图形绘制与文本绘制底层能力。3d图形引擎能力尚在构建中。
二、新图形框架的亮点 经过上一节介绍,我们对新图形框架的完整能力有了基本的了解。那么,新图形框架有什么亮点呢?
新图形框架在渲染、动画流畅性、接口方面重点发力:
(1)渲染方面
通常来讲,ui界面显示分为两个部分:一是描述的ui元素在应用内部显示,二是多个应用的界面在屏幕上同时显示。对此,新图形框架从功能上做了相应的设计:控件级渲染和窗口级渲染。“控件级渲染”重点考虑如何跟ui框架前端进行对接,需要将arkui框架的控件描述转换成绘制指令,并提供对应的节点管理以及渲染能力。而“窗口级渲染”重点考虑如何将多个应用合成显示到同一个屏幕上。
(2)动画流畅性方面
我们深挖动画处理流程中的各个环节,对新图形框架进行了新的动画实现设计,提升动画的流畅性体验。
(3)接口方面
新图形框架在接口层提供了更丰富的接口能力。
下面为大家一一详细介绍新图形框架的亮点特性。
1. 控件级渲染
新图形框架实现了基于renderservice(简称rs)的控件级渲染功能,如图2所示。
图2 控件级渲染
控件级渲染功能具有以下特点:
● 支持gpu渲染,提升渲染性能。
● 动画逻辑从主线程中剥离,提供独立的步进驱动机制。
● 将渲染节点属性化,属性与内容分离。
2. 窗口级渲染
新图形框架实现了基于renderservice的窗口级渲染功能,如图3所示。
图3 窗口级渲染
窗口级渲染功能具有以下特点:
● 取代weston合成框架,实现rs新合成框架。
● 支持硬件vsync/软件vsync。
● 支持基于nativewindow接入egl/gles的能力。
● 更灵活的合成方式,支持硬件在线合成/cpu合成/混合合成(gpu合成即将上线)。
● 支持多媒体图层在线overlay。
3. 更流畅的动画体验
动画流畅性是一项很基本、也很关键的特性,直接影响用户体验。为了提升动画的流畅性体验,我们深挖动画处理流程中的各个环节,对新图形框架进行了新的动画实现设计。
如图4所示,传统动画的实现流程如下:
(1) 应用创建动画,设置动画参数。
(2) 每帧回调,修改控件参数,重新测量、布局、绘制。
(3) 内容渲染。
图4 传统动画实现
经过深入分析,我们发现传统动画实现存在以下缺点:
(1)ui与动画一起执行,ui的业务阻塞会影响动画的执行,导致动画卡顿。
(2)每帧回调修改控件属性,会触发测量布局录制,导致耗时增加。
针对以上两点缺陷,我们对新图形框架进行了新的动画实现设计,如图5所示。
图5 新框架的动画实现
(1)动画与ui分离。
动画在渲染线程步进,与ui业务线程分离。
(2)动画仅测量、布局、绘制一次,降低动画负载。
通过计算最终界面属性值,对有改变的控件添加动画,动画过程中不测量、布局、绘制,提升性能。
4. 对外提供的接口
新图形框架提供了丰富的接口:
(1)sdk:支持webgl 1.0、webgl 2.0,满足js开发者的3d开发的需求。
webgl开发指导:
https://docs.openharmony.cn/pages/zh-cn/app/%e5%ba%94%e7%94%a8%e5%bc%80%e5%8f%91%e6%96%87%e6%a1%a3/%e5%bc%80%e5%8f%91/%e5%9f%ba%e7%a1%80%e5%8a%9f%e8%83%bd%e5%bc%80%e5%8f%91/webgl/webgl%e5%bc%80%e5%8f%91%e6%8c%87%e5%af%bc/#:~:text=%23-,%e7%9d%80%e8%89%b2%e5%99%a8%e7%bb%98%e5%88%b6%e5%bd%a9%e8%89%b2%e4%b8%89%e8%a7%92%e5%bd%a2,-%e6%ad%a4%e5%9c%ba%e6%99%af%e4%b8%ba
(2)ndk:支持opengl es3.x,可以通过xcomponent提供的nativewindow创建egl/opengl绘制环境,满足游戏引擎等开发者对3d绘图能力的需求。
图6 opengl es使用示例
新图形框架还处于不断完善过程中,我们将基于新框架提供更多的能力,相信以后会给大家带来更多的惊喜,敬请期待。
中兴发力5G只为翻身赢华为,结果却不如预期
维信诺发布关于获得政府补助的公告
苹果14promax和13promax哪个更值得入手
电小二户外电源80开箱评测 非常适合于户外工作及娱乐使用
图森未来与Aeva合作 部署4D激光雷达
一文详细了解OpenHarmony新图形框架
Spring AOP如何破解java应用
测试测量热度上升 大咖们的干货以及市场趋势解读
松下全新推出具备可靠IP连接的4K/IP CCU:AK-UCU700系列
安谋科技新任领导层召开员工大会 强调未来发展的“四不变”
macOS Catalina发布10.15.2更新 提高了Mac的稳定性及性能
为什么主流的光学防手震技术是「五轴」防震呢?有没有可能达到「六轴光学防手震」呢?
昕诺飞与NYPA合作推进纽约智能路灯,已超过5万套安装
KUKA机器人高级编程中的"CHANNEL"的应用
工业环网交换机在隧道监控系统中的应用
射频合成器的主要作用
“UT310三维传感微量热仪”成果发布
中国ECT行业发展现状分析
聚焦生成式AI,亚马逊云科技re:Invent推出多项新功能
以穿戴式科技改善工作效率有妙招