CN103777999A - 安卓软件模拟方法及装置 - Google Patents
安卓软件模拟方法及装置 Download PDFInfo
- Publication number
- CN103777999A CN103777999A CN201410029397.7A CN201410029397A CN103777999A CN 103777999 A CN103777999 A CN 103777999A CN 201410029397 A CN201410029397 A CN 201410029397A CN 103777999 A CN103777999 A CN 103777999A
- Authority
- CN
- China
- Prior art keywords
- android
- software
- module
- android software
- virtual machine
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种安卓软件模拟方法,用于具有显示芯片的X86架构设备,该方法包括以下步骤:通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用;将安卓软件的图像数据转发给显示芯片:通过所述显示芯片渲染所述图像数据。所述安卓软件模拟方法能够在电脑上快速运行安卓系统的软件,满足在电脑上体验安卓系统的应用和游戏的需求。另外,本发明还提供了一种安卓软件模拟装置。
Description
技术领域
本发明涉及软件开发领域,尤其涉及一种安卓模拟方法及装置。
背景技术
移动设备,例如智能手机、平板电脑等,已经成为应用程序开发的主流平台。目前的安卓系统(android)属于一种以Linux为基础的开放源代码操作系统,主要使用于便携式移动终端,因其开放的可编程代码、精致的用户操作界面和丰富的应用软件而风靡全球。
然而现有安卓系统的移动应用在手机上体验不好以及不同手机的如屏幕、电池、内存硬件的差异。限制了一些用户体验一些手机游戏和应用。越来越多的用户希望在电脑上使用移动应用和手机游戏。同时许多如EA等电脑游戏公司大部分都转战移动互联网,他们希望自己的产品同样能快速移到电脑,给玩家另一个体验渠道。另外,许多开发人员为了测试游戏等原因,也需要在电脑上运行移动应用和手机游戏。
但由于现有的安卓移动设备使用的芯片,大部分是arm芯片。而电脑是采用的x86架构。因此安卓系统上的应用和游戏无法直接在电脑上运行。从而无法满足在电脑上体验安卓系统的应用和游戏的需求。虽然市面上有部分安卓模拟器,但模拟器的运行速度比较慢,无法满足用户的体验。
发明内容
本发明实施例所要解决的技术问题是提供一种安卓软件模拟方法及装置,能够在电脑上快速运行安卓系统的软件,满足在电脑上体验安卓系统的应用和游戏的需求。
本发明实施例提供一种安卓软件模拟方法,用于具有显示芯片的X86架构设备,该方法包括以下步骤:
通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用;
将安卓软件的图像数据转发给显示芯片;
通过所述显示芯片渲染所述图像数据。
其中,在通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用的步骤中还包括以下步骤:
当所述虚拟机开启时,运行优化的安卓系统镜像;
当所述安卓软件已经安装在所述虚拟机中时,启动所述安卓软件;
获取所述安卓软件的渲染请求;
提交所述渲染请求;
将所述安卓软件的渲染请求转换为所述X86架构设备可以识别的渲染指令;
通过所述X86架构设备的显示芯片渲染所述安卓软。
其中,在运行优化的安卓系统镜像的步骤之前还包括:
获取安卓软件的发布包;
进行所述发布包解析;
显示所述安卓软件的启动项;
获取所述安卓软件的启动指令。
其中,在所述当所述虚拟机开启时,运行优化的安卓系统镜像的步骤之前还包括以下步骤:
判断所述虚拟机是否开启。
其中,在当所述安卓软件已经安装在所述虚拟机中时,启动所述安卓软件的步骤之前还包括以下步骤:
检测所述安卓软件是否已经安装在所述虚拟机中。
其中,在当所述安卓软件已经安装在所述虚拟机中时,启动所述安卓软件的步骤之后还包括以下步骤:
调用arm指令;
转换所述arm指令为x86指令。
相应的,本发明实施例还提供了一种安卓软件模拟装置,用于具有显示芯片的X86架构设备,该装置包括:
系统模拟模块,通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用;
转发模块,用于将安卓软件的图像数据转发给显示芯片;
渲染模块,用于通过所述显示芯片渲染所述图像数据。
其中,所述系统模拟模块包括:
获取模块,用于获取安卓软件的发布包;
所述解析模块,用于进行所述发布包解析;
显示模块,用于显示所述安卓软件的启动项;
启动模块,用于获取所述安卓软件的启动指令;
虚拟机检测模块,用于判断所述虚拟机是否开启;
运行模块,用于运行优化的安卓系统镜像;
软件检测模块,用于检测所述安卓软件是否已经安装在所述虚拟机中;
软件启动模块,用于启动所述安卓软件。
其中,所述转发模块还包括:
软件侧监听模块,用于获取所述安卓软件的渲染请求;
渲染请求提交模块,用于提交将所述渲染请求;
所述渲染模块包括:
渲染转化模块,将接收到的所述渲染请求转换为所述X86架构设备可以识别的渲染指令;
渲染子模块,用于通过所述X86架构设备的显示芯片渲染所述安卓软件。
其中,所述安卓软件模拟装置还包括:
指令集调用模块,用于调用arm指令;
指令集转化模块,用于转换所述arm指令为x86指令。
本发明实施例提供的安卓软件模拟方法利用优化的安卓系统镜像及利用显示芯片进行渲染操作,可以整体提升安卓软件模拟运行的速度。通过实际测试,现有的安卓应用及软件从启动游戏到弹出游戏窗口的过程平均时间控制在5秒以内。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施方式提供的一种安卓软件模拟方法的流程图;
图2是图1所示的安卓软件模拟方法的通信结构示意图;
图3是本发明第一实施方式提供的一种安卓软件模拟装置的框架系统的界面示意图;
图4是本发明第一实施方式提供的一种安卓软件模拟装置的驱动系统的界面示意图;
图5是本发明第一实施方式提供的一种安卓软件模拟装置的模块化结构图;
图6是本发明第二实施方式提供的一种安卓软件模拟方法的流程图;
图7是本发明第二实施方式提供的一种安卓软件模拟装置的模块化结构图;
图8是图7所示的安卓软件模拟装置的运行示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所要解决的技术问题是提供一种广域网实时互动游戏同步方法、装置及系统,能够在高网络延时提高双方输入同步频率,极大的改善了停等同步方式下的卡顿问题,提供了流畅的游戏同步体验。以下分别进行详细说明。
请参阅图1,是本发明实施例提供的一种安卓软件模拟方法的流程图。其中,图1所描述的安卓软件模拟方法适用于各种具有显示芯片的x86架构设备,例如具有X86架构的PC和手提电脑。当然也可以用在例如掌上电脑(Personal Digital Assistant,PDA)、相机、掌上游戏机、平板电脑、电视、机顶盒以及其他移动互联网设备(Mobile Intemet Devices,MID)等具有显示芯片的X86架构设备上,本发明实施例不作具体限定。所述安卓软件可以是安卓应用、安卓游戏、安卓工具、视频播放软件等安卓系统下运行的软件,本发明实施例不作限定。所述安卓软件模拟方法用于在X86架构设备上运行安卓软件。本实施方式中,所述X86架构设备是具有X86架构的台式电脑。所述安卓软件是“愤怒的小鸟”游戏。本发明实施方式提供的安卓软件模拟方法可以包括以下步骤。
步骤101,通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用。所述仅适用于ARM架构设备的系统服务及应用为安卓系统转到X86架构设备后不需要的应用,比如电源管理、振动等,这些系统服务及应用在X86架构设备上模拟安卓系统时没有实质作用。实施方式中,在所述X86架构设备中预先安装一vbox虚拟机及预先保存优化的安卓系统镜像。所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用,用于提高安卓系统的启动的速度。
步骤103,将安卓软件的图像数据转发给显示芯片。本实施方式中,所述优化的安卓系统镜像中还预设一转发模块。所述转发模块用于获取安卓软件的渲染请求,并将所述渲染请求转发给所述显示芯片(GPU)。渲染是指绘制游戏或者动画的一帧画面。具体地,所述转发模块监听安卓系统,当启动的安卓软件发出渲染请求时,所述转发模块获取所述渲染请求,并将所述渲染请求直接发送到所述X86架构设备的显示芯片,利用所述显示芯片进行渲染。
步骤105,通过所述显示芯片渲染所述图像数据。本实施方式中,所述X86架构设备内设置一渲染模块,所述渲染模块用于获取所述渲染请求,并将所述渲染请求转换为所述X86架构设备可以识别的渲染指令,所述显示芯片根据渲染指令进行渲染。
本实施方式中,通过将安卓系统运行游戏时最耗时的显示运算,交由所述X86架构设备的显示芯片进行运算,保证游戏/应用的流畅运行。
请一并参阅图2至图4,为本发明第一实施方式提供的一种安卓软件模拟装置200。所述安卓软件模拟装置200均设置于一个所述X86架构设备300中。所述X86架构设备300预先安装虚拟机及保存已删除电话功能及仅适用于ARM架构设备的系统服务及应用的所述优化的安卓系统镜像。所述安卓软件模拟装置200包括用户层201、中间层202及映像层203。所述用户层201用于提供用户与系统的友好访问。本实施方式中,所述用户层201包括一框架系统,所述框架系统用于显示,存放所述安卓软件的发布包,以及对应安卓软件的存档数据,即一个安卓应用/游戏的管理系统,以下简称为“AdrBox”。所述AdrBox既是程序入口点,也是apk的管理工具。所述AdrBox显示界面如图3所示。所述中间层202包括一驱动系统及所述虚拟机,所述驱动系统用于启动虚拟机,启动游戏界面,及显示芯片加速功能,以下简称为“XCPlayer”。所述XCPlayer显示界面如图4所示。所述虚拟机为VirtualBox虚拟机,是一款开源虚拟机。所述映像层203为所述优化的安卓系统镜像。所述用户层201启动所述中间层202的驱动系统及所述虚拟机。所述虚拟机加载映像层203的优化的安卓系统镜像。所述XCPlayer与所述优化的安卓系统镜像进行数据交换及操作交换。
请参阅图5,所述安卓软件模拟装置200包括系统模拟模块210、转发模块220及渲染模块230。
所述系统模拟模块210,用于通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用。
所述转发模块220,用于将安卓软件的图像数据转发给显示芯片。本实施方式中,所述转发模块220为在优化的安卓系统镜像中增加的功能模块。所述转发模块220在所述安卓系统运行时,表现为一个呼应进程,所述转发模块220监听所述安卓软件的渲染请求。当启动的安卓软件发出渲染请求时,所述转发模块获取所述渲染请求,并将所述渲染请求直接发送到所述X86架构设备的显示芯片,利用所述显示芯片进行渲染。
渲染模块230,用于通过所述显示芯片渲染所述图像数据。所述渲染模块用于获取所述渲染请求,并将所述渲染请求转换为所述X86架构设备可以识别的渲染操作,所述显示芯片进行渲染。具体地,所述渲染模块230通过OpenGL库将所述渲染请求转换为所述X86架构设备的显示芯片可以识别的渲染指令,所述显示芯片根据渲染指令进行渲染。充分利用显示芯片性能加速所述安卓软件,相对传统虚拟机和模拟器使用CPU来运行渲染操作造成的性能低下和卡顿的现象,有明显改善。
请参阅图6,为本发明第二实施提供的一种安卓软件模拟方法的流程图。该安卓软件模拟方法与第一实施方式提供的一种安卓软件模拟方法基本相同。
本发明实施方式提供的安卓软件模拟方法可以包括以下步骤。
步骤301,获取安卓软件的发布包。本实施方式中,所述发布包是APK程序。APK是AndroidPackage的缩写,是Android系统的软件发布包。所述AdrBox从网络或是其它存储设备中获取并存储所述发布包。
步骤303,进行所述发布包解析。本实施方式中,通过所述AdrBox对所述发布包进行解析,获取如名称、图标、简介、运行环境参数、系统版本需求等必要的信息以备后用。
步骤305,显示所述安卓软件的启动项。本实施方式中,通过所述AdrBox以图标和名称组合的方式显示所述启动项。具体地,根据从发布包中获取的名称、图标在所述启动项上显示。当然,在其他实施方式中,所述启动项也可以仅以图标的方式显示。
步骤307,获取所述安卓软件的启动指令。本实施方式中,用户单击所述启动项时,所述单击指令即为所述安卓软件的启动指令。当然,在其他实施方式中,所述启动指令也可以是其他程序发送的启动指令。例如,QQ、墨迹天气、印象笔记等软件与所述AdrBox关联,通过在QQ、墨迹天气、印象笔记中启动所述安卓软件,这些程序就会向所述安卓软件发送启动指令,并切换到所述安卓软件。
步骤309,判断所述虚拟机是否开启。本实施方式中,所述XCPlayer检查所述虚拟机是否开启,还检测是否已启用VT-x/AMD-V硬件加速。
步骤311,启动所述虚拟机。本实施方式中,所述XCPlayer创建server,通过命令获取所述虚拟机的IP,并连接所述虚拟机。
步骤313,当所述虚拟机开启时,运行优化的安卓系统镜像。本实施方式中,所述虚拟机运行优化的安卓系统镜像。
步骤315,检测所述安卓软件是否已经安装在所述虚拟机中。本实施方式中,所述XCPlayer检测所述安卓软件是否已经安装在所述虚拟机中。
步骤317,在所述虚拟机中安装安卓软件。实施方式中,所述XCPlayer在所述虚拟机中安装所述安卓软件。
步骤319,当所述安卓软件已经安装在所述虚拟机中时,启动所述安卓软件。本实施方式中,所述XCPlayer在所述虚拟机中启动所述安卓软件。
步骤321,获取所述安卓软件的渲染请求。本实施方式中,所述优化的安卓系统镜像中的转发模块还用于监听所述安卓软件的渲染请求。
步骤323,提交所述渲染请求。本实施方式中,所述优化的安卓系统镜像中的转发模块还用于将监听到的所述渲染请求提交到所述X86架构设备的显示芯片。
步骤325,将所述安卓软件的渲染请求转换为所述X86架构设备可以识别的渲染指令。本实施方式中,当所述XCPlayer启动后,初始化所述X86架构设备的OpenGL,包括dpi的设置,窗口尺寸等。所述渲染转化模块522为所述X86架构设备内设置的一渲染监听进程,所述渲染转化模块522对所述安卓软件发送来的渲染请求,转换为所述X86架构设备可以识别的渲染指令。
步骤327,通过所述X86架构设备的显示芯片渲染所述安卓软件。本实施方式中,所述XCPlayer建立一个独立的线程,专门负责所述安卓软件后续的渲染流程。将所述虚拟机中的图像数据通过OpenGL直接调用显示芯片显示。具体地,通过OpenGL库将所述虚拟机中的映像投射到所述非ARM架构的窗口(XCPlayer的窗口)中。
在所述步骤315之后还可以包括以下步骤:
步骤329,调用arm指令。本实施方式中,由于所述安卓软件是基于arm芯片开发的,所以在所述安卓软件运行是会调用arm指令。
步骤331,转换所述arm指令为x86指令。本实施方式中,所述XCPlayer中包括一个转换模块,所述转换模块用于完成arm指令到x86指令的转换。当所述安卓软件需要使用到arm指令的时候,所述转换模块将arm指令翻译成x86指令,以供所述X86架构设备的处理器使用。通过将所述arm指令转换为x86指令,可以直接操作PC等设备的CPU,从而使得运行速度大大提升。
在所述步骤309中,若所述虚拟机未开启,则转到所述步骤311中。
在所述步骤315中,当所述安卓软件未安装在所述虚拟机中时,则转到所述步骤317。
请参阅图7,为本发明第二实施方式提供的一种安卓软件模拟装置500。所述安卓软件模拟装置500与所述第一实施方式提供的安卓软件模拟装置200基本相同。
所述安卓软件模拟装置500包括系统模拟模块510、转发模块520、渲染模块530、指令集调用模块540及指令集转化模块550。所述系统模拟模块510,用于通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用。本实施方式中,所述系统模拟模块510还包括获取模块511、解析模块512、显示模块513、启动模块514、虚拟机检测模块515、虚拟机启动模块515a、运行模块516、软件检测模块517、软件启动模块519及软件安装模块518。
所述获取模块511,用于获取安卓软件的发布包。本实施方式中,所述AdrBox从网络或是其它存储设备中获取并存储所述发布包。
所述解析模块512,用于进行所述发布包解析。本实施方式中,通过所述AdrBox对所述发布包进行解析。
所述显示模块513,用于显示所述安卓软件的启动项。本实施方式中,通过所述AdrBox以图标和名称组合的方式显示所述启动项。
所述启动模块514,用于获取所述安卓软件的启动指令。本实施方式中,用户单击所述启动项时,所述单击指令即为所述安卓软件的启动指令。
所述虚拟机检测模块515,用于判断所述虚拟机是否开启。本实施方式中,所述XCPlayer检查所述虚拟机是否开启,还检测是否已启用VT-x/AMD-V硬件加速。
所述虚拟机启动模块515a,用于启动所述虚拟机。
所述运行模块516,用于运行优化的安卓系统镜像。本实施方式中,所述XCPlayer创建server,通过命令获取所述虚拟机的IP,并连接所述虚拟机,运行优化的安卓系统镜像。
所述软件检测模块517,用于检测所述安卓软件是否已经安装在所述虚拟机中。本实施方式中,所述XCPlayer检测所述安卓软件是否已经安装在所述虚拟机中。
所述软件安装模块518,用于在所述虚拟机中安装所述安卓软件。实施方式中,所述XCPlayer在所述虚拟机中安装所述安卓软件。
所述软件启动模块519,用于启动所述安卓软件。本实施方式中,当所述安卓软件已经安装在所述虚拟机中时,所述XCPlayer在所述虚拟机中启动所述安卓软件。
所述转发模块520包括软件例监听模块521及渲染请求提交模块522。
所述软件侧监听模块521,用于获取所述安卓软件的渲染请求。本实施方式中,所述软件侧监听模块521监听所述安卓软件的渲染请求。
所述渲染请求提交模块522,用于提交将所述渲染请求。本实施方式中,所述软件侧监听模块521将所述软件侧监听模块521监听到渲染请求提交到所述X86架构设备的显示芯片。
所述渲染模块530包括渲染转化模块531及渲染子模块532。
所述渲染转化模块531,将接收到的所述渲染请求转换为所述X86架构设备可以识别的渲染指令。本实施方式中,所述渲染转化模块531为所述X86架构设备内设置的一渲染监听进程,所述渲染转化模块531对所述安卓软件发送来的渲染请求,转换为所述X86架构设备可以识别的渲染指令。
所述渲染子模块532,用于通过所述X86架构设备的显示芯片渲染所述安卓软件。本实施方式中,所述渲染子模块523为一个独立的线程,专门负责所述安卓软件后续的渲染流程。将所述虚拟机中的图像数据通过OpenGL直接调用显示芯片显示。
指令集调用模块540,用于调用arm指令。本实施方式中,由于所述安卓软件是基于arm芯片开发的,所以在所述安卓软件运行是会调用arm指令。
指令集转化模块550,用于转换所述arm指令为x86指令。本实施方式中,所述XCPlayer中包括一个转换模块,所述转换模块用于完成arm指令到x86指令的转换。当所述安卓软件需要使用到arm指令的时候,所述转换模块将arm指令翻译为x86指令,以供所述X86架构设备的处理器使用。
利用优化的安卓系统镜像及利用显示芯片进行渲染操作,可以整体提升安卓软件模拟运行的速度。通过实际测试,现有的安卓应用及软件从启动游戏到弹出游戏窗口的过程平均时间控制在5秒以内。
另外,通过优化的安卓系统镜像文件,及将Arm指令转换为适用于X86架构的X86指令,可以大大提升速度。
请参阅图8,为所述安卓软件模拟装置500具体运行过程。当收到所述AdrBox发来的,用户需要启动某一个应用/游戏的请求时,XCPlayer首先调用所述虚拟机启动所述优化的安卓系统镜像,同时启动所述渲染监听进程。安卓系统启动后,先完成系统关键进程的启动,然后再启动OpenGL监听进程。等待XCPlayer的渲染监听连接。
所述渲染监听进程启动后,将通知所述安卓系统渲染监听连接已开启。所述渲染监听进程开始监听所述应用/游戏的渲染请求。
所述应用/游戏启动后,检测安卓系统内部的所述呼应进程是否已经启动,监听渲染请求。当所述呼应进程监听到渲染请求后,提交渲染请求。
当所述渲染监听进程接收到渲染请求后,建立一个独立的线程,专门负责该游戏后续的渲染流程。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上对本发明实施例提供的阅读源订阅方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种安卓软件模拟方法,用于具有显示芯片的X86架构设备,该方法包括以下步骤:
通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能、仅适用于ARM架构设备的系统服务及应用;
将安卓软件的图像数据转发给显示芯片;
通过所述显示芯片渲染所述图像数据。
2.如权利要求1所述的安卓软件模拟方法,其特征在于,在通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用的步骤中还包括以下步骤:
当所述虚拟机开启时,运行优化的安卓系统镜像;
当所述安卓软件已经安装在所述虚拟机中时,启动所述安卓软件;
获取所述安卓软件的渲染请求;
提交所述渲染请求;
将所述安卓软件的渲染请求转换为所述X86架构设备可以识别的渲染指令;
通过所述X86架构设备的显示芯片渲染所述安卓软。
3.如权利要求2所述的安卓软件模拟方法,其特征在于,在运行优化的安卓系统镜像的步骤之前还包括:获取安卓软件的发布包;
进行所述发布包解析;
显示所述安卓软件的启动项;
获取所述安卓软件的启动指令。
4.如权利要求2所述的安卓软件模拟方法,其特征在于,在所述当所述虚拟机开启时,运行优化的安卓系统镜像的步骤之前还包括以下步骤:
判断所述虚拟机是否开启。
5.如权利要求2所述的安卓软件模拟方法,其特征在于,在当所述安卓软件已经安装在所述虚拟机中时,启动所述安卓软件的步骤之前还包括以下步骤:
检测所述安卓软件是否已经安装在所述虚拟机中。
6.如权利要求2所述的安卓软件模拟方法,其特征在于,在当所述安卓软件已经安装在所述虚拟机中时,启动所述安卓软件的步骤之后还包括以下步骤:
调用arm指令;
转换所述arm指令为x86指令。
7.一种安卓软件模拟装置,用于具有显示芯片的X86架构设备,该装置包括:
系统模拟模块,通过虚拟机运行优化的安卓系统镜像,所述优化的安卓系统镜像已删除电话功能及仅适用于ARM架构设备的系统服务及应用;
转发模块,用于将安卓软件的图像数据转发给显示芯片;
渲染模块,用于通过所述显示芯片渲染所述图像数据。
8.如权利要求7所述的安卓软件模拟装置,其特征在于,所述系统模拟模块包括:
获取模块,用于获取安卓软件的发布包;
所述解析模块,用于进行所述发布包解析;
显示模块,用于显示所述安卓软件的启动项;
启动模块,用于获取所述安卓软件的启动指令;
虚拟机检测模块,用于判断所述虚拟机是否开启;
运行模块,用于运行优化的安卓系统镜像;
软件检测模块,用于检测所述安卓软件是否已经安装在所述虚拟机中:
软件启动模块,用于启动所述安卓软件。
9.如权利要求7所述的安卓软件模拟装置,其特征在于,所述转发模块还包括:
软件侧监听模块,用于获取所述安卓软件的渲染请求;
渲染请求提交模块,用于提交将所述渲染请求;
所述渲染模块包括:
渲染转化模块,将接收到的所述渲染请求转换为所述X86架构设备可以识别的渲染指令;
渲染子模块,用于通过所述X86架构设备的显示芯片渲染所述安卓软件。
10.如权利要求7所述的安卓软件模拟装置,其特征在于,所述安卓软件模拟装置还包括:
指令集调用模块,用于调用arm指令;
指令集转化模块,用于转换所述arm指令为x86指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410029397.7A CN103777999A (zh) | 2014-01-09 | 2014-01-09 | 安卓软件模拟方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410029397.7A CN103777999A (zh) | 2014-01-09 | 2014-01-09 | 安卓软件模拟方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103777999A true CN103777999A (zh) | 2014-05-07 |
Family
ID=50570276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410029397.7A Pending CN103777999A (zh) | 2014-01-09 | 2014-01-09 | 安卓软件模拟方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103777999A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142852A (zh) * | 2014-08-04 | 2014-11-12 | 福州靠谱网络有限公司 | 在电脑上实现安卓模拟器图形加速方法 |
CN104740872A (zh) * | 2015-04-13 | 2015-07-01 | 北京奇虎科技有限公司 | 模拟安卓环境中游戏程序运行控制方法及装置 |
WO2015196756A1 (zh) * | 2014-06-25 | 2015-12-30 | 中兴通讯股份有限公司 | 一种运行应用程序的方法及设备 |
CN105260190A (zh) * | 2015-10-30 | 2016-01-20 | 北京奇艺世纪科技有限公司 | 基于安卓系统分发技术的安卓应用的运行方法和系统 |
CN105550017A (zh) * | 2015-12-11 | 2016-05-04 | 北京奇虎科技有限公司 | 针对应用进行虚拟输入控制的方法、装置及系统 |
CN105700936A (zh) * | 2016-01-14 | 2016-06-22 | 福州靠谱网络有限公司 | 一种安卓模拟器应用程序运行方法和装置 |
CN105930188A (zh) * | 2016-04-22 | 2016-09-07 | 厦门芯鸽信息科技有限公司 | 一种单移动设备虚拟多个移动设备的方法 |
CN106339256A (zh) * | 2015-07-06 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 用于自动分配模拟器的方法及装置 |
CN106445630A (zh) * | 2016-08-10 | 2017-02-22 | 北京奇虎科技有限公司 | Android模拟器及实现Android模拟器的方法 |
CN106503546A (zh) * | 2016-09-22 | 2017-03-15 | 山东浪潮商用系统有限公司 | 一种安卓应用程序的检测筛选方法 |
CN107346287A (zh) * | 2017-07-20 | 2017-11-14 | 广东艾檬电子科技有限公司 | 一种题库应用程序测试方法、终端及模拟器 |
CN107741863A (zh) * | 2017-10-08 | 2018-02-27 | 深圳市星策网络科技有限公司 | 一种显卡的驱动方法和装置 |
CN112667361A (zh) * | 2020-12-31 | 2021-04-16 | 北京北信源软件股份有限公司 | 基于系统虚拟机的管理方法、装置、电子设备及存储介质 |
CN112967171A (zh) * | 2021-03-15 | 2021-06-15 | 深圳市瑞驰信息技术有限公司 | 一种基于arm架构实现gpu虚拟化的系统及方法 |
CN113220300A (zh) * | 2021-04-29 | 2021-08-06 | 麒麟软件有限公司 | 一种应用于Android系统x86架构上的ARM指令集转换方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019764A (zh) * | 2012-11-15 | 2013-04-03 | 深圳市宜搜科技发展有限公司 | Andriod资源包可安装性的检测方法及系统 |
US20130290982A1 (en) * | 2012-04-30 | 2013-10-31 | David Beilis | Method for Simulating Screen Sharing for Multiple Applications Running Concurrently on a Mobile Platform |
-
2014
- 2014-01-09 CN CN201410029397.7A patent/CN103777999A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290982A1 (en) * | 2012-04-30 | 2013-10-31 | David Beilis | Method for Simulating Screen Sharing for Multiple Applications Running Concurrently on a Mobile Platform |
CN103019764A (zh) * | 2012-11-15 | 2013-04-03 | 深圳市宜搜科技发展有限公司 | Andriod资源包可安装性的检测方法及系统 |
Non-Patent Citations (2)
Title |
---|
佚名: "让Android模拟器实现真机一样速度", 《HTTP://MOBILE.51CTO.COM/HOT-425211.HTM》 * |
手机数码,虚拟模拟: "使用 VirtualBox 虚拟机在电脑上运行 Android 4.0 系统,让电脑瞬间变安卓平板", 《HTTP://WWW.IPLAYSOFT.COM/ANDROID-V4-ICS-FOR-VIRTUALBOX.HTML》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015196756A1 (zh) * | 2014-06-25 | 2015-12-30 | 中兴通讯股份有限公司 | 一种运行应用程序的方法及设备 |
CN104142852A (zh) * | 2014-08-04 | 2014-11-12 | 福州靠谱网络有限公司 | 在电脑上实现安卓模拟器图形加速方法 |
CN104740872B (zh) * | 2015-04-13 | 2018-06-19 | 北京奇虎科技有限公司 | 模拟安卓环境中游戏程序运行控制方法及装置 |
CN104740872A (zh) * | 2015-04-13 | 2015-07-01 | 北京奇虎科技有限公司 | 模拟安卓环境中游戏程序运行控制方法及装置 |
CN106339256B (zh) * | 2015-07-06 | 2019-12-03 | 阿里巴巴集团控股有限公司 | 用于自动分配模拟器的方法及装置 |
CN106339256A (zh) * | 2015-07-06 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 用于自动分配模拟器的方法及装置 |
CN105260190A (zh) * | 2015-10-30 | 2016-01-20 | 北京奇艺世纪科技有限公司 | 基于安卓系统分发技术的安卓应用的运行方法和系统 |
CN105550017A (zh) * | 2015-12-11 | 2016-05-04 | 北京奇虎科技有限公司 | 针对应用进行虚拟输入控制的方法、装置及系统 |
CN105700936A (zh) * | 2016-01-14 | 2016-06-22 | 福州靠谱网络有限公司 | 一种安卓模拟器应用程序运行方法和装置 |
CN105930188B (zh) * | 2016-04-22 | 2018-11-23 | 厦门芯鸽信息科技有限公司 | 一种单移动设备虚拟多个移动设备的方法 |
CN105930188A (zh) * | 2016-04-22 | 2016-09-07 | 厦门芯鸽信息科技有限公司 | 一种单移动设备虚拟多个移动设备的方法 |
CN106445630A (zh) * | 2016-08-10 | 2017-02-22 | 北京奇虎科技有限公司 | Android模拟器及实现Android模拟器的方法 |
US20190087212A1 (en) * | 2016-08-10 | 2019-03-21 | Beijing Qihoo Technology Company Limited | Android simulator and method for implementing android simulator |
CN106503546A (zh) * | 2016-09-22 | 2017-03-15 | 山东浪潮商用系统有限公司 | 一种安卓应用程序的检测筛选方法 |
CN107346287A (zh) * | 2017-07-20 | 2017-11-14 | 广东艾檬电子科技有限公司 | 一种题库应用程序测试方法、终端及模拟器 |
CN107741863A (zh) * | 2017-10-08 | 2018-02-27 | 深圳市星策网络科技有限公司 | 一种显卡的驱动方法和装置 |
CN112667361A (zh) * | 2020-12-31 | 2021-04-16 | 北京北信源软件股份有限公司 | 基于系统虚拟机的管理方法、装置、电子设备及存储介质 |
CN112667361B (zh) * | 2020-12-31 | 2023-10-17 | 北京北信源软件股份有限公司 | 基于系统虚拟机的管理方法、装置、电子设备及存储介质 |
CN112967171A (zh) * | 2021-03-15 | 2021-06-15 | 深圳市瑞驰信息技术有限公司 | 一种基于arm架构实现gpu虚拟化的系统及方法 |
CN113220300A (zh) * | 2021-04-29 | 2021-08-06 | 麒麟软件有限公司 | 一种应用于Android系统x86架构上的ARM指令集转换方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103777999A (zh) | 安卓软件模拟方法及装置 | |
CN104740872B (zh) | 模拟安卓环境中游戏程序运行控制方法及装置 | |
CN106844066B (zh) | 一种应用运行方法、装置及系统 | |
US20220053068A1 (en) | Methods, apparatuses and computer storage media for applet state synchronization | |
US9451043B2 (en) | Remote virtualization of mobile apps | |
US8060560B2 (en) | System and method for pervasive computing | |
CN111541913B (zh) | 一种拼接屏的视频播放方法、装置、计算机设备和介质 | |
WO2022057722A1 (zh) | 程序试用方法、系统、装置、设备及介质 | |
US9699262B2 (en) | Integrated viewing of local and remote applications in various multiplatform environments | |
Haris et al. | Evolution of android operating system: a review | |
US20190129923A1 (en) | Method and appratus for playing video in independent window by browser, and storage medium | |
CN103516882B (zh) | 一种基于多屏互动场景图片播放方法及系统 | |
KR20140106838A (ko) | 스트리밍 기반의 게임 플랫폼을 이용한 클라우드 서비스 제공 장치 및 방법 | |
US20230285854A1 (en) | Live video-based interaction method and apparatus, device and storage medium | |
EP4119207A1 (en) | Vibration control method and apparatus, and electronic device and computer-readable storage medium | |
WO2024037110A1 (zh) | 数据处理方法、装置、设备以及介质 | |
CN114157907A (zh) | 基于云手机的vr应用设计方法及系统 | |
CN112354176A (zh) | 云游戏实现方法、云游戏实现装置、存储介质与电子设备 | |
CN114042310A (zh) | 游戏操作数据收集方法、装置、计算机设备及存储介质 | |
CN113778593B (zh) | 云桌面控制方法、装置、电子设备、存储介质及程序产品 | |
WO2024051148A1 (zh) | 云游戏控制方法、装置、电子设备及存储介质 | |
CN103701854A (zh) | 基于应用虚拟化的网络实时音频传输方法 | |
CN116233209A (zh) | 一种gpu云渲染服务远程管理调度方法 | |
KR20170105317A (ko) | 하드웨어 기반의 gpu를 이용한 가상머신의 화면 전송 방법 및 이를 이용한 장치 | |
US10514959B2 (en) | Distributed virtual local operating system stored in cloud and its method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140507 |
|
WD01 | Invention patent application deemed withdrawn after publication |