应用程序的移植方法、装置、设备及介质

文档序号:1936821 发布日期:2021-12-07 浏览:17次 >En<

阅读说明:本技术 应用程序的移植方法、装置、设备及介质 (Application program transplanting method, device, equipment and medium ) 是由 雷丹雄 江炜洲 王召伟 卢强 于 2020-06-03 设计创作,主要内容包括:本申请公开了一种应用程序的移植方法、装置、设备及介质,涉及虚拟环境领域。该方法包括:在第三方开发工具中通过工程改造,将所述第一应用程序从第一项目机制改造为第二项目机制;将改造后的所述第一应用程序中的美术资源从第一资源格式转换为第二资源格式,导出至所述子应用程序的开发工具;将改造后的所述第一应用程序中的代码资源从第一编程语言转换为第二编程语言,导出至所述子应用程序的开发工具;在所述子应用程序的开发工具中对所述美术资源和所述代码资源进行二次开发,得到所述第二应用程序。本申请可以将第三方开发工具开发的第一应用程序,快速移植为子应用程序形式的第二应用程序。(The application discloses a method, a device, equipment and a medium for transplanting an application program, and relates to the field of virtual environments. The method comprises the following steps: transforming the first application program from a first project mechanism to a second project mechanism through engineering in a third party development tool; converting the modified art resources in the first application program from a first resource format to a second resource format, and exporting the converted art resources to a development tool of the sub-application program; converting the modified code resources in the first application program from a first programming language to a second programming language, and exporting the converted code resources to a development tool of the sub-application program; and carrying out secondary development on the art resources and the code resources in a development tool of the sub-application program to obtain the second application program. According to the method and the device, the first application program developed by the third-party development tool can be quickly transplanted to the second application program in the form of the sub-application program.)

应用程序的移植方法、装置、设备及介质

技术领域

本申请实施例涉及虚拟环境领域,特别涉及一种应用程序的移植方法、装置、设备及介质。

背景技术

子应用程序是依赖于母应用程序运行的程序,又称小程序。在电子设备上已经安装母应用程序的情况下,小程序无需在电子设备中由用户手动下载安装,只需要用户在母应用程序中点击图标后即可自动下载安装。小游戏是小程序的一个类目,具有即点即玩的轻便体验。

由于很多游戏都是第三方引擎开发的,无法直接在小游戏平台上运行。当一个第三方引擎开发的游戏希望在小游戏平台上运行时,需要开发人员将该游戏在小游戏平台上重新进行开发。

在小游戏平台上重新开发一次游戏内容相同的游戏,会浪费前期已进行的开发成果,造成不必要的资源浪费。

发明内容

本申请实施例提供了一种应用程序的移植方法、装置、设备及介质,可以将第三方开发工具开发的第一应用程序,移植为子应用程序形式的第二应用程序。所述技术方案如下:

根据本申请的一个方面,提供了一种应用程序的移植方法,用于将第一应用程序移植为第二应用程序,所述第二应用程序是依赖母应用程序运行的子应用程序,所述方法包括:

在第三方开发工具中通过工程改造,将所述第一应用程序从第一项目机制改造为第二项目机制;

将改造后的所述第一应用程序中的美术资源从第一资源格式转换为第二资源格式,导出至所述子应用程序的开发工具;

将改造后的所述第一应用程序中的代码资源从第一编程语言转换为第二编程语言,导出至所述子应用程序的开发工具;

在所述子应用程序的开发工具中对所述美术资源和所述代码资源进行二次开发,得到所述第二应用程序;

其中,所述第一项目机制、所述第一资源格式和所述第一编程语言与所述第三方开发工具对应,所述第二项目机制、第二资源格式和所述第二编程语言与所述子应用程序对应。

根据本申请的另一方面,提供了一种应用程序的移植装置,所述装置用于将第一应用程序移植为第二应用程序,所述第二应用程序是依赖母应用程序运行的子应用程序,所述装置包括:

工程改造模块,用于在第三方开发工具中通过工程改造,将所述第一应用程序从第一项目机制改造为第二项目机制;

美术导出模块,用于将改造后的所述第一应用程序中的美术资源从第一资源格式转换为第二资源格式,导出至所述子应用程序的开发工具;

代码导出模块,用于将改造后的所述第一应用程序中的代码资源从第一编程语言转换为第二编程语言,导出至所述子应用程序的开发工具;

二次开发模块,用于在所述子应用程序的开发工具中对所述美术资源和所述代码资源进行二次开发,得到所述第二应用程序;

其中,所述第一项目机制、所述第一资源格式和所述第一编程语言与所述第三方开发工具对应,所述第二项目机制、第二资源格式和所述第二编程语言与所述子应用程序对应。

在本申请的一个可选设计中,所述工程改造模块,用于在所述第三方开发工具中,通过工程改造将所述第一应用程序的第一项目结构修改为第二项目结构;

其中,所述第一项目结构是所述第三方开发工具适配的项目结构,所述第二项目结构是所述子应用程序的开发工具适配的项目结构。

在本申请的一个可选设计中,所述工程改造模块,用于在所述第三方开发工具中,为所述第一应用程序接入SDK,所述SDK提供有所述第三方开发工具不支持且所述子应用程序的开发工具支持的代码功能。

在本申请的一个可选设计中,所述工程改造模块,用于在所述第三方开发工具中,适配所述第一应用程序中的目标函数接口,所述目标函数接口是所述子应用程序的开发工具中不支持的函数接口。

在本申请的一个可选设计中,所述美术导出模块,用于调用所述资源导出插件搜索改造后的所述第一应用程序中的美术资源,将搜索到的所述美术资源从所述第一资源格式转换为所述第二资源格式,将所述第二资源格式的所述美术资源导出至所述子应用程序的开发工具。

在本申请的一个可选设计中,所述代码导出模块,用于调用所述代码导出插件将改造后的所述第一应用程序中的C#代码转换为JavaScript脚本代码,导出至所述子应用程序的开发工具。

在本申请的一个可选设计中,所述子应用程序的开发工具中安装有JS适配器插件,所述二次开发模块,用于调用所述JS适配器插件将所述C#代码支持的C#接口,桥接至所述JavaScript脚本支持的同类型的JS接口,得到所述第二应用程序。

在本申请的一个可选设计中,所述子应用程序的开发工具中安装有JS适配器插件,所述二次开发模块,用于调用所述性能工具对JavaScript脚本代码进行性能调优,得到所述第二应用程序。

根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的应用程序的移植方法。

根据本申请的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上方面所述的应用程序的移植方法。

根据本申请的另一方面,提供了一种计算机程序产品,该计算机程序产品被配置为使得:在包括处理器和存储器的数据处理系统上执行时使数据处理系统执行上述方面的方法,该计算机程序产品可以被包括在有形的、非瞬时性的计算机可读介质上提供。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过在第三方开发工具中先对第一应用程序进行工程改造,再将改造后的第一应用程序中的美术资源和代码资源导出至子应用程序的开发工具中,在子应用程序的开发工具中对美术资源和代码资源进行二次开发,得到第二应用程序;使得已经在第三方开发工具中完成开发的第一应用程序的开发工作能够得到复用,无需重新开始重复性工作较多的开发流程,不仅能够节省开发人员的工作量,还能够使得大量已有的应用程序快速移植到小程序平台中。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本申请一个示例性实施例提供的计算机系统的结构框图;

图2是本申请一个示例性实施例提供的第一终端的结构示意图;

图3是本申请一个示例性实施例提供的第二终端的结构示意图;

图4是本申请一个示例性实施例提供的应用程序的移植方法的方法流程图;

图5是本申请一个示例性实施例提供的应用程序的移植方法的原理示意图;

图6是本申请另一个示例性实施例提供的应用程序的移植方法的方法流程图;

图7是本申请一个示例性实施例提供的应用程序的移植方法的原理示意图;

图8是本申请一个示例性实施例提供的三种插件以及SDK的示意图;

图9是本申请一个示例性实施例提供的应用程序的移植方法的原理示意图;

图10是本申请另一个示例性实施例提供的应用程序的移植装置的框图;

图11是本申请另一个示例性实施例提供的计算机设备的框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

参考图1,其示出了本申请一个示例性实施例提供的计算机系统100的结构框图。该计算机系统100包括:一个或多个第一终端120、服务器集群140、一个或多个第二终端160。

第一终端120可以是开发人员所使用的电子设备。第一终端120可以是手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

结合图2可知,第一终端120的操作系统131中安装有第三方开发工具122和子应用程序的开发工具124。第三方开发工具142也称第三方开发引擎,第三方开发工具142包括但不限于:Unity引擎、Cocos引擎、Laya引擎、Unreal引擎等。这里的“第三方”是指除子应用程序的平台方、游戏开发者之外的第三方,也即开发引擎方。子应用程序的开发工具124是用于开发子应用程序的开发工具。

第一终端120通过有线网络或无线网络与服务器集群140相连。

第二终端160可以是玩家用户所使用的电子设备。第二终端160可以是手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。第二终端160的操作系统可以是Windows系统、Android系统或IOS系统。

第二终端160中安装和运行有母应用程序和子应用程序。该母应用程序可以是即时通信程序、社交程序、支付程序、电子购物程序、系统管理程序、安全管理程序、杀毒程序、网盘程序、文件管理器程序、桌面优化程序中的任意一种。本文中以第二终端160是即时通讯程序来举例说明。子应用程序是依赖母应用程序运行的程序,还可以称为“小程序”。

服务器集群140可以是多个服务器、虚拟云存储或云计算中心中的任意一种。服务器集群140用于为第一终端120上的预定应用程序、第二终端160上的母应用程序和子应用程序提供后台服务。服务器集群140具有数据存储能力。可选地,服务器集群140包括:母应用程序服务器142、子应用程序服务器144和第三方服务器146。其中:

母应用程序服务器142用于为第二终端160中的母应用程序提供后台服务。示意性的,当母应用程序是即时通讯程序时,母应用程序服务器142提供有关多个第二终端160之间的即时通讯服务。

子应用程序服务器144用于为第一终端120中的子应用程序的开发工具和第二终端160中的子应用程序提供后台服务。

第三方服务器146用于为第一终端120中的第三方开发工具提供后台服务。

本实施例以服务器集群140包括三个服务器来举例说明,上述三个服务器也可以采用云服务器形式进行部署。但服务器集群140包括的服务器个数也可能多于或少于三个,比如服务器集群140由一个服务器上的多个虚拟机实现,或者由几十台服务器实现,本实施例对此不加以限定。

结合图3可知,操作系统161是管理和控制第二终端160中的硬件与软件资源的计算机程序,是直接运行在第二终端160裸机上的最基本的系统软件,应用程序需要在操作系统161的支持下运行。操作系统161可以是视窗(Windows)操作系统或Linux操作系统或者Mac OS(苹果桌面操作系统)等桌面操作系统,也可以是iOS(苹果移动终端操作系统)或者安卓(Android)操作系统等移动操作系统。

母应用程序162是承载子应用程序164的应用程序,为子应用程序164的实现提供环境。母应用程162是原生应用程序。原生应用程序是可直接运行于操作系统161的应用程序。母应用程序162可以是社交应用程序、专门支持子应用程序162的专用应用程序、文件管理应用程序、邮件应用程序或者游戏应用程序等。社交应用程序包括即时通信应用、SNS(Social Network Service,社交网站)应用或者直播应用等。子应用程序164则是可在母应用程序提供的环境中运行的应用程序164。子应用程序164具体可以是社交应用程序、文件管理应用程序、邮件应用程序或者游戏应用程序等。母应用程序162具体可以是微信程序(WeChat),相应的子应用程序164可以称之为小程序。

子应用程序逻辑层单元164b和相应的子应用程序视图层单元164a用于实现子应用程序实例。一个子应用程序164可由一个子应用程序逻辑层单元164b以及至少一个子应用程序视图层单元164a实现。子应用程序视图层单元164a和子应用程序页面可以是一一对应关系。

子应用程序视图层单元164a用于组织子应用程序的视图并渲染。子应用程序逻辑层单元164b用于处理子应用程序164及相应的子应用程序页面的数据处理逻辑。单元具体可以是进程或者线程,子应用程序视图层单元164a如子应用程序视图层线程,子应用程序逻辑层单元164b如子应用程序逻辑层线程。子应用程序逻辑层单元164b可运行于虚拟机中。子应用程序视图层单元164a和子应用程序逻辑层单元164b可通过母应用程序原生单元162a中转通信,母应用程序原生单元162a是母应用程序162与子应用程序164通信的接口,母应用程序原生单元162a可以是母应用程序162自身的线程或进程。各子应用程序页面的属于程序包的页面逻辑代码,可由子应用程序逻辑层单元164b在启动时进行注册,并在需要该页面逻辑代码处理数据时执行注册的页面逻辑代码。

图4示出了本申请一个示例性实施例的应用程序的移植方法的流程图。该方法可以应用于图1所示的第一终端120中。该方法用于将第一应用程序移植为第二应用程序,第二应用程序是依赖母应用程序运行的子应用程序。该方法包括:

步骤202,在第三方开发工具中通过工程改造,将第一应用程序从第一项目机制改造为第二项目机制;

第一项目机制是与第三方开发工具对应的项目机制,第二项目机制是与子应用程序对应的项目机制。可选地,第一应用程序是由第三方开发工具开发的,与虚拟环境有关的应用程序。比如,第一应用程序是教育类应用或军事仿真类应用。可选地,第一应用程序提供有虚拟环境。

结合图5可知,开发人员在第三方开发工具20中对第一应用程序10进行工程改造。将第一应用程序10从第三方开发工具20对应的项目机制改造为子应用程序对应的项目机制。

步骤204,将改造后的第一应用程序中的美术资源从第一资源格式转换为第二资源格式,导出至子应用程序的开发工具;

第一资源格式是与第三方开发工具对应的资源格式。第二资源格式是与子应用程序的开发工具对应的资源格式。

步骤206,将改造后的第一应用程序中的代码资源从第一编程语言转换为第二编程语言,导出至子应用程序的开发工具;

第一编程语言是与第三方开发工具对应的编程语言,比如C#语言。第二编程语言是与子应用程序对应的编程语言,比如JavaScript脚本语言。

步骤208,在子应用程序的开发工具中对美术资源和代码资源进行二次开发,得到第二应用程序。

结合图3可知,开发人员从第三方开发工具20导出“美术资源+代码资源”,将“美术资源+代码资源”导入至子应用程序的开发工具30,

综上所述,本实施例提供的方法,通过在第三方开发工具中先对第一应用程序进行工程改造,再将改造后的第一应用程序中的美术资源和代码资源导出至子应用程序的开发工具中,在子应用程序的开发工具中对美术资源和代码资源进行二次开发,得到第二应用程序;使得已经在第三方开发工具中完成开发的第一应用程序的开发工作能够得到复用,无需重新开始重复性工作较多的开发流程,不仅能够节省开发人员的工作量,还能够使得大量已有的应用程序快速移植到小程序平台中。

在下述实施例中,以第三方开发工具是Unity引擎、子应用程序是小游戏,母应用程序是即时通讯类程序(比如微信)来进行举例说明,但对三者的具体类型不加以限定。

图6是示出了本申请一个示例性实施例的应用程序的移植方法的流程图。该方法可以应用于图1所示的计算机设备100中。该方法用于将第一应用程序移植为第二应用程序,第二应用程序是依赖母应用程序运行的子应用程序。该方法包括:

步骤601,在第三方开发工具中,通过工程改造将第一应用程序的第一项目结构修改为第二项目结构;

开发人员在Unity引擎中通过工程改造将第一应用程序的第一项目结构进行重新配置,修改为小程序对应的第二项目结构。

可选地,项目结构包括项目工程的目录配置。项目结构包括但不限于:根目录、资源文件夹、库文件夹、项目设置文件夹、临时文件夹、配置文件夹、编辑器类存放文件夹、外部库文件存放目录、美术资源存放文件夹、材质球文件夹、模型文件夹、动画文件文件夹、声音文件夹、贴图文件夹、用户界面文件夹、第三方包文件夹、场景文件存放目录、脚本存放目录中的至少一种。

以第三方开发工具是Unity引擎为例,Unity引擎开发的第一应用程序通常为客户端游戏,该客户端游戏所需的美术资源和代码资源均存储在第一终端中。而小游戏通常为在线网络游戏,小游戏所需的美术资源和代码资源均存储在子应用程序服务器上,由第二终端实时加载和运行,两者的项目机制存在较大的不同。因此,需要将Unity中的项目结构进行适应性修改。

可选地,开发人员还在第三方开发工具中安装有三个插件:资源导出插件、代码导出插件和SDK(Software Development Kit,软件开发工具包)。其中,资源导出插件是用于导出美术资源的插件,代码导出插件是用于导出代码资源的插件,SDK用于提供第三方开发工具不支持但子应用程序支持的代码功能。

步骤602,在第三方开发工具中,为第一应用程序接入SDK,SDK提供有第三方开发工具不支持且子应用程序的开发工具支持的代码功能;

由于第三方开发工具与子应用程序的开发工具的不同,存在一些代码功能是第三方开发工具不支持,但是子应用程序是支持的代码功能。对于这些子应用程序特有的代码功能,采用SDK在第三方开发工具中提供。

开发人员使用第三方开发工具中的SDK,在第一应用程序中加入子应用程序所独有支持的代码功能。可选地,该SDK是采用第三方开发工具支持的编程语言编写的,比如C#SDK。

可选地,SDK支持的代码功能包括:资源异步加载功能。资源异步加载功能是在运行过程中,使得小程序能够随着用户的使用动态加载资源的功能。

步骤603,在第三方开发工具中,适配第一应用程序中的目标函数接口,目标函数接口是子应用程序的开发工具中不支持的函数接口;

由于第三方开发工具与子应用程序的开发工具的不同,还存在一些函数接口是第三方开发工具支持,但是子应用程序不支持的函数接口。对于这些第三方开发工具特有的目标函数接口,需要进行适配。

在一种适配方式中,将目标函数接口相关的代码进行删除;在另一种适配方式中,在子应用程序中新开发与目标函数接口匹配的适配函数接口。

需要说明的是,步骤602和步骤603均为可选步骤。

步骤604,调用资源导出插件搜索改造后的第一应用程序中的美术资源,将搜索到的美术资源从第一资源格式转换为第二资源格式,将第二资源格式的美术资源导出至子应用程序的开发工具;

可选地,第一资源格式是Unity引擎中支持的资源格式,第二资源格式是子应用程序的开发工具所支持的资源格式。

资源导出插件用于在改造后的第一应用程序中搜索和遍历美术资源。美术资源包括:场景资源、模型资源、材质资源、序列化属性资源、建筑资源、游戏角色资源、动画资源中的至少一种。场景资源包括:地形资源、湖泊资源、树木资源、植被资源、光源资源、阴影资源、静态景物资源中的至少一种。

在调用资源导出插件将全部的美术资源搜索出来后,对每个美术资源进行格式转换,将格式转换后的全部美术资源,打包为子应用程序平台能够识别的mgepackage格式,导入至子应用程序的开发工具。

步骤605,调用代码导出插件将改造后的第一应用程序中的C#代码转换为JavaScript脚本代码,导出至子应用程序的开发工具;

代码导出插件用于在改造后的第一应用程序中将C#代码导出,并将导出的C#代码转换为JavaScript脚本代码后,导入至子应用程序的开发工具。

可选地,对于改造后的第一应用程序中的C#代码,代码导出插件能够直接导出该C#代码。

可选地,对于改造后的第一应用程序中的无源码插件(也即没有C#代码的外接插件),代码导出插件生成该无源码插件对应的桩代码。桩代码是用来代替无源码插件的Java脚本代码。

步骤606,在子应用程序的开发工具中对美术资源和代码资源进行二次开发,得到第二应用程序;

可选地,子应用程序的开发工具中安装有JS适配器插件。在C#代码移植到JavaScript脚本代码后,无法完全运行起来,还需要一个桥接层。JS适配器就是这个桥接层的作用。JS适配器包括但不限于:与系统能力有关的桥接适配、与性能工具有关的桥接适配、与数学库有关的桥接适配。

本步骤包括:调用JS适配器插件将第三方开发工具中的C#代码支持的C#接口,桥接至JavaScript脚本支持的同类型的JS接口。

可选地,子应用程序的开发工具中安装有性能工具。本步骤还包括:调用性能工具对JavaScript脚本代码进行性能调优。

步骤607,对第二应用程序进行测试。

对第二应用程序进行真机测试和稳定性测试,在测试通过后提交至子应用程序的服务器进行审核和发布。

综上所述,本实施例提供的方法,通过在第三方开发工具中先对第一应用程序进行工程改造,再将改造后的第一应用程序中的美术资源和代码资源导出至子应用程序的开发工具中,在子应用程序的开发工具中对美术资源和代码资源进行二次开发,得到第二应用程序;使得已经在第三方开发工具中完成开发的第一应用程序的开发工作能够得到复用,无需重新开始重复性工作较多的开发流程,不仅能够节省开发人员的工作量,还能够使得大量已有的应用程序快速移植到小程序平台中。

本实施例提供的方法,通过提供SDK来实现第三方开发工具不支持且子应用程序的开发工具支持的代码功能,能够较好地适配两种开发工具的不同,从而在原有基础上引入子应用程序的开发工具支持的代码功能。

本实施例提供的方法,通过适配来实现第三方开发工具不支持且子应用程序的开发工具支持的代码功能,能够较好地适配两种开发工具的不同,从而删减或修改仅由第三方开发工具支持的函数接口。

本实施例提供的方法,还通过在二次开发过程中引入小程序的性能工具,能够保证移植后的小程序的性能。

在一个示意性的例子中,如图7所示,第三方开发工具71是Unit3D,开发人员在Unity3D中集成三个Unity插件:资源导出插件81、代码导出插件82和工具SDK 83,如图8所示。然后执行步骤72,在Unity3D中对第一应用程序进行工程改造。开发人员根据Unity插件指引进行配置和改造。改造过程包括但不限于如下三项中的至少一项:

1、配置Unity的项目结构;

按照小程序的项目结构,重新配置Unity项目结构。

2、接入工具SDK;

该工具SDK用于提供小程序独有的代码功能。

3、适配暂无法转换的接口。

比如,适配无源码插件、第三方SDK、部分系统能力等。

步骤73,导出第一应用程序的美术资源和代码资源;

如果未能全部导出美术资源和代码资源,则需要继续适配。

步骤74,在开发者工具中对美术资源和代码资源进行二次开发,得到第二应用程序;

二次开发包括但不限于:核心玩法调优、相关运营能力的开发、真机预览开发中的至少一种。核心玩法调优包括:采用性能工具对第二应用程序的运行性能进行优化。相关运营能力的开发包括:对运营有关的账号登录、排行榜计算、好友推荐等能力的开发。真机预览开发包括:在真实的电子设备上运行第二应用程序进行测试和调优。

如图8所示,开发者工具中可选包括JS适配器84。JS适配器用于实现对系统能力、渲染能力和数据库的适配。系统能力可以由JS适配器84中的JS应用程序编程接口(API)来提供、渲染能力可以是由JS适配器84中的性能工具来提供、数学库可以由JS适配器84中的JS脚本代码来实现。

步骤75,对第二应用程序进行真机测试;

步骤76,对第二应用程序进行稳定性测试;

步骤77,对第二应用程序进行审核、发布。

在一个示意性的例子中,针对美术资源导出的过程可参考图9。

步骤91,导出美术资源;

场景、模型等美术资源可以无缝导出;二维/三维场景分开导出或合并导出。

步骤92,二次开发;

在对美术资源和代码资源进行二次开发时,使用TypeScript开发逻辑进行开发,TypeScript是JavaScript的一个超集。使用高阶着色器语言(High Level ShaderLanguage,HLSL)编写着色器(Shader)。在小游戏开发工具中提供配套工具,可以预览和编辑场景,以构建得到小游戏代码。

步骤93,工程上传;

将小游戏代码的代码工程上传到小游戏的平台服务器中。比如将资源文件、配置文件上传至平台服务器中的内容分发网络(Content Delivery Network,CDN)中,代码文件以小游戏包的形式上传至小游戏的平台服务器中。

图10示出了本申请一个示例性实施例提供的应用程序的移植装置的框图。该装置可以实现成为计算机设备,也可以应用在计算机设备中。该装置用于将第一应用程序移植为第二应用程序,所述第二应用程序是依赖母应用程序运行的子应用程序。该装置包括:

工程改造模块1020,用于在第三方开发工具中通过工程改造,将所述第一应用程序从第一项目机制改造为第二项目机制;

美术导出模块1040,用于将改造后的所述第一应用程序中的美术资源从第一资源格式转换为第二资源格式,导出至所述子应用程序的开发工具;

代码导出模块1060,用于将改造后的所述第一应用程序中的代码资源从第一编程语言转换为第二编程语言,导出至所述子应用程序的开发工具;

二次开发模块1080,用于在所述子应用程序的开发工具中对所述美术资源和所述代码资源进行二次开发,得到所述第二应用程序;

其中,所述第一项目机制、所述第一资源格式和所述第一编程语言与所述第三方开发工具对应,所述第二项目机制、第二资源格式和所述第二编程语言与所述子应用程序对应。

在本申请的一个可选设计中,所述工程改造模块1020,用于在所述第三方开发工具中,通过工程改造将所述第一应用程序的第一项目结构修改为第二项目结构;

其中,所述第一项目结构是所述第三方开发工具适配的项目结构,所述第二项目结构是所述子应用程序的开发工具适配的项目结构。

在本申请的一个可选设计中,所述工程改造模块1020,用于在所述第三方开发工具中,为所述第一应用程序接入软件开发工具包SDK,所述SDK提供有所述第三方开发工具不支持且所述子应用程序的开发工具支持的代码功能。

在本申请的一个可选设计中,所述工程改造模块1020,用于在所述第三方开发工具中,适配所述第一应用程序中的目标函数接口,所述目标函数接口是所述子应用程序的开发工具中不支持的函数接口。

在本申请的一个可选设计中,所述第三方开发工具中安装有资源导出插件,所述美术导出模块1040,用于调用所述资源导出插件搜索改造后的所述第一应用程序中的美术资源,将搜索到的所述美术资源从所述第一资源格式转换为所述第二资源格式,将所述第二资源格式的所述美术资源导出至所述子应用程序的开发工具。

在本申请的一个可选设计中,所述第三方开发工具中安装有代码导出插件,所述代码导出模块1060,用于调用所述代码导出插件将改造后的所述第一应用程序中的C#代码转换为JavaScript脚本代码,导出至所述子应用程序的开发工具。

在本申请的一个可选设计中,所述子应用程序的开发工具中安装有JS适配器插件,所述二次开发模块1080,用于调用所述JS适配器插件将所述C#代码支持的C#接口,桥接至所述JavaScript脚本支持的同类型的JS接口,得到所述第二应用程序。

在本申请的一个可选设计中,所述子应用程序的开发工具中安装有性能工具,所述二次开发模块1080,用于调用所述性能工具对JavaScript脚本代码进行性能调优,得到所述第二应用程序。

需要说明的是:上述实施例提供的应用程序的移植装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序的移植装置与应用程序的移植方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本申请还提供了一种计算机设备(终端或服务器),该计算机设备包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的应用程序的移植方法。需要说明的是,该计算机设备可以是如下图11所提供的计算机设备。

图11示出了本申请一个示例性实施例提供的计算机设备1100的结构框图。该计算机设备1100可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备1100还可能被称为用户设备、便携式计算机设备、膝上型计算机设备、台式计算机设备等其他名称。

通常,计算机设备1100包括有:处理器1101和存储器1102。

处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1101所执行以实现本申请中方法实施例提供的应用程序的移植方法。

在一些实施例中,计算机设备1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、触摸显示屏1105、摄像头1106、音频电路1107、定位组件1108和电源1109中的至少一种。

外围设备接口1103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它计算机设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置计算机设备1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在计算机设备1100的不同表面或呈折叠设计;在再一些实施例中,显示屏1105可以是柔性显示屏,设置在计算机设备1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。

摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在计算机设备的前面板,后置摄像头设置在计算机设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。

定位组件1108用于定位计算机设备1100的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1108可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源1109用于为计算机设备1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,计算机设备1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。

加速度传感器1111可以检测以计算机设备1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制触摸显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1112可以检测计算机设备1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对计算机设备1100的3D动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1113可以设置在计算机设备1100的侧边框和/或触摸显示屏1105的下层。当压力传感器1113设置在计算机设备1100的侧边框时,可以检测用户对计算机设备1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在触摸显示屏1105的下层时,由处理器1101根据用户对触摸显示屏1105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置计算机设备1100的正面、背面或侧面。当计算机设备1100上设置有物理按键或厂商Logo时,指纹传感器1114可以与物理按键或厂商Logo集成在一起。

光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制触摸显示屏1105的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1105的显示亮度;当环境光强度较低时,调低触摸显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整摄像头组件1106的拍摄参数。

接近传感器1116,也称距离传感器,通常设置在计算机设备1100的前面板。接近传感器1116用于采集用户与计算机设备1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与计算机设备1100的正面之间的距离逐渐变小时,由处理器1101控制触摸显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与计算机设备1100的正面之间的距离逐渐变大时,由处理器1101控制触摸显示屏1105从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图11中示出的结构并不构成对计算机设备1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的应用程序的移植方法。

本申请提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述各个方法实施例提供的应用程序的移植方法。

本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的应用程序的移植方法。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:PAD复用电路、MCU及控制方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!