CN115586893A - 一种跨平台软件开发系统及方法 - Google Patents

一种跨平台软件开发系统及方法 Download PDF

Info

Publication number
CN115586893A
CN115586893A CN202110759293.1A CN202110759293A CN115586893A CN 115586893 A CN115586893 A CN 115586893A CN 202110759293 A CN202110759293 A CN 202110759293A CN 115586893 A CN115586893 A CN 115586893A
Authority
CN
China
Prior art keywords
platform
cross
module
canvas
rendering engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110759293.1A
Other languages
English (en)
Inventor
李雪川
盖旭天
李崇
邢文亮
冯忠旗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN202110759293.1A priority Critical patent/CN115586893A/zh
Publication of CN115586893A publication Critical patent/CN115586893A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种跨平台软件开发系统及方法,所述跨平台软件开发系统包括:跨平台渲染引擎和跨平台发布装置,跨平台渲染引擎用于根据渲染指令提供编译软件的相关资源,跨平台发布装置用于根据所述相关资源编译与发布平台对应的平台代码,其中跨平台渲染引擎包括canvas模块,canvas模块用于生成在屏的canvas对象,canvas模块还用于封装用于获取canvas对象的函数,以及用于绘制文字的函数。本方案在跨平台渲染引擎中设置canvas模块,基于canvas模块可以实现软件在小程序上的跨平台。

Description

一种跨平台软件开发系统及方法
技术领域
本申请涉及跨平台技术领域,尤其涉及一种跨平台软件开发系统及方法。
背景技术
在多个平台上可用的软件产品(即,跨平台产品)比单平台产品提供更大的用户基数。
目前通常采用跨平台技术来实现软件产品的跨平台,通过跨平台技术使得在一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。目前的跨平台技术方案主要涉及两类,一类是应用跨平台方案,用于解决移动端应用的跨平台,比如将应用发布到iOS、Android、Windows等平台。一类是游戏类跨平台方案,比如将游戏发布到小游戏、html5、iOS、Android、Windows等平台。
目前针对游戏类的跨平台通常采用CocosCreator来进行跨平台渲染,CocosCreator是一种开源的跨平台渲染引擎。目前CocosCreator支持发布游戏到小游戏、html5、iOS、Android等平台,但是不支持将游戏发布到小程序,就是使得基于CocosCreator不能实现游戏在小程序、小游戏、iOS、Android、Windows的全平台运行。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种跨平台软件开发系统及方法。
第一方面,本申请提供了一种跨平台软件开发系统,包括:跨平台渲染引擎和跨平台发布装置;
所述跨平台渲染引擎用于根据接收到的渲染指令提供编译软件的相关资源;
所述跨平台发布装置用于根据所述相关资源编译与发布平台对应的平台代码;
所述跨平台渲染引擎包括canvas模块;
所述canvas模块用于生成在屏的canvas对象;
所述canvas模块还用于封装用于获取canvas对象的函数,以及用于绘制文字的函数。
作为一种可能的实现方式,所述跨平台渲染引擎还包括图形模块;
所述图形模块用于在所述canvas对象中绘制文字,并生成与绘制的所述文字对应的像素数据,将所述像素数据与纹理进行绑定。
作为一种可能的实现方式,所述图形模块还用于设置所述canvas对象的大小。
作为一种可能的实现方式,所述跨平台渲染引擎还包括:触摸事件模块;
所述触摸事件模块用于将触摸事件函数与所述canvas对象绑定;
所述触摸事件模块还用于封装触摸事件接收函数。
作为一种可能的实现方式,所述跨平台渲染引擎还包括:事件循环模块;
所述事件循环模块用于封装请求动画帧函数和取消动画帧函数;
所述事件循环模块还用于封装用于修改渲染帧率的渲染帧率设置函数。
作为一种可能的实现方式,所述跨平台渲染引擎还包括:多媒体模块;
所述多媒体模块用于封装用于实现多媒体文件播放的函数,以及封装用于进行多媒体文件下载的函数。
作为一种可能的实现方式,所述跨平台渲染引擎还包括:网络模块;
所述网络模块用于封装网络请求的请求方法。
作为一种可能的实现方式,所述跨平台发布装置,包括:图形化打包配置工具,打包插件和发布插件;
所述图形化打包配置工具用于生成配置面板,以获取软件的配置信息;
所述打包插件用于基于所述配置信息和所述相关资源生成发布平台的平台代码;
所述发布插件用于输出发布平台的平台代码。
第二方面,本申请实施例还提供了一种应用于第一方面所述的跨平台软件开发系统的跨平台软件开发方法,包括:
跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源;
跨平台发布装置根据所述相关资源编译与发布平台对应的平台代码;
所述跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源,包括:
所述跨平台渲染引擎中的canvas模块生成在屏的canvas对象,并封装用于获取canvas对象的函数,以及用于绘制文字的函数。
作为一种可能的实现方式,所述跨平台发布装置根据所述相关资源编译与发布平台对应的平台代码,包括:
所述跨平台发布装置中的图形化打包配置工具生成配置面板,并通过所述配置面板获取软件的配置信息;
所述跨平台发布装置中的打包插件基于所述配置信息和所述相关资源生成发布平台的平台代码;
所述跨平台发布装置中的发布插件输出所述发布平台的平台代码。本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的一种跨平台软件开发系统,跨平台渲染引擎和跨平台发布装置,跨平台渲染引擎用于根据渲染指令提供编译软件的相关资源,跨平台发布装置用于根据所述相关资源编译与发布平台对应的平台代码,其中跨平台渲染引擎包括canvas模块,canvas模块用于生成在屏的canvas对象,canvas模块还用于封装用于获取canvas对象的函数,以及用于绘制文字的函数。本方案在跨平台渲染引擎中设置canvas模块,基于canvas模块可以实现软件在小程序上的跨平台。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种跨平台软件开发系统的框图。
图2是根据另一示例性实施例示出的一种跨平台软件开发系统的框图。
图3是根据一示例性实施例示出的一种跨平台发布装置的框图。
图4是根据一示例性实施例示出的一种跨平台软件开发方法的流程图。
图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
随着小程序、小游戏等快应用需求的崛起,运营精细化,游戏化运营活动受到市场的青睐,一些带有游戏玩法的应用需求急剧增加。目前跨平台技术方案有些是解决iOS、Android、Windows等移动端应用的跨平台,这类跨平台技术方案通常利用终端平台特性实现,有些是解决小游戏、html5、iOS、Android、Windows等游戏类的跨平台。目前还没有跨平台技术方案可以满足小程序、小游戏、html5、iOS、Android、Windows的全平台实现,也缺少一种基于全平台引擎开发的框架。
目前CocosCreator支持生成发布到小游戏、html5、iOS、Android等平台的游戏,不支持生成发布到小程序的游戏,因此,若想使游戏在全平台实现,则需要实现游戏在小程序的跨平台。
为了实现游戏在小程序的跨平台,本申请实施例提供了一种新型的跨平台软件开发系统,该跨平台软件开发系统支持将生成的软件发布到小程序平台。
如图1所示,该跨平台软件开发系统包括跨平台渲染引擎和跨平台渲染装置,其中,跨平台渲染引擎用于根据接收到的渲染指令提供编译软件的相关资源;跨平台发布装置用于根据所述相关资源编译与发布平台对应的平台代码。其中发布平台可以为小程序平台、小游戏平台、H5页面或APP等。
在本发明实施例中,所述跨平台渲染引擎基于CocosCreator开发,其中可以包括:canvas模块,其中canvas是利用脚本绘制图形的HTML元素。
在本发明实施例中,canvas模块主要用于生成canvas对象,对canvas对象大小管理,对canvas对象引用指向管理,绘制文字封装和绘制纹理封装。
作为一个实施例,canvas模块用于生成多个在屏的canvas对象,因为小程序环境中没有获取离屏context(上下文)方法,所以可以通过在屏幕上生成多个在屏的canvas对象来模拟离屏。
作为一个实施例,因为不同小程序平台对于canvas在h5(即html5)上的标准API实现方式不同,开发人员需要针对不同的小程序平台实现不同的绘制方案,工作量较大,所以本申请实施例中,canvas模块还可以用于封装统一的用于获取canvas对象的函数,比如封装wx.createCanvas API,从而消除不同平台之间的API差异。
进一步的,canvas模块对外暴露canvasWidth、canvasHeight,以便可以对canvas对象的大小进行设置。
进一步的,canvas模块还用于封装用于绘制文字的函数(比如wx.createOnCanvas),该函数用于在canvas对象中绘制文字。
本申请实施例提供的一种跨平台软件开发系统,跨平台渲染引擎和跨平台发布装置,跨平台渲染引擎用于根据渲染指令提供编译软件的相关资源,跨平台发布装置用于根据所述相关资源编译与发布平台对应的平台代码,其中跨平台渲染引擎包括canvas模块,canvas模块用于生成在屏的canvas对象,canvas模块还用于封装用于获取canvas对象的函数,以及用于绘制文字的函数。本方案在跨平台渲染引擎中设置canvas模块,基于canvas模块可以实现软件在小程序上的跨平台。
参见图2,为本发明另一实施例提供的另一种跨平台渲染引擎,如图2所示,该跨平台渲染引擎除了canvas模块之外还可以包括:
图形模块,主要用于绘制canvas2d和纹理,其中绘制canvas2d即为在canvas对象中绘制图形、图片、文字等。具体的,可以根据接收到的文字绘制指令,在canvas对象中绘制文字,并在绘制文字后生成与绘制的所述文字对应的像素数据,并将所述像素数据与纹理进行绑定,从而完成纹理的绘制。
作为一个实施例,可以通过预置的getImageData生成像素数据,并将生成的像素数据传递给预置的纹理处理方法,通过gl.texImage2D函数将像素数据与纹理绑定,其中gl.texImage2D是一个OpenGL(Open Graphics Library,译名:开放图形库或者“开放式图形库)函数,在本申请中主要利用gl.texImage2D函数将像素数据拷贝到一个指定的2D纹理中进而实现像素数据与指定的纹理的绑定。
在实际应用中,在通过gl.texImage2D函数将像素数据与纹理绑定之前,可以先对像素数据进行格式转换,例如可以将像素数据转换为Uint8类型,然后再将格式转换后的数据拷贝到纹理中。
具体的,可以采用下述代码将像素数据与纹理绑定:
var buffer=imageData.data.buffer//对像素数据进行格式转换;
var dataView=new Uint8Array(buffer)//转换后的数据的类型为8位无符号整数值的类型化数组;
gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,imageData.width,imageData.height,0,gl.RGBA,gl.UNSIGNED_BYTE,dataView)//指定目标纹理的详细程度编号为0(也即基本图像级别),纹理的内部格式为gl.RGBA,纹理图像的宽度为像素数据的宽度,纹理图像的高度为像素图像的宽度,边框的宽度为0,纹理数据的格式为gl.RGBA,纹理数据的数据类型为gl.UNSIGNED_BYTE,指针指向格式转换后的像素数据dataView。
如此,便实现了将像素数据与纹理绑定。
进一步的,图形模块还用于对canvas对象中的图形、文字、图像等进行渲染,比如对几何体、材质、动画以及变化矩阵的渲染。
进一步的,图形模块用于修改TTFAssembler中_canvas.width、_canvas.height获取、更新逻辑,增加_canvas._width、_canvas._height变量,以设置述canvas对象的大小。
作为一个实施例,canvas模块中生成多个canvas对象,可以防止由于对canvas对象大小的修改,所导致的canvas对象大小错误。
触摸事件模块:用于实现屏幕中触摸事件的管理。具体的,触摸事件模块用于将触摸事件函数(比如bindtouchmove、bindtouchend、bindtouchcancel、bindtouchstart等)与canvas对象的标签绑定。
进一步的,触摸事件模块用于封装统一的触摸事件接收函数(比如wx.onTouchStart、wx.onTouchMove、wx.onTouchEnd、wx.onTouchCancel),以通过调用触摸事件接收函数将接收的触摸事件传递给cocos的触摸事件处理函数(比如touchEventHandlerFactory方法),并将触摸事件的坐标信息(比如x、y值)赋值给触摸事件处理函数中的clientX、clientY。
事件循环模块:用于进行事件循环管理。具体的,事件循环模块可以用于封装统一的请求动画帧函数(比如requestAnimationFrame)和取消动画帧函数(比如cancelAnimationFrame),以接收事件循环。
进一步的,事件循环模块还用于封装统一的用于修改渲染帧率的渲染帧率设置函数(比如setPreferredFramesPerSecond),用于控制帧率。
多媒体模块:用于实现多媒体文件(比如图片、音频、视频等)的显示和下载等。具体的,多媒体模块用于封装统一的用于实现多媒体文件播放的函数,比如用于实现图片显示的wx.Image方法和用于实现音频播放的JRAudio方法。
作为一个实施例,wx.Image的代码可以为:
function(){return__window.canvas.createImage();}//调用函数返回canvas对象中的图像。
进一步的,多媒体模块还用于封装多媒体下载函数,并在多媒体下载函数(比如downloadAudio)中增加document变量,以保持平台一致性。
作为一个实施例,document变量可以采用下述代码获取:
var document=getApp().__window.document//通过getApp()获取全局对象,从中获取window.document对象。
网络模块:用于实现网络请求的发送和接收。具体的,网络模块用于封装统一的Network请求方法,封装的请求方法对外暴露POST、GET、PUT、DELETE等方法,并可以自由设置请求的method(发送方法)、url(统一资源定位符)地址、contentType(内容类型)、timeout(响应等待时长)、header(标头)、body(内容)等。
进一步的,所述网络模块还用于在传递参数之前加载request中间件,也即请求中间件,以方便处理请求数据组装。
进一步的,所述网络模块还用于在回调函数(比如onreadystatechange)的回调中对外提供response中间件,也即响应中间件,以对应答信息做不同协议格式转换。
参见图3,为本申请一实施例提供的一种跨平台发布装置的示意图,如图3所示,本实施例提供的跨平台发布装置可以包括:图形化打包配置工具,打包插件和发布插件。
其中,图形化打包配置工具用于生成配置面板,以获取软件的配置信息;
打包插件用于基于所述配置信息和所述相关资源生成发布平台的平台代码;
发布插件用于输出发布平台的平台代码。
在实际应用中,跨平台发布系统发布代码的流程主要包括:
步骤1:基于图形化打包配置工具,生成配置面板,接收用户在配置面板中配置的发布平台(例如小程序、H5、小游戏、APP等)、开发环境(debug和release)、appid(为代码开发平台的账号信息)等配置信息。
步骤2:通过打包插件根据配置信息,编译与发布平台对应的平台目录和平台代码。具体的,从预置开发模版库中获取与发布平台对应的开发模板,基于开发环境和appid获取用户编写的源代码,然后基于开发模板对获取的源代码进行编译,从而生成与发布平台对应的平台代码。
步骤3:通过发布插件输出平台代码。
跨平台渲染引擎,用于基于跨平台发布系统发布的平台代码进行页面渲染。
在本发明的另一实施例中,还提供了一种应用于上述任一实施例所述的跨平台软件开发系统的跨平台软件开发方法。
参见图4,为本申请的一个实施例提供的一种跨平台软件开发方法的流程示意图。
如图4所示,本实施例提供的跨平台软件开发方法可以包括:
S41.跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源。
S42.跨平台发布装置根据所述相关资源编译与发布平台对应的平台代码。
作为一个实施例,跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源可以包括:
利用canvas模块生成在屏的canvas对象,并封装用于获取canvas对象的函数,以及用于绘制文字的函数。
作为一个实施例,跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源还可以包括:
通过图形模块在所述canvas对象中绘制文字,并生成与绘制的所述文字对应的像素数据,将所述像素数据与纹理进行绑定。
作为一个实施例,跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源还可以包括:
通过图形模块设置所述canvas对象的大小。
作为一个实施例,跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源还可以包括:
通过触摸事件模块将触摸事件函数与所述canvas对象绑定,并封装触摸事件接收函数。
作为一个实施例,跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源还可以包括:
通过事件循环模块封装请求动画帧函数和取消动画帧函数,并封装用于修改渲染帧率的渲染帧率设置函数。
作为一个实施例,跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源还可以包括:
通过多媒体模块封装用于实现多媒体文件播放的函数,以及封装用于进行多媒体文件下载的函数。
作为一个实施例,跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源还可以包括:
通过网络模块封装网络请求的请求方法。
作为一个实施例,所述跨平台发布装置根据所述相关资源编译与发布平台对应的平台代码,包括:
所述跨平台发布装置中的图形化打包配置工具生成配置面板,并通过所述配置面板获取软件的配置信息;
所述跨平台发布装置中的打包插件基于所述配置信息和所述相关资源生成发布平台的平台代码;
所述跨平台发布装置中的发布插件输出所述发布平台的平台代码。
请参阅图5,图5是本申请的另一实施例提供的一种电子设备的结构示意图。
如图5所示,本实施例提供的电子设备包括:至少一个处理器501、存储器502、至少一个网络函数503和其他用户函数504。电子设备500中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统505。
其中,用户函数504可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器502存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统5021和第二应用程序5022。
其中,操作系统5021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。第二应用程序5022,包含各种第二应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在第二应用程序5022中。
在本发明实施例中,通过调用存储器502存储的程序或指令,具体的,可以是第二应用程序5022中存储的程序或指令,处理器501用于执行各方法实施例所提供的方法步骤,例如包括:
跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源;
跨平台发布装置根据所述相关资源编译与发布平台对应的平台代码;
所述跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源,包括:
所述跨平台渲染引擎中的canvas模块生成在屏的canvas对象,并封装用于获取canvas对象的函数,以及用于绘制文字的函数。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文功能的单元来实现本文的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的跨平台软件开发方法。
处理器用于执行存储器中存储的跨平台软件开发方法程序,以实现以下在电子设备侧执行的跨平台软件开发方法的步骤:
跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源;
跨平台发布装置根据所述相关资源编译与发布平台对应的平台代码;
所述跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源,包括:
所述跨平台渲染引擎中的canvas模块生成在屏的canvas对象,并封装用于获取canvas对象的函数,以及用于绘制文字的函数。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种跨平台软件开发系统,其特征在于,包括:跨平台渲染引擎和跨平台发布装置;
所述跨平台渲染引擎用于根据接收到的渲染指令提供编译软件的相关资源;
所述跨平台发布装置用于根据所述相关资源编译与发布平台对应的平台代码;
所述跨平台渲染引擎包括canvas模块;
所述canvas模块用于生成在屏的canvas对象;
所述canvas模块还用于封装用于获取canvas对象的函数,以及用于绘制文字的函数。
2.根据权利要求1所述的跨平台软件开发系统,其特征在于,所述跨平台渲染引擎还包括图形模块;
所述图形模块用于在所述canvas对象中绘制文字,并生成与绘制的所述文字对应的像素数据,将所述像素数据与纹理进行绑定。
3.根据权利要求2所述的跨平台软件开发系统,其特征在于,所述图形模块还用于设置所述canvas对象的大小。
4.根据权利要求1所述的跨平台软件开发系统,其特征在于,所述跨平台渲染引擎还包括:触摸事件模块;
所述触摸事件模块用于将触摸事件函数与所述canvas对象绑定;
所述触摸事件模块还用于封装触摸事件接收函数。
5.根据权利要求1所述的跨平台软件开发系统,其特征在于,所述跨平台渲染引擎还包括:事件循环模块;
所述事件循环模块用于封装请求动画帧函数和取消动画帧函数;
所述事件循环模块还用于封装用于修改渲染帧率的渲染帧率设置函数。
6.根据权利要求1所述的跨平台软件开发系统,其特征在于,所述跨平台渲染引擎还包括:多媒体模块;
所述多媒体模块用于封装用于实现多媒体文件播放的函数,以及封装用于进行多媒体文件下载的函数。
7.根据权利要求1所述的跨平台软件开发系统,其特征在于,所述跨平台渲染引擎还包括:网络模块;
所述网络模块用于封装网络请求的请求方法。
8.根据权利要求1所述的跨平台软件开发系统,其特征在于,所述跨平台发布装置,包括:图形化打包配置工具,打包插件和发布插件;
所述图形化打包配置工具用于生成配置面板,以获取软件的配置信息;
所述打包插件用于基于所述配置信息和所述相关资源生成发布平台的平台代码;
所述发布插件用于输出发布平台的平台代码。
9.一种应用于权利要求1-8任一所述的跨平台软件开发系统的跨平台软件开发方法,其特征在于,包括:
跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源;
跨平台发布装置根据所述相关资源编译与发布平台对应的平台代码;
所述跨平台渲染引擎根据接收到的渲染指令提供编译软件的相关资源,包括:
所述跨平台渲染引擎中的canvas模块生成在屏的canvas对象,并封装用于获取canvas对象的函数,以及用于绘制文字的函数。
10.根据权利要求9所述的跨平台软件开发方法,其特征在于,所述跨平台发布装置根据所述相关资源编译与发布平台对应的平台代码,包括:
所述跨平台发布装置中的图形化打包配置工具生成配置面板,并通过所述配置面板获取软件的配置信息;
所述跨平台发布装置中的打包插件基于所述配置信息和所述相关资源生成发布平台的平台代码;
所述跨平台发布装置中的发布插件输出所述发布平台的平台代码。
CN202110759293.1A 2021-07-05 2021-07-05 一种跨平台软件开发系统及方法 Pending CN115586893A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110759293.1A CN115586893A (zh) 2021-07-05 2021-07-05 一种跨平台软件开发系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110759293.1A CN115586893A (zh) 2021-07-05 2021-07-05 一种跨平台软件开发系统及方法

Publications (1)

Publication Number Publication Date
CN115586893A true CN115586893A (zh) 2023-01-10

Family

ID=84771287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110759293.1A Pending CN115586893A (zh) 2021-07-05 2021-07-05 一种跨平台软件开发系统及方法

Country Status (1)

Country Link
CN (1) CN115586893A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117348948A (zh) * 2023-12-04 2024-01-05 南京掌控网络科技有限公司 一种在自有App上运行的小程序引擎

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117348948A (zh) * 2023-12-04 2024-01-05 南京掌控网络科技有限公司 一种在自有App上运行的小程序引擎
CN117348948B (zh) * 2023-12-04 2024-03-22 南京掌控网络科技有限公司 一种在自有App上运行的小程序引擎

Similar Documents

Publication Publication Date Title
US10026147B1 (en) Graphics scenegraph rendering for web applications using native code modules
US8675000B2 (en) Command buffers for web-based graphics rendering
Sellers et al. Vulkan programming guide: The official guide to learning vulkan
TWI595442B (zh) Method and apparatus for rendering graphics on a mobile device
CN108279966B (zh) 网页截图方法、装置、终端及存储介质
CN107393013B (zh) 虚拟漫游文件生成、显示方法、装置、介质、设备和系统
US10207190B2 (en) Technologies for native game experience in web rendering engine
US8294723B2 (en) Hardware-accelerated graphics for web applications using native code modules
JP2015534145A (ja) 宣言テンプレートを使用してコントロールをスタンプアウトするためのユーザインターフェイスコントロールフレームワーク
CN111966354A (zh) 一种页面显示方法、装置及计算机可读存储介质
KR101416104B1 (ko) 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법
CN110968395B (zh) 一种在模拟器中处理渲染指令的方法及移动终端
CN114025238B (zh) 基于Linux服务器原生安卓应用云端虚拟化方法
WO2017107851A1 (zh) 一种桌面应用组件发布、更新方法及装置
CN112199087A (zh) 一种应用开发环境的配置方法、装置、设备及存储介质
CN115586893A (zh) 一种跨平台软件开发系统及方法
CN111414150A (zh) 游戏引擎渲染方法、装置、电子设备及计算机存储介质
CN111796812B (zh) 图像渲染的方法、装置、电子设备及计算机可读存储介质
CN116503529A (zh) 渲染、3d画面控制方法、电子设备和计算机可读存储介质
CN115474074B (zh) 一种视频背景替换方法、装置、计算设备和存储介质
CN113676677B (zh) 动态图片合成方法、装置、电子设备及可读存储介质
CN111708519B (zh) 一种业务组件的处理方法、装置、设备和存储介质
CN114116227A (zh) 一种无GPU支持的基于Wayland协议的显示方法、装置及设备
Mikkonen et al. Lively for Qt: A platform for mobile web applications
CN116701807B (zh) 一种同时支持app、h5加载3D模型的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination