[行业动态] 【技术分享】团结引擎支持OpenHarmony

ditouzoulu 显示全部楼层 发表于 2023-12-27 22:05:58

在2023年12月15日的Unity技术开放日广州站主会场中,Unity 高级技术经理刘伟贤,向大家介绍:

Unity中国团结引擎创世版已全面支持OpenHarmony操作系统,将为OpenHarmony生态带来更多高品质游戏与实时3D内容。本次分享将详解由团结引擎创世版打包至OpenHarmony的完整工作流,并介绍团结引擎在OpenHarmony的能力和技术部署,帮助中国开发者在团结引擎正式上线后快速开发OpenHarmony应用程序。

本文为相关进展内容分享。

视频链接:[https://www.bilibili.com/video/BV1we411k7gu/?spm_id_from=333.337.search-card.all.click&vd_source=d137f59271b4afadbb842b16dac5ca39]()

image.png

团结引擎简介

image.png

团结引擎是专门为国内开发者开发的引擎,目前已全面适配OpenHarmony的各项能力,未来会更多适配各项国产操作系统以及硬件。

OpenHarmony适配时间轴

image.png

2月开始准备与评估;

3月正式开启适配,一个月完成build system、三方库、引擎基础构建的处理;

7月份完成引擎基础能力适配;

8月份实现倩女幽魂实机演示;

9月份构建引擎全能力,SDK升级到4.0版本;

11月份开放客户邀测;

12月份完成收尾,跑通测试用例;

明年一月份随着团结引擎创世版公开发布。

部分客户适配成果

image.png

整体性能、画面可对标安卓,兼容性能力强。

OpenHarmony适配流程

image.png

拿到团结引擎,打开大项目切换到OpenHarmony平台,即可丢出来包。

【Editor工作流-OpenHarmony】

Editor工作流

image.png

与原有工作流完全一致,兼容老版本项目;

支持导出Deveco Studio原生Ability Project,支持一键出包Hap;

支持连接设备Patch And Run,支持连接设备Build And Run。

OpenHarmony平台专有的**配置**项

image.png

包括player、graphics、quality等相关设置。

Deveco Studio Ability Project

image.png

导出原生工程,包括一些库、TS代码、资源等,便于调试。

OpenHarmony Device Connector

image.png

可以使用hdc指令调试。

【引擎能力-OpenHarmony】

整体架构

image.png

整体架构和安卓完全一样,引擎线程与UI线程分离;

和安卓差异点在于,在ts创建worker.ThreadWorker,引擎Loop通过libuv事件驱动;

支持单/多线程渲染;

支持Job System/C# Job System。

渲染能力

image.png

渲染管线,支持内置渲染管线及URP;

API,支持OpenGLES 3.x、Vulkan(适配完成,测试中);

纹理压缩格式支持与安卓一致,默认使用ETC2,也可以使用ASTC。

文件系统

image.png

文件分为包内文件与包外文件,与安卓一样;

Application底下的路径变量都映射OpenHarmony底下的应用沙箱路径。

音视频能力

image.png

音频,引擎使用OpenSL ES,第三方Wwise插件或原生Fmod插件需自行重新编译。

视频,支持原生ts接口及硬解码:

ts层提供VideoPlayer组件直接使用原生ts接口播放视频;

native层VideoPlayer通过硬解码获得视频画面用于引擎渲染;

第三方插件需自行重新编译。

脚本能力

image.png

对C#与ts交互做了易用性改造,.tslib导出对象给C#使用,.ts/.ets文件用于作为Plugins代码直接带入原有项目;

C#侧有OpenHarmonyJSClass,用于直接调用Static Function;

C#侧有OpenHarmonyJSObject,用于ts导出对象的表示;

C#侧支持导出后直接调用ts的系统api;

C#侧提供OpenHarmonyJSCallback,用于支持异步接口回调;

C#侧提供OpenHarmonyJSArrayBuffer,用于支持ts的ArrayBuffer。

Profiler能力

image.png

内置的Profiler能力和原来一样,真机可用;

接入了OpenHarmony对应的Profiler及抓帧工具SmartPerf,hitrace支持,unity profiler tag直接输出,development下默认生效。

系统相关

image.png

权限获取部分,在C#层封装好了接口,开箱即用;

提供了位置服务、Sensor、陀螺仪、屏幕息屏、Webview支持、OpenUrl等能力。

【团结引擎适配技术细节】

OpenHarmony Staging模型

image.png

应用模型为stage模型,UIAbility相当于安卓的Activity,提供了应用的事件回调。

ArkUI & XComponent

image.png

ArkUI是方舟开发框架为OpenHarmony应用开发的一个UI开发的基础设施,语法类似Flutter;

XComponent用来做EGL、OpenGL ES媒体数据的写入,类似安卓的TextureView和SurfaceView的集合体,提供Surface。

RawFile & 应用沙箱

image.png

文件有沙箱路径,以及真实物理路径。

Napi

image.png

Napi可实现ArkTS/TS/JS与C/C++之间的交互,提供的接口名与三方Node.js一致;

ArkTS/TS/JS侧通过import引入native侧的so文件。

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论1

论坛小助手 官方账号

沙发 发表于 2024-4-2 16:05:05
团结引擎全面适配OpenHarmony系统,包括Ability框架、XComponent、ArkUI、音视频、文件系统、触控系统等。

能兼容老版本项目,支持一键切换平台和构建出包。提供快速迭代速度,直连设备支持Patch and Run/Build and Run,同时能导出Ability Project。完善的Profiler支持包括引擎Profiler适配和平台Profiler,以及专有的C#与ts交互API方便SDK接入。

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部