基于Android系统的云游戏运行方法及服务器与流程

文档序号:18412562发布日期:2019-08-13 18:48阅读:492来源:国知局
基于Android系统的云游戏运行方法及服务器与流程

本发明实施例涉及云游戏技术领域,特别涉及一种基于android系统的云游戏运行方法及服务器。



背景技术:

随着智能设备的兴起普及,越来越多人习惯用便携式智能设备进行娱乐游戏。由于不同智能设备的硬件配置参差不齐、硬件能力表现不一,以及系统碎片化、差异化等因素,使得智能设备对游戏的兼容性差强人意。云游戏这个新兴技术领域由此诞生。

传统的云游戏厂商主要是以windows/linux系统为云游戏服务端,而随着android系统的流行,以android系统为云游戏服务端的需求也渐渐浮出水面。现有的厂商通常是在android开源模拟器的基础上,投入大力的人力、物力,进行二次开发,从而定制出自己的云游戏android服务器。这种方式不仅技术门槛高、投入成本大,而且由于定制出的云游戏android服务器不能随android系统的升级而自动更新,也不能及时满足用户的需求。



技术实现要素:

本发明实施方式的目的在于提供一种基于android系统的云游戏运行方法及服务器,以降低云游戏服务器的技术门槛、减少成本,且可随android操作系统的升级而自动更新。

为解决上述技术问题,本发明的实施方式提供了一种基于android系统的云游戏运行方法,所述云游戏服务器设有android开源模拟器;所述云游戏服务器接收游戏终端连接请求;解析所述连接请求,获取所述连接请求中的用户信息;根据所述用户信息,启动所述android开源模拟器并加载所述游戏终端对应的用户配置;启动用户交互后台管理模块,监听并接收所述游戏终端发送的用户交互事件,解析所述用户交互事件并注入到所述android开源模拟器里,响应并启动所述用户交互事件指向的云游戏应用程序;启动rtsp服务模块,不断采集所述android开源模拟器运行的云游戏的图片帧数据及音频数据,生成rtsp(realtimestreamingprotocol)视频流,响应于所述游戏终端。

本发明的实施方式还提供了一种云游戏服务器,包括android开源模拟器。

本发明实施方式相对于现有技术而言,将android开源模拟器设置在云游戏服务器上,并通过网络请求重定向建立终端与android开源模拟器的连接,同时,设置的用户交互后台管理模块监听收集用户的交互事件解析处理并注入到android开源模拟器,设置的rtsp服务模块采集编码生成的视频流响应于终端用户。,这就使得基于android的云游戏可以运行于android开源模拟器,无需进行android运行环境的针对性开发,,降低了技术门槛、减少了开发成本。同时,android开源模拟器在各个升级的android版本上都有完整的配套版本,兼容性最好,避免了云游戏服务器无法及时更新android新版本的问题。

另外,所述android开源模拟器基于androidx86模拟器源码生成镜像获得。提供一种获取android开源模拟器的方法。

另外,利用所述镜像在宿主机上生成android开源模拟器;并且对所述云游戏服务器进行端口重定向配置,使得所述android开源模拟器与所述游戏终端建立连接。提供一种android开源模拟器与游戏终端的连接方法。

另外,对所述云游戏服务器进行端口重定向配置的具体步骤包括:将所述终端连接的所述宿主机的远程ip端口,映射为所述宿主机的本地ip端口,并通过android开源工具adb(androiddebugbridge)将所述本地ip端口映射到所述android开源模拟器的远程ip端口。

另外,所述android开源模拟器适用于运行arm(advancedriscmachine)架构的应用程序及x86架构应用程序。使得与android开源模拟器连接的游戏终端既可是手机、平板电脑等手持智能终端,也可是笔记本电脑、台式机等终端,有助于提升本实施方式的应用范围。

另外,将cpu架构转换部件移植入android开源模拟器。

另外,所述android开源模拟器支持kvm虚拟技术;对应的,所述云游戏服务器的宿主机也支持kvm虚拟技术。这有助于提升android开源模拟器的运行性能,使其在性能上更接近模拟器宿主的服务器设备的性能。

另外,所述游戏画面为bitmap图像数据;在所述的android开源模拟器里通过rtsp服务模块抓取opengl渲染的数据或framebuff数据,得到所述bitmap图像数据。

另外,所述云游戏服务器接收游戏终端连接请求,解析所述连接请求,获取所述连接请求中的用户信息;根据所述用户信息,在所述android开源模拟器中加载所述游戏终端对应的用户配置,具体包括:根据所述用户信息,查找预存于系统中的用户信息表,并在查找到时,启动android开源模拟器并加载用户数据,以建立所述android开源模拟器与所述游戏终端的连接;在未查找到时,启动android开源模拟器并加载出厂配置数据,将所述连接请求转发至加载了出厂配置的android开源模拟器,以建立所述android开源模拟器与所述终端的连接,并将新用户信息添加至所述用户信息表。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明第一实施方式的android系统的云游戏运行方法的流程图;

图2是根据本发明第三实施方式的基于android系统的云游戏服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种基于android系统的云游戏运行方法,该云游戏运行方法应用于云游戏服务器。

本实施方式中,云游戏服务器中设有android开源模拟器,该android开源模拟器可基于谷歌(google)官方的androidx86模拟器源码生成镜像获得。具体地,本实施方式可利用镜像在宿主机(可以是linux服务器)生成android开源模拟器。生成的android开源模拟器包括虚拟设备层上生成的虚拟机以及android操作系统。其中,androidx86虚拟机镜像的定制工作包括将cpu架构转换部件(houdini功能部件)、sdktool、kernel(以支持smp)等移植入android开源模拟器中。值得一提的是,houdini功能的移植,使得本实施方式中的android开源模拟器适用于运行arm架构的应用程序及x86架构应用程序,从而使得与android开源模拟器连接的终端既可是手机、平板电脑等手持智能终端,也可是笔记本电脑、台式机等终端,有助于提升本实施方式的android开源模拟器的应用范围。

优选地,可使本实施方式的android开源模拟器支持kvm虚拟技术;对应的,云游戏服务器的宿主机也需要支持开启kvm模式,如intel的vt技术,或者amd的v技术。这有助于提升android开源模拟器的运行性能,使其在性能上更接近模拟器宿主的服务器设备的性能。

本实施方式的具体流程如图1所示:

步骤101:接收游戏终端发送的连接请求。

步骤102:解析该连接请求,获取连接请求中的用户信息。

步骤103:根据用户信息,启动android开源模拟器,建立android开源模拟器与游戏终端的连接,并加载游戏终端对应的用户配置。

本实施方式中,可根据用户信息,查找预存于系统中的用户信息表。若在用户信息表中查找到匹配的用户信息,则说明该用户不是首次登陆当前的云游戏应用。此时,可启动android开源模拟器,建立android开源模拟器与该游戏终端的连接,并直接在android开源模拟器上加载对应的用户配置。

若未在用户信息表中查找到匹配的用户信息,则说明该用户是首次登陆当前的云游戏应用。此时,可启动android开源模拟器并加载出厂配置,将该连接请求转发至加载了出厂配置的android开源模拟器,从而建立android开源模拟器(加载了出厂配置的android开源模拟器)与游戏终端的连接,之后可将该用户信息添加至用户信息表中。

步骤104:启动用户交互后台管理模块,监听并接收游戏终端发送的用户交互事件,解析用户交互事件并注入到android开源模拟器里,响应并启动用户交互事件指向的云游戏应用程序。

android开源模拟器与游戏终端建立连接,且在android开源模拟器上加载对应的用户配置后,云游戏服务器就可启动用户交互后台管理模块,利用用户交互后台管理模块监听并接收游戏终端发送的用户交互事件(如用户在终端上的操作信息)。在接收到用户交互事件时,用户交互后台管理模块会对用户交互事件进行解析,将用户交互事件转化为预定格式的数据,注入android开源模拟器的事件注入接口,以响应用户交互事件指向的云游戏应用程序。

步骤105:启动rtsp服务模块,不断采集android开源模拟器运行的云游戏的图片帧数据及音频数据,生成rtsp视频流,响应于游戏终端。

云游戏服务器还会启动rtsp服务模块。rtsp服务模块会不断采集android开源模拟器运行的云游戏的图片帧数据及音频数据,生成rtsp视频流,发送给游戏终端播放,以响应游戏终端。

此后,在游戏过程中,rtsp服务模块会不停采集android开源模拟器运行的云游戏的图片帧数据及音频数据,生成rtsp视频流,发送给游戏终端播放;用户交互后台管理模块也会在接收游戏终端发送的用户交互事件时,将该用户交互事件注入android开源模拟器,然后rtsp服务模块会抓取响应该用户交互事件的图片帧数据及音频数据,转化视频流后发送给游戏终端,直到用户退出对应的云游戏应用。

在实际应用中,云游戏服务器可通过live555开源框架创建rtsp服务模块,可通过创建socket服务进程来实时监听并接收终端发送的连接请求,以及用户交互事件。具体地说,socket服务进程可实时监听游戏终端发送的连接请求,以建立android开源模拟器与游戏终端的连接。在建立连接后,socket服务进程还会实时监听并接收游戏终端发送的数据,并根据数据头标签判断是否接收到的数据是否为用户交互事件。在判定接收到的数据是用户交互事件时,socket服务进程会先对该数据进行解析处理,以将该数据转化为andorid开源模拟器可识别的事件数据,并调用andorid开源模拟器的输入系统的事件的注入接口,添加相关参数,实现注入。

rtsp服务模块采集的图片帧数据可为bitmap(位图文件)图像数据。在实际应用中,rtsp服务模块可通过抓取opengl(开放图形库)渲染的数据或framebuff(帧缓冲)数据,得到该bitmap图像数据。rtsp服务模块采集的音频数据可为pcm(脉冲编码调制)数据。rtsp服务模块支持把抓取的bitmap图像数据进行编码(如编码成h.264格式),形成视频流;也支持把抓取的pcm数据进行编码(如aac),形成音频流。得到视频流及音频流后,rtsp服务模块会将视频流和音频流通入复用器进行复用处理,以形成rtsp视频流。值得一提的是,android开源模拟器向游戏终端输出rtsp视频流的通道与接收游戏终端发送的相关数据的通道,可以为不同的通道。

本实施方式相对于现有技术而言,直接利用android开源模拟器实现云游戏服务器,降低了技术门槛、减少了成本。同时,android开源模拟器在各个升级的android版本上都有完整的配套版本,兼容性最好,避免了云游戏服务器无法及时更新android新版本的问题。

本发明的第二实施方式涉及一种基于android系统的云游戏运行方法。第二实施方式是在第一实施方式的基础上做的进一步改进,主要改进之处在于,第二实施方式提供了一种建立android开源模拟器与游戏终端连接的方式。

本实施方式中,云游戏服务器可通过端口重定向配置,使得android开源模拟器与游戏终端建立连接。如图2所示,具体地,可先通过net技术,将游戏终端连接的宿主机的远程ip端口,映射为宿主机的本地ip端口(127.0.0.1);再通过android开源工具adb的forward命令,将该本地ip端口映射到android开源模拟器的远程ip端口,从而建立android开源模拟器与游戏终端的连接。

本发明的第三实施方式涉及一种基于android系统的云游戏服务器。该云游戏服务器包括android开源模拟器,并且该云游戏服务器可使用第一实施方式或第二实施方式提供的方法运行基于android系统的云游戏。

由于本实施方式为与第一实施方式或第二实施方式相对应的装置实施例,本实施方式可与第一实施方式或第二实施方式互相配合实施。第一实施方式或第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式或第二实施方式中。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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