CN104740872B - 模拟安卓环境中游戏程序运行控制方法及装置 - Google Patents
模拟安卓环境中游戏程序运行控制方法及装置 Download PDFInfo
- Publication number
- CN104740872B CN104740872B CN201510172938.6A CN201510172938A CN104740872B CN 104740872 B CN104740872 B CN 104740872B CN 201510172938 A CN201510172938 A CN 201510172938A CN 104740872 B CN104740872 B CN 104740872B
- Authority
- CN
- China
- Prior art keywords
- android
- simulation
- environment
- user
- android environment
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004088 simulation Methods 0.000 claims abstract description 67
- 238000004891 communication Methods 0.000 claims description 30
- 230000006854 communication Effects 0.000 claims description 30
- 238000013507 mapping Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 17
- 230000009183 running Effects 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000007774 longterm Effects 0.000 abstract description 3
- 230000007547 defect Effects 0.000 abstract description 2
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 241001269238 Data Species 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种模拟安卓环境中游戏程序运行控制方法,包括加载手机游戏相关程序和数据;启动后台服务,将用户的操作指令映射为模拟安卓环境中相应的操作指令;将游戏图像传入模拟的图像显示区进行显示。同时还提供一种模拟安卓环境中游戏程序运行控制装置,本发明所述方法解决了手机玩游戏存在的屏幕小,网络不稳定,耗电快,且经常会被电话中断等缺陷,满足用户长期挂机的需求。
Description
技术领域
本发明涉及一种游戏程序运行的控制方法,具体而言,本发明涉及一种模拟安卓环境中游戏程序运行控制方法及其相应的装置。
背景技术
随着智能移动终端的发展,其用户群越来越庞大,为了适应用户的需求,开发出更多的移动终端软件。其中基于Android系统实现的手机游戏的潜在市场比其他智能移动终端平台更大,故而逐渐涌出越来越多的手机游戏App。尽管手机作为智能移动设备用来运行手机游戏有其先天不足,具体表现如屏幕小,网络不稳定,耗电快,经常会被电话中断等,但是,手机游戏由于其易于安装,易于操作且交互性极强等优点,仍然获得了大多数用户的青睐。
为了解决上述问题,业内常通过在台式设备上模拟安卓环境来避开手机游戏程序面临的先天不足,并且还力图保持其固有的优势。但是,由于台式设备的操作系统不是Android,而模拟安卓环境的相关软件并未考虑本身并不着重与手机游戏相结合的一些技术处理问题,因此,手机游戏在安卓模拟环境中的良好运行控制是对本领域技术人员提出的考验之一。
另一方面,将基于安卓系统的手机游戏移植到基于Windows、Linux、Mac OS X等操作系统的个人PC或服务器,将能够更好地满足用户玩手机游戏时的长期挂机需求,因此,游戏程序在模拟安卓环境中的运行稳定性,也成为本发明所要解决的一方面问题。
发明内容
本发明的目的旨在解决上述至少一个问题,为了实现上述目的,提供一种模拟安卓环境中游戏程序运行控制方法,包括以下步骤:
在模拟安卓环境中加载游戏程序及其运行相关数据;
启动后台服务,用于将用户的操作映射为模拟安卓环境中相应的操作;
在模拟安卓环境提供的图像显示区显示游戏图像。
进一步的,所述方法还包括将手机游戏程序的arm指令集转换为x86指令集。
具体的,所述指令转换程序具体通过houdini技术进行转换。
具体的,所述后台服务将用户输入的文字通过通信端口透传到模拟安卓环境中的游戏界面会话框。
具体的,所述后台服务将用户在实体键盘上的操作通过通信端口映射为模拟安卓环境中对相应模拟按键的操作。
一种模拟安卓环境中游戏程序运行控制装置,包括:
加载模块:用于在模拟环境中加载游戏程序及其运行相关数据;
指令传递模块:用于将用户的操作映射为模拟安卓环境中相应的操作;
显示模块:用于在模拟安卓环境提供的图像显示区显示游戏图像。
进一步的,所述装置还包括指令转换模块,用于将手机游戏程序的arm指令集转换为x86指令集。
具体的,所述指令转换模块具体通过houdini技术执行指令转换。
具体的,所述指令映射模块将用户输入的文字通过通信端口透传到模拟安卓环境中的游戏界面会话框。
具体的,所述指令映射模块将用户在实体键盘上的操作通过通信端口映射为模拟安卓环境中对相应模拟按键的操作。
相比现有技术,本发明的方案使得手机游戏程序在模拟安卓环境中的运行控制方案获得较好的改善,具体表现为包括如下几方面在内的诸多优点:
1、本发明采用x86架构的Android模拟器genymotion作为搭载虚拟机virtualbox的平台,以支持自定义的Android ROM文件的运行,相比Android模拟器bluestacks来说,可以充分利用CPU资源,提高速度。
2、通过建立模拟安卓环境中的后台服务server与非Android系统平台的用户之间的交互,将用户执行的操作映射为模拟安卓环境中相应的操作,使得手机游戏可以运行在个人PC或服务器上,解决手机上玩游戏存在的屏幕小,网络不稳定,耗电快,经常会被电话中断等缺陷,满足玩家长期挂机的需求。
3、通过进行指令集转换,将基于arm架构的手机游戏APP转换成x86架构的指令集,实现同时兼容两种架构的手机游戏APP。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明所述的模拟安卓环境中游戏程序运行控制方法的流程示意图;
图2为本发明所述的模拟安卓环境中游戏程序运行控制装置的原理框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
Genymotion是一套完整的工具集,旨在为Android提供虚拟环境,支持Windows、Linux、Mac OS X等系统平台,具有模拟运行速度快,画片流畅,且支持OpenGL 3D加速、多开、全屏等特性,并提供Eclipse、IntelliJ IDEA的开发插件。Genymotion可以支持几乎全部版本的Android系统,能够充分利用其CPU,基于VirtualBox虚拟机运行。相比Android模拟器bluestacks,可以直接调用基于x86的硬件资源,充分利用CPU资源,对占用大量内存的大型游戏也能够提供良好的性能。
本发明所述模拟安卓环境,具体指在基于Windows、Linux、Mac OS X等系统的个人PC或服务器上,运行在与上述以Genymotion为支撑的VirtualBox中的Android ROM文件。所述Android ROM文件具体是对官方Android ROM文件做自定义修改后的ROM文件。将所述自定义的Android ROM文件安装加载到以Genymotion为支撑的VirtualBox中,在由运行ROM文件提供的模拟安卓环境中,加载手机游戏APP或其他相关应用软件,使得手机游戏APP能够运行在基于Windows、Linux、Mac OS X等操作系统的个人PC或服务器。
请参阅图1所示的模拟安卓环境中游戏程序运行控制方法的流程示意图,本发明所述方法包括以下步骤:
S11、在模拟安卓环境中加载游戏程序及其运行相关数据;
当启动以Genymotion为支撑的VirtualBox后,加载自定义的Android ROM文件,即系统文件,读取文件中的安卓系统文件并运行,以此构造出模拟安卓环境。所述自定义Android ROM文件具体指对官方Android ROM文件进行自适应修改的ROM文件。
当用户点选模拟安卓环境中的手机游戏图标,以启动该手机游戏时,模拟安卓环境所对应的由ROM构造出的操作系统便对用户操作指令作出响应,从而加载相应的游戏程序及其运行相关数据,以确保该程序的正常运行。该些相关数据包括视频数据、音频数据以及其它由本领域技术人员所了解的游戏运行所需数据,将该些相关数据调入系统内存以便确保手机游戏程序的正常运行。
S12、启动后台服务,用于将用户的操作指令映射为模拟安卓环境中相应的操作指令;
用户玩游戏过程中,会执行一系列操作,模拟安卓系统将用户在基于Windows、Linux、Mac OS X等系统的个人PC或服务器上执行的操作,映射为模拟安卓环境中相应的操作。以下列举一些用户操作:
1、文字输入
用户在玩游戏的过程中,会进行玩家间的互动,如发验证码,聊天等行为。由于用户通过个人PC或服务器上的输入法进行输入操作,不同于模拟安卓系统下的输入法,故需要将个人PC或服务器上的输入法输入的文字转换为模拟安卓系统下的输入法输入的文字,具体原理为:
自定义的ROM系统文件中预先写入输入法的一个后台服务server,当游戏启动时启动server,用户通过个人PC或服务器的输入法输入文字或进行复制粘贴时,个人PC或服务器中安装的genymotion主程序作为客户端,所述后台服务server作为服务端,两者基于UDP协议进行socket通信,其中,所述服务端预先指定一个固定端口,客户端随机生成一个端口,将个人PC或服务器的输入法输入的文字或复制粘贴的文字通过相应的端口传递给后台服务server,一旦后台服务server的端口接收到主程序发来的数据,则将该数据显示在游戏的相应输入框中。其中,所述文字数据具体为文字所对应的CPU可识别的编码。此外,由于genymotion可以直接调用其宿主主机的硬件资源,不同于bluestacks需要进行转码才能让宿主主机的CPU运行,所以利用genymotion可以提高个人PC或服务器层与模拟安卓系统层的通信效率。
同理,当用户将游戏界面输入框中的文字复制粘贴至个人PC或服务器中时,所述个人PC或服务器中安装的genymotion主程序作为服务端,后台服务server作为客户端,两者基于UDP协议进行socket通信,将游戏界面中复制粘贴的文字通过相应的端口传递给个人PC或服务器。其中,所述文字数据具体为文字所对应的CPU可识别的编码。
2、模拟按键
为了方便用户操作模拟安卓环境中的手机游戏程序,设置模拟按键。在ROM中预先写入一个server,将用户在实体键盘上的操作指令映射为模拟安卓环境中手机游戏对应的模拟按键的操作。具体操作原理如下:
用户点击实体键盘,键盘发送脉冲给实体键盘的主机,主机中运行的Windows、Linux或Mac OS X等操作系统接收到键盘发送的脉冲,检测到信号有变化,根据接收到的信号分析哪个按键被触发了,操作系统内部记录有信号与按键之间的映射关系。个人PC或服务器中的Android虚拟机genymotion的主程序与后台服务server进行基于UDP协议的socket通信,将该按键对应的按键代码通过相应端口发送给模拟安卓环境中server对应端口。所述实体键盘的按键代码与手机游戏的虚拟按键之间设定一个对应关系,以关系列表的方式进行存储,用于记录实体键盘代码与手机游戏的虚拟按键之间的映射关系。如实体键盘的“W”表示虚拟按键“上”,实体键盘的“S”表示虚拟按键“下”,实体键盘的“A”表示虚拟按键“左”,实体键盘的“D”表示虚拟按键“右”,通过实体键盘对应的按键代码确定用户点击的虚拟按键。
以上只是列举了一部分用户操作,对于其他用户的操作也同样用基于UDP协议的socket通信方式,通过启动一个后台服务,将基于Windows、Linux或Mac OS X等操作系统个人PC或服务器中的用户操作指令映射为模拟安卓环境中用户的操作指令。
S13、在模拟安卓环境所提供的图像显示区显示游戏图像。
OpenGL ES是OpenGL三维图像API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。EGL是OpenGL ES与平台视窗系统之间的接口。通过调用EGL使得手机游戏的相关图像视频显示在模拟显示器中,调用EGL的实质是调用OpenGL的库函数进行图像绘制,并显示在相应的系统视窗中,其中,模拟安卓环境通过在显示器上开辟一图像显示区,即模拟图像显示区,来呈现游戏图像。
当模拟安卓环境中的手机游戏运行时,其要显示的图像首先通过socket通信方式,由自定义ROM文件中的预先写入的一个后台服务server,将图像数据通过相应端口传输给基于Windows、Linux或Mac OS X等操作系统的个人PC或服务器中genymotion的主程序,由该主程序调用EGL绘制图像并显示在模拟图像显示区中,其中,对一些函数做了自适应修改,如用于获取帧缓存的参数信息的eglGetConfigs()函数、获取显示设备的窗口句柄的函数eglGetDisplay()等。
所述游戏图像显示的具体过程为,个人PC或服务器中的Android模拟器genymotion的主程序将当前的游戏界面情况和显示设定发送给个人PC或服务器的操作系统的显卡驱动,由显卡驱动将当前的界面更新结果转换成显卡能解析的信号发送到显示屏上开辟的图像显示区,以显示游戏的图像。
此外,由于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模拟器genymotion作为支撑的模拟安卓环境中。进一步,为了提高ROM文件的运行效率及性能,对其部分参数做了优化。
以手机游戏模拟器作为一个实施例,对本发明的实现原理做进一步说明。
模拟器是指模拟硬件处理器的功能和指令系统的软件程序,可以使计算机或其他移动终端运行在其他平台上。模拟器包含很多组件,如模拟CPU的组件、模拟输入输出设备的组件、模拟显示器的组件、模拟声音播放器的组件等。
手机游戏模拟器安装于基于Windows、Linux或Mac OS X等操作系统的个人PC或服务器,加载本发明所述的自定义Android ROM文件,即系统文件,运行于以Genymotion为支撑的VirtualBox中,所述手机游戏模拟器还包括一外壳,外壳中开辟一图像显示区,用于显示图形界面。当模拟器开始运行时,在外壳中开辟的图像显示区中显示用于接收用户加载手机游戏程序指令的第一界面,即加载手机游戏程序前的用户引导界面,其界面通常包括应用商城、我的应用、推荐应用、社区互动等菜单按钮,所述我的应用菜单可以包括浏览器、设置、联系人、游戏图标等快捷图标。
所述第一界面的显示,由ROM文件中预先写入的后台服务server通过socket通信,将第一界面的相关显示图形图标传到模拟器的主程序,由模拟器的主程序调用OpenGL的接口函数进行图像绘制。其中,本发明所述OpenGL库函数可根据实际需求做自适应修改。
用户通过第一界面的“应用商城”一键下载安装,或直接点击已安装好的游戏图标运行游戏,也可以通过本地添加导入手机游戏APP进行安装,还可以通过将手机游戏的APK拖拽入模拟器直接打开。其中下载游戏通过推荐应用或应用商城菜单,转到相应子界面,选择游戏图标,点击一键安装完成下载并自动安装,安装完成的游戏快捷图标会显示在“我的应用”的菜单界面,用户通过点击游戏快捷图标启动相应的手机游戏程序。
当用户启动手机游戏程序时,模拟器自动加载手机游戏的控制程序、视频数据、音频数据等,并启动后台服务server。用户在模拟器上进行如文字输入、通过模拟按键控制游戏等操作时,由后台服务server与模拟器的主程序通过基于UDP协议的socket通信,实现将个人PC或服务器端的用户操作指令映射为模拟安卓环境中的操作指令。
所述自定义ROM为已获得root权限的系统文件,可以随意修改GPS定位,具体由模拟器主程序执行修改。用户点击所述模拟器的第一界面中的GPS定位的菜单按钮,弹出的子界面显示一张地图,用户通过地图选定位置,则模拟安卓系统就会按照选定的位置进行定位。
此外,本实施例所述手机游戏模拟器还包括摇一摇功能,在模拟器中内置一微信,通过上述GPS定位功能设定一个参考位置,通过摇一摇寻找附近的人。当用户点击所述模拟器的第一界面中的摇一摇按钮时,模拟器主程序发送一个命令,相应的模块执行该命令使得所述的模拟器外壳震动一下,并查找以GPS定位设定的位置附近的人。
请参阅图2所示,本发明还提供一种模拟安卓环境中手机游戏程序运行控制装置,包括加载模块11,指令映射模块12、显示模块13以及指令转换模块14,其中,
加载模块11用于在模拟环境中加载游戏程序及其运行相关数据。当启动以模拟器Genymotion为支撑的VirtualBox后,加载自定义的Android ROM文件,即系统文件,读取文件中的安卓系统文件并运行,以此构造出模拟安卓环境。所述自定义Android ROM文件具体指对官方Android ROM文件进行自适应修改的ROM文件。
当用户点选模拟安卓环境中的手机游戏图标,以启动该手机游戏时,模拟安卓环境所对应的由ROM构造出的操作系统便对用户操作指令作出响应,调用加载模块11加载相应的游戏程序及其运行相关数据,以确保该程序的正常运行。该些相关数据包括视频数据、音频数据以及其它由本领域技术人员所了解的游戏运行所需数据,将该些相关数据调入系统内存以便确保手机游戏程序的正常运行。
指令映射模块12用于将用户的操作指令映射为模拟安卓环境中相应的操作指令。用户玩游戏过程中,会执行一系列操作,模拟安卓系统将用户在基于Windows、Linux、MacOS X等系统的个人PC或服务器上执行的操作,映射为模拟安卓环境中相应的操作。以下列举一些用户操作:
1、文字输入
用户在玩游戏的过程中,会通过文字进行玩家之间的互动,如发验证码,聊天等行为。由于用户通过个人PC或服务器上的输入法进行输入操作,不同于模拟安卓系统下的输入法,故需要将个人PC或服务器上的输入法输入的文字转换为模拟安卓系统下的输入法输入的文字,具体原理为:
在指令映射模块12中预先写入输入法的一个后台服务server,当游戏启动时指令映射模块12启动server,用户通过个人PC或服务器的输入法输入文字或进行复制粘贴时,个人PC或服务器中安装的genymotion主程序作为客户端,所述指令映射模块12中的后台服务server作为服务端,两者基于UDP协议进行socket通信,其中,所述服务端预先指定一个固定端口,客户端随机生成一个端口,将个人PC或服务器的输入法输入的文字或复制粘贴的文字通过相应的端口传递给后台服务server,一旦所述后台服务server的端口接收到主程序发来的数据,则指令映射模块12将该数据显示在游戏的相应输入框中。其中,所述文字数据具体为文字所对应的CPU可识别的编码。此外,由于genymotion可以直接调用其宿主主机的硬件资源,不同于bluestacks需要进行转码才能让宿主主机的CPU运行,所以利用genymotion可以提高个人PC或服务器层与模拟安卓系统层的通信效率。
同理,当用户将游戏界面输入框中的文字复制粘贴至个人PC或服务器中时,所述个人PC或服务器中安装的genymotion主程序作为服务端,指令映射模块12中的后台服务server作为客户端,两者基于UDP协议进行socket通信,将游戏界面中复制粘贴的文字通过相应的端口传递给个人PC或服务器。其中,所述文字数据具体为文字所对应的CPU可识别的编码。
2、模拟按键
为了方便用户操作模拟安卓环境中的手机游戏程序,设置模拟按键。在指令映射模块12中预先写入一个server,将用户在实体键盘上的操作指令映射为模拟安卓环境中手机游戏对应的模拟按键的操作。具体操作原理如下:
用户点击实体键盘,键盘发送脉冲给实体键盘的主机,主机中运行的Windows、Linux或Mac OS X等操作系统接收到键盘发送的脉冲,检测到信号有变化,根据接收到的信号分析哪个按键被触发了,操作系统内部记录有信号与按键之间的映射关系,同时传递给Android模拟器genymotion的主程序。个人PC或服务器中的Android模拟器genymotion的主程序与指令映射模块12中的后台服务server进行基于UDP协议的socket通信,将该按键对应的按键代码通过相应端口发送给模拟安卓环境中server对应端口。所述实体键盘的按键代码与手机游戏的虚拟按键之间设定一个对应关系,以关系列表的方式进行存储,用于记录实体键盘代码与手机游戏的虚拟按键之间的映射关系。如实体键盘的“W”表示虚拟按键“上”,实体键盘的“S”表示虚拟按键“下”,实体键盘的“A”表示虚拟按键“左”,实体键盘的“D”表示虚拟按键“右”,通过实体键盘对应的按键代码确定用户点击的虚拟按键。
以上只是列举了一部分用户操作,对于其他用户的操作也同样用基于UDP协议的socket通信方式,通过指令映射模块12启动一个后台服务,将基于Windows、Linux或Mac OSX等操作系统个人PC或服务器中的用户操作指令映射为模拟安卓环境中用户的操作指令。
显示模块13用于在模拟安卓环境提供的图像显示区显示游戏图像。
OpenGL ES是OpenGL三维图像API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。EGL是OpenGL ES与平台视窗系统之间的接口。通过调用EGL使得手机游戏的相关图像视频显示在模拟显示器中,调用EGL的实质是调用OpenGL的库函数进行图像绘制,并显示在相应的系统视窗中,其中,模拟安卓环境通过在显示器上开辟一图像显示区,即模拟图像显示区,来呈现游戏图像。
当模拟安卓环境中的手机游戏运行时,其要显示的图像首先通过socket通信方式,由显示模块13中预先写入的一个后台服务server,将图像数据通过相应端口传输给基于Windows、Linux或Mac OS X等操作系统的个人PC或服务器中genymotion的主程序,由该主程序调用EGL绘制图像并显示在模拟的图像显示区中,其中,对一些函数做了自适应修改,如用于获取帧缓存的参数信息的eglGetConfigs()函数、获取显示设备的窗口句柄的函数eglGetDisplay()等。
所述游戏图像显示的具体过程为,个人PC或服务器中的Android模拟器genymotion的主程序将当前的游戏界面情况和显示设定发送给个人PC或服务器的操作系统的显卡驱动,由显卡驱动将当前的界面更新结果转换成显卡能解析的信号发送到显示屏上开辟的图像显示区,以显示游戏的图像。
此外,所述模拟安卓环境中手机游戏程序控制装置还包括指令转换模块14,用于将手机游戏程序的arm指令集转换为x86指令集。
由于Google官方Android的ROM不支持arm架构的apk程序,对于arm架构的手机游戏APP则无法使用,故在某些实施例中,本发明适应这一情况进一步提供指令转换模块14,将arm架构的apk程序的运行指令转换成x86架构。所述指令转换模块14具体为通过执行houdini技术实现。Houdini是Intel开发的arm二进制代码转译器,把arm的二进制代码转译为x86指令集,使得arm指令可以在x86的CPU上执行。具体转换指令主要有加、减、乘、除、移位、异或、与等操作指令,通过执行指令转换模块14,自动完成基于arm架构的手机游戏APP的指令转换,使得基于arm架构的手机游戏APP可以运行与由Android模拟器genymotion作为支撑的模拟安卓环境中。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (18)
1.一种模拟安卓环境中游戏程序运行控制方法,其特征在于,包括以下步骤:
在模拟安卓环境中加载游戏程序及其运行相关数据;
启动后台服务,用于将用户的操作映射为模拟安卓环境中相应的操作;
在模拟安卓环境提供的图像显示区显示游戏图像;
其中,所述启动后台服务,用于将用户的操作映射为模拟安卓环境中相应的操作,包括:
启动非安卓系统平台中预先写入的后台服务,用于将用户在所述非安卓系统平台的操作映射为模拟安卓环境中相应的操作;
所述在模拟安卓环境提供的图像显示区显示游戏图像,包括:
通过所述后台服务,在所述非安卓系统平台接收游戏图像数据,并通过在模拟安卓环境预先在所述非安卓系统平台的显示器上开辟的图像显示区显示游戏图像。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括将手机游戏程序的arm指令集转换为x86指令集的指令转换步骤。
3.根据权利要求2所述的方法,其特征在于,所述指令转换程序具体通过houdini技术进行转换。
4.根据权利要求1所述的方法,其特征在于,所述后台服务将用户输入的文字通过通信端口透传到模拟安卓环境中的游戏界面会话框。
5.根据权利要求1所述的方法,其特征在于,所述后台服务将用户在实体键盘上的操作通过通信端口映射为模拟安卓环境中对相应模拟按键的操作。
6.根据权利要求4或5所述的方法,其特征在于,所述后台服务具体通过基于UDP协议的socket通信实现其相关操作。
7.根据权利要求1所述的方法,其特征在于,所述游戏图像通过调用OpenGL库函数进行绘制。
8.根据权利要求1所述的方法,其特征在于,所述方法的运行环境由Android模拟器genymotion提供。
9.根据权利要求1所述的方法,其特征在于,所述方法的模拟安卓环境中的系统为获得root权限的系统。
10.一种模拟安卓环境中游戏程序运行控制装置,其特征在于,包括:
加载模块:用于在模拟环境中加载游戏程序及其运行相关数据;
指令映射模块:用于将用户的操作映射为模拟安卓环境中相应的操作;
显示模块:用于在模拟安卓环境提供的图像显示区显示游戏图像;
其中,所述指令映射模块具体用于启动非安卓系统平台中预先写入的后台服务,用于将用户在所述非安卓系统平台的操作映射为模拟安卓环境中相应的操作;
所述显示模块具体用于通过所述后台服务,在所述非安卓系统平台接收游戏图像数据,并通过模拟安卓环境预先在所述非安卓系统平台的显示器上开辟的图像显示区显示游戏图像。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括指令转换模块,用于将手机游戏程序的arm指令集转换为x86指令集。
12.根据权利要求11所述的装置,其特征在于,所述指令转换模块具体通过houdini技术执行指令转换。
13.根据权利要求10所述的装置,其特征在于,所述指令映射模块将用户输入的文字通过通信端口透传到模拟安卓环境中的游戏界面会话框。
14.根据权利要求10所述的装置,其特征在于,所述指令映射模块将用户在实体键盘上的操作通过通信端口映射为模拟安卓环境中对相应模拟按键的操作。
15.根据权利要求13或14所述的装置,其特征在于,所述指令映射模块具体通过基于UDP协议的socket通信实现其操作。
16.根据权利要求10所述的装置,其特征在于,所述游戏图像通过调用OpenGL库函数进行绘制。
17.根据权利要求10所述的装置,其特征在于,所述装置各模块的运行环境由Android模拟器genymotion提供。
18.根据权利要求10所述的装置,其特征在于,所述装置运行的模拟安卓环境中的系统为获得root权限的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510172938.6A CN104740872B (zh) | 2015-04-13 | 2015-04-13 | 模拟安卓环境中游戏程序运行控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510172938.6A CN104740872B (zh) | 2015-04-13 | 2015-04-13 | 模拟安卓环境中游戏程序运行控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104740872A CN104740872A (zh) | 2015-07-01 |
CN104740872B true CN104740872B (zh) | 2018-06-19 |
Family
ID=53581469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510172938.6A Expired - Fee Related CN104740872B (zh) | 2015-04-13 | 2015-04-13 | 模拟安卓环境中游戏程序运行控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104740872B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339256B (zh) * | 2015-07-06 | 2019-12-03 | 阿里巴巴集团控股有限公司 | 用于自动分配模拟器的方法及装置 |
CN105117339B (zh) * | 2015-08-27 | 2018-03-06 | 广州市百果园网络科技有限公司 | 一种利用插件调试原生命令调试程序的方法和装置 |
CN105550017A (zh) * | 2015-12-11 | 2016-05-04 | 北京奇虎科技有限公司 | 针对应用进行虚拟输入控制的方法、装置及系统 |
CN109669763A (zh) * | 2015-12-11 | 2019-04-23 | 北京奇虎科技有限公司 | 虚拟输入控制的方法、装置及系统 |
CN105550045A (zh) * | 2015-12-11 | 2016-05-04 | 北京奇虎科技有限公司 | 利用移动终端对虚拟输入进行控制的方法、装置及系统 |
CN105550046B (zh) * | 2015-12-11 | 2020-02-14 | 北京奇虎科技有限公司 | 虚拟操控的方法、装置及系统 |
CN105700923A (zh) * | 2016-01-08 | 2016-06-22 | 深圳市创想天空科技股份有限公司 | 安装应用程序的方法及系统 |
CN105641931A (zh) * | 2016-03-31 | 2016-06-08 | 深圳市创想天空科技股份有限公司 | 游戏操作配置方法与系统 |
CN106445630A (zh) * | 2016-08-10 | 2017-02-22 | 北京奇虎科技有限公司 | Android模拟器及实现Android模拟器的方法 |
CN107846346A (zh) * | 2016-09-20 | 2018-03-27 | 天脉聚源(北京)科技有限公司 | 一种pc端模拟实现摇电视功能的方法和系统 |
CN106790622A (zh) * | 2016-12-30 | 2017-05-31 | 广州华多网络科技有限公司 | 模拟器模拟定位方法及装置 |
CN106844066B (zh) * | 2017-01-22 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 一种应用运行方法、装置及系统 |
CN106980553B (zh) * | 2017-03-28 | 2021-07-23 | 北京奇虎科技有限公司 | 一种基于事件进行数据传递的方法及设备 |
CN106970828A (zh) * | 2017-03-28 | 2017-07-21 | 北京奇虎科技有限公司 | 一种用于对指令进行自适应的方法及设备 |
CN106951294B (zh) * | 2017-03-28 | 2020-07-10 | 北京奇虎科技有限公司 | 一种用于为跨系统应用提供服务的方法及设备 |
TWI643129B (zh) * | 2017-08-22 | 2018-12-01 | 廣積科技股份有限公司 | 融合運用系統架構 |
CN108737284A (zh) * | 2018-04-27 | 2018-11-02 | 四川斐讯信息技术有限公司 | 一种游戏应用辅助方法及无线路由器 |
CN109045694B (zh) * | 2018-08-17 | 2020-01-10 | 腾讯科技(深圳)有限公司 | 虚拟场景显示方法、装置、终端及存储介质 |
CN109445666A (zh) * | 2018-10-09 | 2019-03-08 | 上海二三四五网络科技有限公司 | 一种在个人计算机上实现安卓模拟器的控制方法及控制装置 |
CN109544663B (zh) * | 2018-11-09 | 2023-01-06 | 腾讯科技(深圳)有限公司 | 应用程序的虚拟场景识别与交互键位匹配方法及装置 |
CN111298444B (zh) * | 2018-12-12 | 2023-10-20 | 上海波克城市网络科技股份有限公司 | 用户分离方法及装置、存储介质、服务器 |
CN109788440A (zh) * | 2019-01-14 | 2019-05-21 | 北京纷扬科技有限责任公司 | 签到防作弊方法、装置、系统、设备及存储介质 |
CN113741708B (zh) * | 2020-05-31 | 2024-06-11 | 华为技术有限公司 | 一种输入方法及电子设备 |
CN113961131A (zh) | 2020-07-03 | 2022-01-21 | 瑞昱半导体股份有限公司 | 基于安卓平台的自定义按键的处理方法及其处理装置 |
CN112328356B (zh) * | 2020-10-21 | 2023-09-29 | 成都安易迅科技有限公司 | Android与Windows的互通方法、装置、存储介质及计算机设备 |
CN113238687B (zh) * | 2021-04-27 | 2021-11-16 | 北京麟卓信息科技有限公司 | 一种桌面平台上安卓应用按钮功能的实现方法及实现装置 |
CN113384871A (zh) * | 2021-06-22 | 2021-09-14 | 泉州市兰梦网络科技中心(有限合伙) | 一种游戏系统内置的模拟移动端操作系统平台 |
CN113918227A (zh) * | 2021-09-10 | 2022-01-11 | 北京鲸鲮信息系统技术有限公司 | 输入法设置方法及其装置、输入方法及电子设备 |
CN114090487A (zh) * | 2021-11-26 | 2022-02-25 | 上海星融汽车科技有限公司 | 安卓模拟器与诊断设备的通讯方法、装置、系统、存储介质及电子设备 |
CN114281453A (zh) * | 2021-12-15 | 2022-04-05 | 天翼电信终端有限公司 | 云手机与终端应用交互执行方法、装置、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799461A (zh) * | 2011-05-24 | 2012-11-28 | 联想(北京)有限公司 | 一种应用的执行方法、装置及电子设备 |
CN103413089A (zh) * | 2013-08-28 | 2013-11-27 | 天翼电信终端有限公司 | 移动终端及其实现双系统的方法 |
CN103777999A (zh) * | 2014-01-09 | 2014-05-07 | 深圳市星策网络科技有限公司 | 安卓软件模拟方法及装置 |
CN103885814A (zh) * | 2014-03-20 | 2014-06-25 | 百度在线网络技术(北京)有限公司 | 在x86架构上运行ARM APK的模拟器装置和方法 |
CN104142852A (zh) * | 2014-08-04 | 2014-11-12 | 福州靠谱网络有限公司 | 在电脑上实现安卓模拟器图形加速方法 |
-
2015
- 2015-04-13 CN CN201510172938.6A patent/CN104740872B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799461A (zh) * | 2011-05-24 | 2012-11-28 | 联想(北京)有限公司 | 一种应用的执行方法、装置及电子设备 |
CN103413089A (zh) * | 2013-08-28 | 2013-11-27 | 天翼电信终端有限公司 | 移动终端及其实现双系统的方法 |
CN103777999A (zh) * | 2014-01-09 | 2014-05-07 | 深圳市星策网络科技有限公司 | 安卓软件模拟方法及装置 |
CN103885814A (zh) * | 2014-03-20 | 2014-06-25 | 百度在线网络技术(北京)有限公司 | 在x86架构上运行ARM APK的模拟器装置和方法 |
CN104142852A (zh) * | 2014-08-04 | 2014-11-12 | 福州靠谱网络有限公司 | 在电脑上实现安卓模拟器图形加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104740872A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104740872B (zh) | 模拟安卓环境中游戏程序运行控制方法及装置 | |
CN110178357A (zh) | 远程设备可接入的云中基于云的手机服务 | |
US9451043B2 (en) | Remote virtualization of mobile apps | |
Meier | Professional Android 4 application development | |
CN106844066B (zh) | 一种应用运行方法、装置及系统 | |
US7747683B2 (en) | Method and system for operating applications for remote terminal devices | |
CN109358936A (zh) | 信息处理方法、装置、存储介质、电子设备及系统 | |
CN108605049A (zh) | 用于用户设备的基于应用状态和卡片的消息共享方法 | |
KR100898527B1 (ko) | 컴퓨팅 디바이스에서 디바이스를 동적으로 시뮬레이션하기위한 시스템 및 방법 | |
TW201235072A (en) | Method and apparatus for gaming based on mobile terminal | |
CN103777999A (zh) | 安卓软件模拟方法及装置 | |
CN111722885B (zh) | 程序运行方法、装置以及电子设备 | |
US9744458B2 (en) | Method for simulating video games on mobile device | |
CN104376268A (zh) | 应用隐藏控制方法及装置 | |
CN106970946A (zh) | 一种页面显示方法及装置 | |
US20150133218A1 (en) | Method for simulating video games on mobile device | |
CN105550046B (zh) | 虚拟操控的方法、装置及系统 | |
US8290442B2 (en) | Testing media content for wireless communication devices | |
CN109669691B (zh) | 基于嵌入式Linux音频播放器的平台通用控制方法及系统 | |
US8291004B2 (en) | Remotely controlling playback of media content on a wireless communication device | |
Liu et al. | AASMP--Android Application Server for Mobile Platforms | |
KR102189889B1 (ko) | 웹 브라우저 기반 안드로이드 애플리케이션 스트리밍 서비스 제공 방법 및 이를 위한 시스템 | |
CA2600258C (en) | Remotely controlling playback of media content on a wireless communication device | |
AFREEN | Mobile Applications Development | |
Onossovski et al. | Ubiq Mobile–a new universal platform for mobile online services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180619 Termination date: 20210413 |