OpenHarmony开发者论坛
标题:
【技术分享】团结引擎支持OpenHarmony
[打印本页]
作者:
ditouzoulu
时间:
2023-12-27 22:05
标题:
【技术分享】团结引擎支持OpenHarmony
[md]在2023年12月15日的Unity技术开放日广州站主会场中,Unity 高级技术经理刘伟贤,向大家介绍:
Unity中国团结引擎创世版已全面支持OpenHarmony操作系统,将为OpenHarmony生态带来更多高品质游戏与实时3D内容。本次分享将详解由团结引擎创世版打包至OpenHarmony的完整工作流,并介绍团结引擎在OpenHarmony的能力和技术部署,帮助中国开发者在团结引擎正式上线后快速开发OpenHarmony应用程序。
本文为相关进展内容分享。
**视频链接:[
https://www.bilibili.com/video/B ... fadbb842b16dac5ca39
]()**
![image.png](
https://forums-obs.openharmony.c ... wm31zhufm2224d1.png
"image.png")
**团结引擎简介**
![image.png](
https://forums-obs.openharmony.c ... lnzglgffish4xnv.png
"image.png")
团结引擎是专门为国内开发者开发的引擎,目前已全面适配OpenHarmony的各项能力,未来会更多适配各项国产操作系统以及硬件。
**OpenHarmony适配时间轴**
![image.png](
https://forums-obs.openharmony.c ... yrlrflzfl08y080.png
"image.png")
2月开始准备与评估;
3月正式开启适配,一个月完成build system、三方库、引擎基础构建的处理;
7月份完成引擎基础能力适配;
8月份实现倩女幽魂实机演示;
9月份构建引擎全能力,SDK升级到4.0版本;
11月份开放客户邀测;
12月份完成收尾,跑通测试用例;
明年一月份随着团结引擎创世版公开发布。
**部分客户适配成果**
![image.png](
https://forums-obs.openharmony.c ... bbz1cu51cmjm4m7.png
"image.png")
整体性能、画面可对标安卓,兼容性能力强。
**OpenHarmony适配流程**
![image.png](
https://forums-obs.openharmony.c ... 9yhhhdhhaia1d5d.png
"image.png")
拿到团结引擎,打开大项目切换到OpenHarmony平台,即可丢出来包。
**【Editor工作流-OpenHarmony】**
**Editor工作流**
![image.png](
https://forums-obs.openharmony.c ... omg2ih77s90z9yr.png
"image.png")
与原有工作流完全一致,兼容老版本项目;
支持导出Deveco Studio原生Ability Project,支持一键出包Hap;
支持连接设备Patch And Run,支持连接设备Build And Run。
**OpenHarmony平台专有的****配置****项**
![image.png](
https://forums-obs.openharmony.c ... 4yaeoul1mjcmj2u.png
"image.png")
包括player、graphics、quality等相关设置。
**Deveco Studio Ability Project**
![image.png](
https://forums-obs.openharmony.c ... a87l58rs1llslsl.png
"image.png")
导出原生工程,包括一些库、TS代码、资源等,便于调试。
**OpenHarmony Device Connector**
![image.png](
https://forums-obs.openharmony.c ... inxceomralammlr.png
"image.png")
可以使用hdc指令调试。
**【引擎能力-OpenHarmony】**
**整体架构**
![image.png](
https://forums-obs.openharmony.c ... 922unibuv4vm44h.png
"image.png")
整体架构和安卓完全一样,引擎线程与UI线程分离;
和安卓差异点在于,在ts创建worker.ThreadWorker,引擎Loop通过libuv事件驱动;
支持单/多线程渲染;
支持Job System/C# Job System。
**渲染能力**
![image.png](
https://forums-obs.openharmony.c ... ruxjhiavudtcdyv.png
"image.png")
渲染管线,支持内置渲染管线及URP;
API,支持OpenGLES 3.x、Vulkan(适配完成,测试中);
纹理压缩格式支持与安卓一致,默认使用ETC2,也可以使用ASTC。
**文件系统**
![image.png](
https://forums-obs.openharmony.c ... 938fk7wkc0o0f0w.png
"image.png")
文件分为包内文件与包外文件,与安卓一样;
Application底下的路径变量都映射OpenHarmony底下的应用沙箱路径。
**音视频能力**
![image.png](
https://forums-obs.openharmony.c ... 5lbvvzlb5dfblub.png
"image.png")
音频,引擎使用OpenSL ES,第三方Wwise插件或原生Fmod插件需自行重新编译。
视频,支持原生ts接口及硬解码:
ts层提供VideoPlayer组件直接使用原生ts接口播放视频;
native层VideoPlayer通过硬解码获得视频画面用于引擎渲染;
第三方插件需自行重新编译。
**脚本能力**
![image.png](
https://forums-obs.openharmony.c ... 0fv00jb79af9av7.png
"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](
https://forums-obs.openharmony.c ... 2n5x070ymr0w1uw.png
"image.png")
内置的Profiler能力和原来一样,真机可用;
接入了OpenHarmony对应的Profiler及抓帧工具SmartPerf,hitrace支持,unity profiler tag直接输出,development下默认生效。
**系统相关**
![image.png](
https://forums-obs.openharmony.c ... w8w4jlp60jpbria.png
"image.png")
权限获取部分,在C#层封装好了接口,开箱即用;
提供了位置服务、Sensor、陀螺仪、屏幕息屏、Webview支持、OpenUrl等能力。
**【团结引擎适配技术细节】**
**OpenHarmony Staging模型**
![image.png](
https://forums-obs.openharmony.c ... qik8sqs8449y4oc.png
"image.png")
应用模型为stage模型,UIAbility相当于安卓的Activity,提供了应用的事件回调。
**ArkUI & XComponent**
![image.png](
https://forums-obs.openharmony.c ... g9qjsi6jjs69mgh.png
"image.png")
ArkUI是方舟开发框架为OpenHarmony应用开发的一个UI开发的基础设施,语法类似Flutter;
XComponent用来做EGL、OpenGL ES媒体数据的写入,类似安卓的TextureView和SurfaceView的集合体,提供Surface。
**RawFile & 应用沙箱**
![image.png](
https://forums-obs.openharmony.c ... j92yf7itiilczyi.png
"image.png")
文件有沙箱路径,以及真实物理路径。
**Napi**
![image.png](
https://forums-obs.openharmony.c ... o1zgcczouu1mzca.png
"image.png")
Napi可实现ArkTS/TS/JS与C/C++之间的交互,提供的接口名与三方Node.js一致;
ArkTS/TS/JS侧通过import引入native侧的so文件。
[/md]
作者:
论坛小助手
时间:
2024-4-2 16:05
团结引擎全面适配OpenHarmony系统,包括Ability框架、XComponent、ArkUI、音视频、文件系统、触控系统等。
能兼容老版本项目,支持一键切换平台和构建出包。提供快速迭代速度,直连设备支持Patch and Run/Build and Run,同时能导出Ability Project。完善的Profiler支持包括引擎Profiler适配和平台Profiler,以及专有的C#与ts交互API方便SDK接入。
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5