操作系统与游戏应用交互的方法及装置与流程

文档序号:15684380发布日期:2018-10-16 20:54阅读:295来源:国知局
操作系统与游戏应用交互的方法及装置与流程

本发明涉及信息处理技术领域,尤其涉及操作系统与游戏应用交互的方法及装置。



背景技术:

游戏引擎是游戏应用的基础和核心组件,游戏引擎通常是指已编写好的可编辑电脑游戏系统或者交互式实时图像应用程序的核心组件,游戏应用的运行离不开游戏引擎,游戏引擎能够进行游戏中的物理演算、碰撞运算、图像渲染、输入控制和音视频输出等功能。在现有技术中,安装有游戏应用的操作系统与游戏应用之间无法进行交互。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的操作系统与游戏应用交互的方法及装置。

依据本发明的第一个方面,提供了一种操作系统与游戏应用交互的方法,应用于安装有所述游戏应用的所述操作系统中,所述方法包括:

获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

优选的,在所述获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数之前,所述方法还包括:

将libinject.so文件加载到所述游戏应用的游戏进程中;

其中,所述获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数,包括:

利用所述libinject.so文件解析所述游戏应用的可执行文件,从所述可执行文件中获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数。

优选的,所述获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数,包括:

获取所述游戏引擎中的libmono.so文件;

从所述libmono.so文件中获取所述应用程序函数。

优选的,所述应用程序函数包括:

mono_assembly_get_image;

mono_class_from_name;

mono_method_desc_search_in_class;

mono_runtime_invoke;

mono_image_open_from_data;

mono_assembly_load_from_full;

mono_image_open_from_data_with_name。

优选的,所述执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互,包括:

执行所述自定义游戏脚本,控制所述操作系统获取所述游戏应用中的游戏信息,和/或,控制所述操作系统修改所述游戏应用的游戏逻辑。

优选的,所述自定义游戏脚本的编译语言为c#。

优选的,所述操作系统为安卓系统,所述游戏引擎为unity3d游戏引擎。

依据本发明的第二个方面,提供了一种操作系统与游戏应用交互的装置,应用于安装有所述游戏应用的所述操作系统中,所述装置包括:

获取模块,用于获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用模块,用于调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行模块,用于执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

优选的,所述装置还包括:

加载模块,用于将libinject.so文件加载到所述游戏应用的游戏进程中;

其中,所述获取模块,具体用于:

利用所述libinject.so文件解析所述游戏应用的可执行文件,从所述可执行文件中获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数。

优选的,所述获取模块,包括:

第一获取单元,用于获取所述游戏引擎中的libmono.so文件;

第二获取单元,用于从所述libmono.so文件中获取所述应用程序函数。

优选的,所述应用程序函数包括:

mono_assembly_get_image;

mono_class_from_name;

mono_method_desc_search_in_class;

mono_runtime_invoke;

mono_image_open_from_data;

mono_assembly_load_from_full;

mono_image_open_from_data_with_name。

优选的,所述执行模块,具体用于:

执行所述自定义游戏脚本,控制所述操作系统获取所述游戏应用中的游戏信息,和/或,控制所述操作系统修改所述游戏应用的游戏逻辑。

优选的,所述自定义游戏脚本的编译语言为c#。

优选的,所述操作系统为安卓系统,所述游戏引擎为unity3d游戏引擎。

依据本发明的第三个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

依据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

根据本发明的操作系统与游戏应用交互的方法及装置,通过先获取与游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数,再利用该应用程序函数将自定义的用于控制操作系统与游戏应用之间交互的游戏脚本注入到mono虚拟机中,最后执行该自定义游戏脚本,从而实现了操作系统与游戏应用之间的交互,进而,使得操作系统能够获得游戏应用中的游戏参数,以及修改游戏应用的游戏逻辑。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。在附图中:

图1示出了本发明实施例中操作系统与游戏应用交互的方法的流程图;

图2示出了本发明实施例中操作系统与游戏应用交互的装置的结构图;

图3示出了本发明实施例中计算机设备的结构图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供一种操作系统与游戏应用交互的方法,应用于电子设备中,该电子设备可以手机、平板电脑或计算机等,该电子设备中的操作系统可以为安卓系统,在该电子设备中安装有游戏应用,游戏应用安装于操作系统中,本发明实施例中的操作系统与游戏应用交互的方法的执行主体可以为电子设备中的操作系统。

依据图1所示,本发明实施例中的操作系统与游戏应用交互的方法包括:

步骤101:获取与游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数。

步骤102:调用应用程序函数将自定义游戏脚本注入到mono虚拟机中,其中,自定义游戏脚本用于控制操作系统与游戏应用之间的交互。

步骤103:执行自定义游戏脚本使操作系统与游戏应用进行交互。

在本发明实施例中,操作系统中安装有游戏应用,游戏应用对应有一游戏引擎,该游戏引擎可以为unity3d游戏引擎,unity3d游戏引擎是一种供用户创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,其类似于director、blendergameengine、virtools或torquegamebuilder等利用交互的图型化开发环境为首要方式的软件,其编辑器运行在windows和macosx下,利用该游戏引擎开发的游戏应用可以发布至windows、mac、wii、iphone和android平台。进一步,unity3d游戏引擎中包含mono虚拟机,mono虚拟机包含一个实时编译引擎,该引擎可用于如下处理器:x86、sparc、powerpc、arm、s390、x86-x64、ia64和64位模式的sparc,该虚拟机可以将代码实时编译或者预先编译到原生代码。

在本发明实施例中,通过先获取与游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数,再利用该应用程序函数将自定义的用于控制操作系统与游戏应用之间的交互的游戏脚本注入到mono虚拟机中,最后执行该自定义游戏脚本,从而实现了操作系统与游戏应用之间的交互,进而,使得操作系统能够获得游戏应用中的游戏参数,以及修改游戏应用的游戏逻辑。

具体来讲,在步骤101之前,本发明实施例的操作系统与游戏应用交互的方法还包括步骤:

将libinject.so文件加载到游戏应用的游戏进程中。

在具体实施过程中,可以通过进程注入的方式将libinject.so文件加载到游戏进程中,libinject.so文件用于获取mono虚拟机中的应用程序函数。对于libinject.so文件的注入过程,其本质上就是linux下的library注入,首先在游戏进程中分配内存,用来写shellcode和参数,接着在游戏进程中写入shellcode,shellcode会调用dlopen载入library,最后运行游戏进程中的shellcode。

进一步,在将libinject.so文件加载到游戏应用的游戏进程中之后,在步骤101中,利用libinject.so文件解析游戏应用的可执行文件,从可执行文件中获取与游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数,可执行文件为游戏应用的elf文件,其中,elf文件是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件,elf文件通常包含elf头、程序头表、节和节头表,elf头的位置是固定的,其余各部分的位置、大小等信息均有elf头中的各项值决定。

进一步,在本发明实施例中,获取mono虚拟机中的应用程序函数,具体为:获取游戏引擎中的libmono.so文件中的应用程序函数。进一步,获取的应用程序函数包括:mono_assembly_get_image;mono_class_from_name;mono_method_desc_search_in_class;mono_runtime_invoke;mono_image_open_from_data;mono_assembly_load_from_full;mono_image_open_from_data_with_name。进一步,在获取到上述应用程序函数之后,通过调用上述应用程序函数可以将自定义游戏脚本注入到mono虚拟机中。

具体来讲,在本发明实施例中,自定义游戏脚本为用户编译的用于控制操作系统与游戏应用进行交互的脚本,该自定义游戏脚本的交互逻辑可以由用户决定。在本发明实施例中,自定义游戏脚本为inject-script.dll,是一个动态链接库文件,动态链接库文件中存放有程序的函数实现过程,当程序需要调用函数时需要先载入动态链接库文件,然后取得函数的地址,再进行调用,自定义游戏脚本的编译语言为c#。

进一步,在将自定义游戏脚本注入到mono虚拟机之后,通过调用自定义游戏脚本的入口执行自定义游戏脚本,从而使操作系统和游戏应用进行交互。

在本发明的第一种实施方式中,自定义游戏脚本可以用于控制操作系统获取游戏应用中的游戏信息,从而,通过执行自定义游戏脚本控制操作系统获取游戏应用中的游戏信息,其中,游戏信息包括游戏应用中的场景信息和人物信息,例如,游戏场景的各项参数和游戏玩家的各项参数。在本发明的第二种实施方式中,自定义游戏脚本可以用于控制操作系统修改游戏应用的游戏逻辑,从而,通过执行自定义游戏脚本控制操作系统修改游戏应用的游戏逻辑,其中,游戏逻辑包括游戏应用的游戏规则。另外,自定义游戏脚本还可以用于同时控制操作系统获取游戏应用中的游戏信息以及控制操作系统修改游戏应用的游戏逻辑,从而,通过执行自定义游戏脚本,控制操作系统获取游戏应用中的游戏信息,以及控制操作系统修改游戏应用的游戏逻辑。

下面将结合一具体实施例对操作系统与游戏应用交互的方法进行详细描述,在该具体实施例中,操作系统为安卓系统,游戏应用所采用的引擎为unity3d游戏引擎,自定义游戏脚本为用户编译的用于控制安卓系统获取游戏应用的游戏信息以及控制安卓系统修改游戏应用的游戏逻辑的脚本,也即inject-script.dll,inject-script.dll的编译语言为c#。

首先,将libinject.so文件加载到游戏应用的游戏进程中。接着,利用libinject.so文件解析游戏应用的elf文件,获取unity3d游戏引擎中的libmono.so文件中的应用程序函数,应用程序函数包括mono_assembly_get_image;mono_class_from_name;mono_method_desc_search_in_class;mono_runtime_invoke;mono_image_open_from_data;mono_assembly_load_from_full;mono_image_open_from_data_with_name。然后,调用上述应用程序函数将inject-script.dll注入到mono虚拟机中。最后,通过调用inject-script.dll的入口执行inject-script.dll,控制安卓系统获取游戏应用的游戏信息以及修改游戏应用的游戏逻辑。

基于同一发明构思,本发明实施例还提供一种操作系统与游戏应用交互的装置,如图2所示,应用于安装有所述游戏应用的所述操作系统中,所述装置包括:

获取模块201,用于获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用模块202,用于调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行模块203,用于执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

优选的,所述装置还包括:

加载模块,用于将libinject.so文件加载到所述游戏应用的游戏进程中;

其中,获取模块201,具体用于:

利用所述libinject.so文件解析所述游戏应用的可执行文件,从所述可执行文件中获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数。

优选的,获取模块201,包括:

第一获取单元,用于获取所述游戏引擎中的libmono.so文件。

第二获取单元,用于从所述libmono.so文件中获取所述应用程序函数。

优选的,所述应用程序函数包括:

mono_assembly_get_image;

mono_class_from_name;

mono_method_desc_search_in_class;

mono_runtime_invoke;

mono_image_open_from_data;

mono_assembly_load_from_full;

mono_image_open_from_data_with_name。

优选的,执行模块203,具体用于:

执行所述自定义游戏脚本,控制所述操作系统获取所述游戏应用中的游戏信息,和/或,控制所述操作系统修改所述游戏应用的游戏逻辑。

优选的,所述自定义游戏脚本的编译语言为c#。

优选的,所述操作系统为安卓系统,所述游戏引擎为unity3d游戏引擎。

基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

基于同一发明构思,本发明实施例还提供了一种计算机设备,如图3所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以为包括手机、平板电脑、pda(personaldigitalassistant,个人数字助理)、pos(pointofsales,销售终端)、车载电脑等任意终端设备,以计算机设备为手机为例:

图3示出的是与本发明实施例提供的计算机设备相关的部分结构的框图。参考图3,该计算机设备包括:存储器301和处理器302。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图3对计算机设备的各个构成部件进行具体的介绍:

存储器301可用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据(比如音频数据、电话本等)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器302是计算机设备的控制中心,通过运行或执行存储在存储器301内的软件程序和/或模块,以及调用存储在存储器301内的数据,执行各种功能和处理数据。可选的,处理器302可包括一个或多个处理单元;优选的,处理器302可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。

在本发明实施例中,该计算机设备所包括的处理器302可以具有以下功能:

获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

总之,根据本发明的操作系统与游戏应用交互的方法及装置,通过先获取与游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数,再利用该应用程序函数将自定义的用于控制操作系统与游戏应用之间的交互的游戏脚本注入到mono虚拟机中,最后执行该自定义游戏脚本,从而实现了操作系统与游戏应用之间的交互,进而,使得操作系统能够获得游戏应用中的游戏参数,以及修改游戏应用的游戏逻辑。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

a1、一种操作系统与游戏应用交互的方法,应用于安装有所述游戏应用的所述操作系统中,所述方法包括:

获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

a2、根据a1所述的操作系统与游戏应用交互的方法,在所述获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数之前,所述方法还包括:

将libinject.so文件加载到所述游戏应用的游戏进程中;

其中,所述获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数,包括:

利用所述libinject.so文件解析所述游戏应用的可执行文件,从所述可执行文件中获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数。

a3、根据a1所述的操作系统与游戏应用交互的方法,所述获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数,包括:

获取所述游戏引擎中的libmono.so文件;

从所述libmono.so文件中获取所述应用程序函数。

a4、根据a3所述的操作系统与游戏应用交互的方法,所述应用程序函数包括:

mono_assembly_get_image;

mono_class_from_name;

mono_method_desc_search_in_class;

mono_runtime_invoke;

mono_image_open_from_data;

mono_assembly_load_from_full;

mono_image_open_from_data_with_name。

a5、根据a1所述的操作系统与游戏应用交互的方法,所述执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互,包括:

执行所述自定义游戏脚本,控制所述操作系统获取所述游戏应用中的游戏信息,和/或,控制所述操作系统修改所述游戏应用的游戏逻辑。

a6、根据a1所述的操作系统与游戏应用交互的方法,所述自定义游戏脚本的编译语言为c#。

a7、根据a1所述的操作系统与游戏应用交互的方法,所述操作系统为安卓系统,所述游戏引擎为unity3d游戏引擎。

b8、一种操作系统与游戏应用交互的装置,应用于安装有所述游戏应用的所述操作系统中,所述装置包括:

获取模块,用于获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用模块,用于调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行模块,用于执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

b9、根据b8所述的操作系统与游戏应用交互的装置,所述装置还包括:

加载模块,用于将libinject.so文件加载到所述游戏应用的游戏进程中;

其中,所述获取模块,具体用于:

利用所述libinject.so文件解析所述游戏应用的可执行文件,从所述可执行文件中获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数。

b10、根据b8所述的操作系统与游戏应用交互的装置,所述获取模块,包括:

第一获取单元,用于获取所述游戏引擎中的libmono.so文件;

第二获取单元,用于从所述libmono.so文件中获取所述应用程序函数。b11、根据b10所述的操作系统与游戏应用交互的装置,所述应用程序函数包括:

mono_assembly_get_image;

mono_class_from_name;

mono_method_desc_search_in_class;

mono_runtime_invoke;

mono_image_open_from_data;

mono_assembly_load_from_full;

mono_image_open_from_data_with_name。

b12、根据b8所述的操作系统与游戏应用交互的装置,所述执行模块,具体用于:

执行所述自定义游戏脚本,控制所述操作系统获取所述游戏应用中的游戏信息,和/或,控制所述操作系统修改所述游戏应用的游戏逻辑。

b13、根据b8所述的操作系统与游戏应用交互的装置,所述自定义游戏脚本的编译语言为c#。

b14、根据b8所述的操作系统与游戏应用交互的装置,所述操作系统为安卓系统,所述游戏引擎为unity3d游戏引擎。

c15、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

d16、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

获取与所述游戏应用对应的游戏引擎中的mono虚拟机中的应用程序函数;

调用所述应用程序函数将自定义游戏脚本注入到所述mono虚拟机中,其中,所述自定义游戏脚本用于控制所述操作系统与所述游戏应用之间的交互;

执行所述自定义游戏脚本使所述操作系统与所述游戏应用进行交互。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1