9 Star 17 Fork 82

Okkkkkk/cocos2dx

forked from OpenHarmony-SIG/cocos2dx
关闭
 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

游戏HarmonyOS适配指导(Cocos 2d-x)

业务简介

游戏HarmonyOS适配是指将游戏应用程序适配HarmonyOS操作系统,以实现在HarmonyOS设备上的运行。HarmonyOS操作系统是华为公司自主研发的操作系统,具有分布式架构、多设备协同、安全可靠等特点,可以为游戏开发者提供更好的开发环境和用户体验。本文主要介绍基于Cocos 2d-x架构的游戏HarmonyOS适配方案。

游戏HarmonyOS适配主要包含如下几部分:

模块

HarmonyOS适配工作

Cocos 2d-x核心C++代码的适配

使用HarmonyOS NDK重新编译。

Cocos 2d-x依赖的部分三方开源库的适配

使用HarmonyOS NDK重新编译。

Cocos 2d-x对接的系统接口的HarmonyOS适配

  • HarmonyOS NDK提供了C++的系统接口,可在C++层直接调用。
  • HarmonyOS NDK只提供了JS的系统接口,使用HarmonyOS的NAPI框架对接。

Lua引擎的适配

使用HarmonyOS NDK重新编译。

JS引擎的适配

Cocos 2d-x预置了Spider Monkey这个JS引擎,而HarmonyOS上要使用ArkJs引擎。Cocos 2d-x的JS游戏其本质是JS游戏业务逻辑代码通过调用Cocos 2dx C++层的渲染、物理、音频、视频等能力接口来运行。在不同的JS引擎下,JS调用C++接口的实现方案不同,需要针对ArkJs做专门的适配。

Cocos 2d-x引擎HarmonyOS适配原理

Cocos 2d-x引擎HarmonyOS适配工作主要集中在下图所示的Cocos2d C++ Engine,C++ APIs,Lua Engine,Lua binding,JS VM(SpiderMonkey),JS Binding、Native Platform(Open Harmony平台)等模块以及三方库适配上。

主要模块和原理参见下表:

模块

HarmonyOS适配工作

Cocos 2d-x核心C++代码的适配

使用HarmonyOS NDK重新编译。

Cocos 2d-x依赖的部分三方开源库的适配

使用HarmonyOS NDK重新编译。

Cocos 2d-x对接的系统接口的HarmonyOS适配

  • HarmonyOS NDK提供了C++的系统接口,可在C++层直接调用。
  • HarmonyOS NDK只提供了JS的系统接口,使用HarmonyOS的NAPI框架对接。

Lua引擎的适配

使用HarmonyOS NDK重新编译。

JS引擎的适配

Cocos 2d-x预置了Spider Monkey这个JS引擎,而HarmonyOS上要使用ArkJs引擎。Cocos 2d-x的JS游戏其本质是JS游戏业务逻辑代码通过调用Cocos 2dx C++层的渲染、物理、音频、视频等能力接口来运行。在不同的JS引擎下,JS调用C++接口的实现方案不同,需要针对ArkJs做专门的适配。

游戏HarmonyOS适配流程

三方SDK HarmonyOS适配

相关服务

参考文档

华为帐号

华为帐号服务开发指南

应用内支付

应用内支付开发指南

游戏服务

游戏服务开发指南

开发准备

为了保证后续工作的顺利开展,您需要提前做好开发准备

隔离三方SDK代码

由于当前部分游戏常用的SDK不支持在HarmonyOS系统上运行,因此HarmonyOS适配第一步是进行SDK隔离(拆分),去掉不支持的SDK,详情请参见隔离三方SDK代码

适配三方库

由于不同操作系统的本质不同,库的二进制是不兼容的,因此需针对不同的操作系统对三方库进行编译。编译方法和步骤请参见适配三方库

替换系统能力

游戏原有的系统方法在HarmonyOS平台可能不支持,需调用HarmonyOS系统接口进行替换适配。调用HarmonyOS系统接口的原理和示例请参见替换系统能力

构建HarmonyOS工程

为了方便快捷的构建游戏的HarmonyOS工程,您可以使用自动化构建工具将Cocos工程转换为HarmonyOS工程,详细步骤请参见构建HarmonyOS工程

集成三方SDK

您的HarmonyOS游戏在华为应用市场上架前,需集成华为游戏服务并实现获取玩家信息、防沉迷等功能,集成三方SDK的详细方法请参见集成三方SDK

开发共享包

若想多个游戏共享公共的资源和代码,您可以开发共享包,详细开发流程请参见开发共享包

调试Hap包

调试HarmonyOS游戏前,需配置自动签名。调试流程请参见调试Hap包

测试与上架

HarmonyOS游戏的测试与上架请参见测试与上架

问题案例集

若遇到问题,请先仔细阅读文档,若仍未解决您的问题,请前往问题案例集进行查看。

附录

前往附录了解更多信息,例如手动将mk转换为Cmake、构建模式说明。

空文件

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Okkkkkkkk/cocos2dx.git
git@gitee.com:Okkkkkkkk/cocos2dx.git
Okkkkkkkk
cocos2dx
cocos2dx
docs

搜索帮助