本发明专利技术公开了一种应用程序的运行方法、模拟器、宿主机及系统,属于计算机领域。所述方法包括:获取模拟器中的应用程序对应的模拟器原语;将模拟器原语转换为对应的宿主机原语,并将宿主机原语发送给宿主机,以便宿主机执行宿主机原语。所述模拟器包括:获取模块、转换模块和发送模块。所述方法包括:接收模拟器在获取模拟器原语后将模拟器原语进行转换得到的宿主机原语;执行接收到的宿主机原语。所述宿主机包括:接收模块和执行模块。所述系统包括:模拟器和宿主机。本发明专利技术通过获取模拟器原语,将模拟器原语转换为宿主机原语并发送给宿主机直接执行,达到了降低应用程序在运行过程中的系统损耗、提高应用程序运行效率的效果。
【技术实现步骤摘要】
本专利技术涉及计算机领域,特别涉及一种应用程序的运行方法、模拟器、宿主机及系 统。
技术介绍
随着计算机技术的发展,出现了不同的计算机系统架构,应用程序在每种计算机 系统架构下运行时,都需要当前计算机系统架构执行对应的机器指令,但由于不同系统架 构上可执行的机器指令不同,从而造成了应用程序的不通用性。如ARM (Advanced RISC Machines,微处理器)架构中的应用程序无法在X86系统中直接运行。为了解决应用程序的不通用性问题,现有技术在运行应用程序时,采用模拟器的 方式,通过模拟(仿真)技术来运行原本不能在当前宿主机上运行的应用程序。其工作原 理是首先进行系统调用,即由模拟器先获取应用程序的模拟器原语,根据该模拟器原语加 载相应模拟器动态链接库中的指令集合,此时的指令集合为模拟器指令集合,一条模拟器 原语对应多条模拟器指令;模拟器将该模拟器指令集合转换为宿主机指令集合,然后发送 给宿主机,由宿主机执行转换后的宿主机指令集合,从而实现在不同架构中运行应用程序 的目的。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下缺点现有技术中的应用程序在运行时,由于模拟器原语对应多条模拟器指令,因此将 模拟器指令转换为宿主机指令需要耗费大量的系统资源,从而使系统损耗非常大,导致应 用程序运行的效率较真实的系统有了大幅度的降低,使得用户体验较差。
技术实现思路
本专利技术实施例提供了一种应用程序的运行方法、模拟器、宿主机及系统。解决了现 有技术中应用程序在运行过程中的系统损耗较大,应用程序的运行效率不高的问题,所述 技术方案如下—方面,本专利技术实施例提供了一种应用程序的运行方法,所述方法包括获取模拟器中的应用程序对应的模拟器原语;将所述模拟器原语转换为对应的宿主机原语,并将所述宿主机原语发送给宿主 机,以便所述宿主机执行所述宿主机原语。另一方面,本专利技术实施例提供了一种模拟器,所述模拟器包括获取模块,用于获取所述模拟器中的应用程序对应的模拟器原语;转换模块,用于将所述获取模块获取的所述模拟器原语转换为对应的宿主机原 语;发送模块,用于将所述转换模块转换得到的所述宿主机原语发送给宿主机,以便 所述宿主机执行所述宿主机原语。另一方面,本专利技术实施例还提供了一种应用程序的运行方法,所述方法包括接收模拟器在获取模拟器原语后将所述模拟器原语进行转换得到的宿主机原 语;执行接收到的所述宿主机原语。另一方面,本专利技术实施例还提供了一种宿主机,所述宿主机包括接收模块,用于接收模拟器在获取模拟器原语后将所述模拟器原语进行转换得到 的宿主机原语;执行模块,用于执行所述接收模块接收的所述宿主机原语。另一方面,本专利技术实施例还提供了一种应用程序的运行系统,所述系统包括模拟 器和宿主机所述模拟器如上述模拟器,所述宿主机如上述宿主机。本专利技术实施例提供的技术方案的有益效果是通过启动模拟器中的应用程序并获取模拟器原语,将模拟器原语转换为宿主机原 语并发送给宿主机,由宿主机执行该宿主机原语,减少了从模拟器指令集合向宿主机指令 集合转换的过程,由于只进行了一次原语的转换和传递,从而降低应用程序在运行过程中 的系统损耗,提高应用程序运行的效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。图1是本专利技术实施例一提供的应用程序的运行方法流程图;图2是本专利技术实施例二提供的应用程序的运行方法流程图;图3是本专利技术实施例三提供的第一种模拟器结构示意图;图4是本专利技术实施例三提供的第二种模拟器结构示意图;图5是本专利技术实施例三提供的第三种模拟器结构示意图;图6是本专利技术实施例四提供的第一种宿主机结构示意图;图7是本专利技术实施例四提供的第二种宿主机结构示意图;图8是本专利技术实施例五提供的应用程序的运行系统结构示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方 式作进一步地详细描述。实施例一参见图1,本专利技术实施例提供了一种应用程序的运行方法,该方法流程具体如下101 获取模拟器中的应用程序对应的模拟器原语;具体地,先启动模拟器中的应用程序,可以在应用程序启动时或者应用程序运行 的过程中获取应用程序对应的模拟器原语。102 将该模拟器原语转换为对应的宿主机原语;针对该步骤,在将该模拟器原语转换为对应的宿主机原语之前,先判断该模拟器 原语是否能转换为宿主机原语,如果能,则执行将该模拟器原语转换为对应的宿主机原语 的步骤。判断的方式为将该模拟器原语与原语匹配表进行匹配如果该模拟器原语与原语匹配表相匹配,则判断该模拟器原语能转换为宿主机原 语;如果该模拟器原语与原语匹配表不相匹配,则判断该模拟器原语不能转换为宿主 机原语。其中,将能转换的模拟器原语转换为对应的宿主机原语,转换的具体方式为将模 拟器坐标系转换为宿主机坐标系,根据该宿主机坐标系对模拟器原语中的参数进行修改, 得到宿主机原语。103 将该宿主机原语发送给宿主机,以便宿主机执行该宿主机原语。进一步地,在宿主机执行该宿主机原语之后,还接收宿主机发送的返回值,该返回 值是由宿主机接收到宿主机原语,并根据宿主机原语加载宿主机动态链接库中对应的宿主 机指令集合后,执行该宿主机指令集合而得到的。本专利技术实施例提供的方法,通过启动模拟器中的应用程序并获取模拟器原语,将 模拟器原语转换为宿主机原语并发送给宿主机,由宿主机执行该宿主机原语,减少了从模 拟器指令集合向宿主机指令集合转换的过程,由于只进行了一次原语的转换和传递,从而 降低应用程序在运行过程中的系统损耗,提高应用程序运行的效率。实施例二本专利技术实施例提供了一种应用程序的运行方法,由于应用程序运行的过程当中需 要执行原语,在不同架构的系统中,有很大一部分的原语是相同的,或是可以简单转换的, 如绘图中的绘制点、线、矩形等的原语,在不同架构下的命令及参数有可能是一致的。由此, 本专利技术通过模拟器在获取应用程序的模拟器原语后,经过简单的转换发送给宿主机,由宿 主机执行该宿主机原语,可大幅减少模拟器指令集合转换的系统消耗。参见图2,方法流程 具体如下201 获取模拟器中的应用程序对应的模拟器原语,并判断该模拟器原语是否能转 换为宿主机原语;具体地,先启动模拟器中的应用程序,可以在应用程序启动时或者应用程序运行 的过程中获取应用程序对应的模拟器原语。本专利技术实施例不对获取模拟器原语的方式进行 具体限定,可在模拟器启动模拟器中的应用程序后,通过调用模拟器动态链接库,获取模拟 器原语。模拟器获取到该模拟器原语后,根据该模拟器原语与原语匹配表判断该模拟器原 语是否能转换为宿主机原语如果该模拟器原语与原语匹配表相匹配,则判断该模拟器原语能转换为宿主机原 语;如果该模拟器原语与原语匹配表不相匹配,则判断该模拟器原语不能转换为宿主 机原语。当该模拟器原语能转换为宿主机原语时,按照本专利技术实施例的后续步骤对其进行处理。当该模拟器原语不能转换为宿主机原语时,加载模拟器动态链接库中对应的指令集合,将该模拟器原语对应的指令集合转换为宿主机指令集合,由宿主机直接执行该宿主 机本文档来自技高网...
【技术保护点】
1.一种应用程序的运行方法,其特征在于,所述方法包括:获取模拟器中的应用程序对应的模拟器原语;将所述模拟器原语转换为对应的宿主机原语,并将所述宿主机原语发送给宿主机,以便所述宿主机执行所述宿主机原语。
【技术特征摘要】
【专利技术属性】
技术研发人员:秦晋,薛传颂,谢军安,黄晨,郁明星,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:94
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。