技术分享 | 2022-12-08
Qt For OpenHarmony图形化进展突破

在全球超过70个行业,8000家公司,100万的开发者都在使用Qt,让Qt能够运行在OpenHarmony上可以丰富OpenHarmony的开发生态、应用生态,加速OpenHarmony在各行业的推广使用。


华为鸿蒙在多方比较技术能力后,最终选择了合迅科技技术团队一起就Qt for OpenHarmony展开了研究攻关。




一、Qt适配OH的意义


图1:Qt框架


在全球超过70个行业,8000家公司,100万的开发者都在使用Qt,让Qt能够运行在OpenHarmony上可以丰富OpenHarmony的开发生态、应用生态,加速OpenHarmony在各行业的推广使用。

依托Qt跨平台特性及Qt For OpenHamrony的适配实现,基于Qt开发的应用程序无需额外的开发成本即可在OpenHamrony上运行,并能够吸引和转化庞大的Qt开发者加入OpenHamrony的开发者阵营,OpenHarmony为Qt的开发者提供更先进、更可靠的操作系统平台,为更多的开发者提供面向未来的操作系统部署提前做好准备。




二、贡献计划


图2:Qt For OpenHarmony规划模块组成


Qt可划分为设计工具、开发工具、必要模块及附加模块4个部分,Qt For OpenHarmony的主要工作在于对Qt核心模块适配、部分附加模块适配及配套开发工具的实现,基于Qt框架各模块的依赖关系,优先完成Qt Core的适配,并实现Qt For OH的开发,在此基础上完成其它模块的适配及配套开发工具实现。

● OH Dev Tools:提供OH 设备的编译工具链,实现OH应用程序的交叉编译

● OH Simulator:提供OH的设备模拟器,实现应用程序本地调试能力

● OH Deploying Tools:提供OH设备应用程序的打包、远程调试、部署能力,实现应用程序连接及部署OH设备能力

● OH DevSettings:提供OH工具链、模拟器及设备配置能力,实现可视化的OH开发相关配置

● Qt For OH:基于QPA架构调用OpenHarmony底层接口及NAPI接口实现应用窗口管理、窗口渲染及应用生命周期管理

● Qt OH Extension:提供OH特性能力的NAPI C++封装,实现开发者面向OpenHarmony的特性能力开发可能


图3:Qt For OpenHarmony适配支持计划




三、Qt FOR OPENHARMONY适配方案


OpenHarmony标准系统不同于使用X11、Wayland视图协议的Linux类操作系统,采用了自定义的桌面管理标准及绘制接口,这给Qt的适配造成了较大的工作量和技术难度,Qt提供了Qt各模块与操作系统接口的隔离实现QPA架构,可以采用相对独立的Qt QPA插件为Qt应用程序提供包括窗口管理、窗口绘制及生命周期管理。


图4:Qt For OpenHarmony架构




四、全新的桌面管理及绘制引擎


OpenHarmony采用了全新的桌面管理及二维绘制引擎,通过对Qt源码分析,Qt提供了QtWidgets及Qt Quick两种跨平台视图系统,其中Qt Quick依赖OpenGL接口实现,可能由于OpenGL接口兼容性问题需要一定差异化处理,适配难度尚可。Qt Widgets模块则需要进行差异化调用处理实现以支持OpenHarmony的二维绘图引擎,对于OpenHarmony的二维绘图引擎成熟度也存在一定挑战。


图5:Qt For OpenHarmony窗口管理及绘制




五、面向北向开发的应用封装


OpenHarmony应用开发提供了标准的Stage开发模型及FA开发模型,基于Qt的应用程序按照OpenHarmongy定义符合Stage开发模型,遵循OpenHarmony的应用管理要求,需要使用eTS框架对应用程序进行封装,以响应OpenHarmony的应用管理接口。


图6:Qt For OpenHarmony应用程序封装



六、Qt For OpenHarmony适配突破


图7:Qt图形化运行效果图

推荐新闻
返回列表
试用申请
立即申请
试用申请