模拟安卓环境中游戏程序运行控制方法及装置的制造方法_3

文档序号:8420922阅读:来源:国知局
过socket通信方式,由自定义ROM文件中的预先写入的一个后台服务server,将图像数据通过相应端口传输给基于Windows、Linux或Mac OS X等操作系统的个人PC或服务器中genymot1n的主程序,由该主程序调用EGL绘制图像并显示在模拟图像显示区中,其中,对一些函数做了自适应修改,如用于获取帧缓存的参数信息的eglGetConfigsO函数、获取显示设备的窗口句柄的函数eglGetDisplay O等。
[0053]所述游戏图像显示的具体过程为,个人PC或服务器中的Android模拟器genymot1n的主程序将当前的游戏界面情况和显示设定发送给个人PC或服务器的操作系统的显卡驱动,由显卡驱动将当前的界面更新结果转换成显卡能解析的信号发送到显示屏上开辟的图像显示区,以显示游戏的图像。
[0054]此外,由于Google官方Android的ROM不支持arm架构的apk程序,对于arm架构的手机游戏APP则无法使用,故在某些实施例中,本发明适应这一情况进一步提供指令转换步骤,将arm架构的apk程序的运行指令转换成x86架构。所述指令转换程序具体为通过执行houdini技术实现。Houdini是Intel开发的arm 二进制代码转译器,把arm的二进制代码转译为x86指令集,使得arm指令可以在x86的CPU上执行。具体转换指令主要有加、减、乘、除、移位、异或、与等操作指令,通过向自定义的ROM文件中写入指令转换程序,自动完成基于arm架构的手机游戏APP的指令转换,使得基于arm架构的手机游戏APP可以运行与由Android模拟器genymot1n作为支撑的模拟安卓环境中。进一步,为了提高ROM文件的运行效率及性能,对其部分参数做了优化。
[0055]以手机游戏模拟器作为一个实施例,对本发明的实现原理做进一步说明。
[0056]模拟器是指模拟硬件处理器的功能和指令系统的软件程序,可以使计算机或其他移动终端运行在其他平台上。模拟器包含很多组件,如模拟CPU的组件、模拟输入输出设备的组件、模拟显示器的组件、模拟声音播放器的组件等。
[0057]手机游戏模拟器安装于基于Windows、Linux或Mac OS X等操作系统的个人PC或服务器,加载本发明所述的自定义Android ROM文件,即系统文件,运行于以Genymot1n为支撑的VirtualBox中,所述手机游戏模拟器还包括一外壳,外壳中开辟一图像显示区,用于显示图形界面。当模拟器开始运行时,在外壳中开辟的图像显示区中显示用于接收用户加载手机游戏程序指令的第一界面,即加载手机游戏程序前的用户引导界面,其界面通常包括应用商城、我的应用、推荐应用、社区互动等菜单按钮,所述我的应用菜单可以包括浏览器、设置、联系人、游戏图标等快捷图标。
[0058]所述第一界面的显示,由ROM文件中预先写入的后台服务server通过socket通信,将第一界面的相关显示图形图标传到模拟器的主程序,由模拟器的主程序调用OpenGL的接口函数进行图像绘制。其中,本发明所述OpenGL库函数可根据实际需求做自适应修改。
[0059]用户通过第一界面的“应用商城” 一键下载安装,或直接点击已安装好的游戏图标运行游戏,也可以通过本地添加导入手机游戏APP进行安装,还可以通过将手机游戏的APK拖拽入模拟器直接打开。其中下载游戏通过推荐应用或应用商城菜单,转到相应子界面,选择游戏图标,点击一键安装完成下载并自动安装,安装完成的游戏快捷图标会显示在“我的应用”的菜单界面,用户通过点击游戏快捷图标启动相应的手机游戏程序。
[0060]当用户启动手机游戏程序时,模拟器自动加载手机游戏的控制程序、视频数据、音频数据等,并启动后台服务server。用户在模拟器上进行如文字输入、通过模拟按键控制游戏等操作时,由后台服务server与模拟器的主程序通过基于UDP协议的socket通信,实现将个人PC或服务器端的用户操作指令映射为模拟安卓环境中的操作指令。
[0061]所述自定义ROM为已获得root权限的系统文件,可以随意修改GPS定位,具体由模拟器主程序执行修改。用户点击所述模拟器的第一界面中的GPS定位的菜单按钮,弹出的子界面显示一张地图,用户通过地图选定位置,则模拟安卓系统就会按照选定的位置进行定位。
[0062]此外,本实施例所述手机游戏模拟器还包括摇一摇功能,在模拟器中内置一微信,通过上述GPS定位功能设定一个参考位置,通过摇一摇寻找附近的人。当用户点击所述模拟器的第一界面中的摇一摇按钮时,模拟器主程序发送一个命令,相应的模块执行该命令使得所述的模拟器外壳震动一下,并查找以GPS定位设定的位置附近的人。
[0063]请参阅图2所示,本发明还提供一种模拟安卓环境中手机游戏程序运行控制装置,包括加载模块11,指令映射模块12、显示模块13以及指令转换模块14,其中,
[0064]加载模块11用于在模拟环境中加载游戏程序及其运行相关数据。当启动以模拟器Genymot1n为支撑的VirtualBox后,加载自定义的Android ROM文件,即系统文件,读取文件中的安卓系统文件并运行,以此构造出模拟安卓环境。所述自定义Android ROM文件具体指对官方Android ROM文件进行自适应修改的ROM文件。
[0065]当用户点选模拟安卓环境中的手机游戏图标,以启动该手机游戏时,模拟安卓环境所对应的由ROM构造出的操作系统便对用户操作指令作出响应,调用加载模块11加载相应的游戏程序及其运行相关数据,以确保该程序的正常运行。该些相关数据包括视频数据、音频数据以及其它由本领域技术人员所了解的游戏运行所需数据,将该些相关数据调入系统内存以便确保手机游戏程序的正常运行。
[0066]指令映射模块12用于将用户的操作指令映射为模拟安卓环境中相应的操作指令。用户玩游戏过程中,会执行一系列操作,模拟安卓系统将用户在基于Windows、Linux、Mac OS X等系统的个人PC或服务器上执行的操作,映射为模拟安卓环境中相应的操作。以下列举一些用户操作:
[0067]1、文字输入
[0068]用户在玩游戏的过程中,会通过文字进行玩家之间的互动,如发验证码,聊天等行为。由于用户通过个人PC或服务器上的输入法进行输入操作,不同于模拟安卓系统下的输入法,故需要将个人PC或服务器上的输入法输入的文字转换为模拟安卓系统下的输入法输入的文字,具体原理为:
[0069]在指令映射模块12中预先写入输入法的一个后台服务server,当游戏启动时指令映射模块12启动server,用户通过个人PC或服务器的输入法输入文字或进行复制粘贴时,个人PC或服务器中安装的genymot1n主程序作为客户端,所述指令映射模块12中的后台服务server作为服务端,两者基于UDP协议进行socket通信,其中,所述服务端预先指定一个固定端口,客户端随机生成一个端口,将个人PC或服务器的输入法输入的文字或复制粘贴的文字通过相应的端口传递给后台服务server,一旦所述后台服务server的端口接收到主程序发来的数据,则指令映射模块12将该数据显示在游戏的相应输入框中。其中,所述文字数据具体为文字所对应的CPU可识别的编码。此外,由于genymot1n可以直接调用其宿主主机的硬件资源,不同于bluestacks需要进行转码才能让宿主主机的CPU运行,所以利用genymot1n可以提高个人PC或服务器层与模拟安卓系统层的通信效率。
[0070]同理,当用户将游戏界面输入
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1