一种跨系统运行安卓应用的方法、终端及存储介质技术方案

技术编号:18237552 阅读:55 留言:0更新日期:2018-06-17 00:41
本发明专利技术实施例公开了一种跨系统运行安卓应用的方法、终端及存储介质,该方法包括:接收启动跨系统运行安卓应用的引擎的指令,根据指令在视窗系统中执行引擎的启动操作;在引擎启动后的进程中,将安卓系统包括的安卓系统指令转换为等效的视窗系统指令;通过执行等效的视窗系统指令的方式运行安卓系统;解析待执行的安卓应用,得到安卓应用的可执行文件包括的指令;通过执行所解析到的指令的方式运行安卓应用;当解析到发起系统调用请求的指令时,执行针对引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作;其中,调用操作用于完成安卓应用通过系统调用请求所请求实现的功能。 1

A method, terminal and storage medium for running Android applications across systems

An embodiment of the invention discloses a method, a terminal and a storage medium for running a Android application across a system. The method includes receiving the instructions of an engine running a Android application across the system and executing the engine starting operation in the window system according to the instruction; the Android system includes the Android in the process of the engine after the engine is started. The system instruction is converted to the equivalent window system instruction; the Android system is run by executing the equivalent window system instruction; the Android application to be executed is parsed and the executable files of the Android application include the instructions; run the Android application by executing the parsed instructions; when parsed to the initiating system, the system is parsed. When the requested instruction is used, the system call function implemented in the engine and the invoking operation of the implemented Android system kernel function are performed; in which the call operation is used to complete the function of the Android application to be implemented through the request of the system call request. One

【技术实现步骤摘要】
一种跨系统运行安卓应用的方法、终端及存储介质
本专利技术涉及电数字数据处理技术,尤其涉及一种跨系统运行安卓应用的方法、终端及存储介质。
技术介绍
安卓(Android)系统由于其开源性发展迅速,各大手机厂商纷纷投入生产、设计并开发自己的安卓系统,目前安卓系统已经超越iOS系统成为全球最有影响力的系统。随着人们每天用手机消遣娱乐的时间越来越多,由于不同手机本身的局限性,以及不同手机的性能、电池、散热等方面的影响,使用手机进行应用时,往往不能达到最佳的应用性能和效果。因此,把安卓系统移植到具有更高硬件配置的设备如个人电脑(PC,PersonalComputer)的视窗(Windows)系统中运行,利用高配置的个人电脑来运行安卓游戏等安卓应用的需求应运而生。相关技术通常采用各种虚拟化技术在视窗系统中虚拟安卓系统,从而实现在虚拟的安卓系统中运行安卓应用的目的,但是利用虚拟化技术跨系统运行安卓应用时,在兼容性和执行效率上都与在安卓系统中直接运行安卓应用存在明显的差距,同时也导致挤占了设备的大量硬件资源(例如CPU和内存)。
技术实现思路
为解决上述技术问题,本专利技术实施例期望提供一种跨系统运行安卓应用的方法、终端及存储介质,能够以良好的兼容性和效率跨系统运行安卓应用。本专利技术实施例的技术方案是这样实现的:本专利技术实施例提供了一种跨系统运行安卓应用的方法,包括:接收启动跨系统运行安卓应用的引擎的指令,根据所述指令在视窗系统中执行所述引擎的启动操作;在所述引擎启动后的进程中,将所述安卓系统包括的安卓系统指令转换为等效的视窗系统指令;通过执行所述等效的视窗系统指令的方式运行所述安卓系统;解析待执行的安卓应用,得到所述安卓应用的可执行文件包括的指令;通过执行所解析到的指令的方式运行所述安卓应用;当解析到发起系统调用请求的指令时,执行针对所述引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作;其中,所述调用操作用于完成所述安卓应用通过所述系统调用请求所请求实现的功能。本专利技术实施例提供了一种终端,设置有引擎,所述引擎包括:进程单元,用于接收启动跨系统运行安卓应用的引擎的指令,根据所述指令在视窗系统中执行所述引擎的启动操作;视窗/安卓单元,用于在所述引擎的进程中,将所述安卓系统包括的安卓系统指令转换为等效的视窗系统指令;通过执行所述等效的视窗系统指令的方式运行所述安卓系统;解析待执行的安卓应用,得到所述安卓应用的可执行文件包括的指令;通过执行所解析到的指令的方式运行所述安卓应用;安卓核心功能单元,用于当所述视窗/安卓单元解析到发起系统调用请求的指令时,执行针对所述引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作;其中,所述调用操作用于完成所述安卓应用通过所述系统调用请求所请求实现的功能。本专利技术实施例提供了一种计算机可读存储介质,存储有可执行指令,用于引起一个或多个处理器执行所述的跨系统运行安卓应用的方法。本专利技术实施例具有以下有益效果:在引擎中执行安卓系统指令到视窗系统指令的转换,并通过执行转换得到的视窗系统指令的方式运行安卓系统,从视窗系统的指令执行的层面实现安卓系统和安卓应用,这种底层的实现方式相较于相关技术在视窗系统中虚拟安卓系统效率更高,还降低了硬件资源的要求;在引擎中利用自实现的系统调用和安卓系统内核来完成安卓应用的系统调用请求,由于不需要依赖于第三方库,相较于相关技术提供的虚拟化方案,克服了对第三方库的依赖,因而能够在各种版本的视窗系统中运行安卓应用,具有良好的兼容性。附图说明图1为本专利技术实施例提供的示例性的系统调用的示例图;图2-A为本专利技术实施例提供的具有视窗系统的终端的内部结构示意图;图2-B为本专利技术实施例提供的具有视窗系统的终端的内部结构示意图;图2-C为本专利技术实施例提供的具有视窗系统的终端的内部结构示意图;图3为本专利技术实施例提供的引擎的模块结构示意图;图4为本专利技术实施例提供的跨系统运行安卓应用的方法的流程图;图5为本专利技术实施例提供的系统调用的示例图;图6为本专利技术实施例提供的安卓系统启动的示例图;图7为本专利技术实施例提供的引擎的结构图;图8为本专利技术实施例提供的用户态和内核态的特权权限级别分布图;图9为本专利技术实施例提供的系统调用的示例图;图10为本专利技术实施例提供的服务器与终端进行信息交互的硬件实体系统架构图;图11为本专利技术实施例提供的终端的显示界面示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,根据本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。除非另有定义,本文所使用的所有的技术和科学术语与属于本专利技术的
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本专利技术。对本专利技术进行进一步详细说明之前,对本专利技术实施例中涉及的名词和术语进行说明,本专利技术实施例中涉及的名词和术语适用于如下的解释。1)跨系统,本文中指安卓系统的原生应用(下文中简称为安卓应用)在区别于安卓(Android)系统的视窗系统运行,其中,安卓系统内核基于Linux内核实现,视窗系统使用微软视窗新技术(WindowsNT,MicrosoftWindowsNewTechnology)内核,例如:Windows7、Windows8和Windows10等各种发行版本,提供32位平坦寻址,使用32位指令集,具有高安全性和对精简指令集(RISC,ReducedInstructionSetComputer)机器的可移植性。2)用户态,当安卓应用的进程在执行安卓系统自身的代码时,称进程处于用户运行态(简称为用户态),进程此时处于最低特权级别(例如在安卓系统中为ring3);运行于用户态的进程可以执行的操作和访问的资源都会受到限制,一般地,进程默认运行于用户态,进程在通常情况下不允许访问内核数据,也无法使用Linux内核功能,只能在用户空间操作用户数据,调用用户空间函数,当一些操作需要使用安卓系统的安卓系统内核功能,例如内存管理、驱动程序、驱动程序和输入/输出(I/O)管理等时,进程会从用户态切换到内核态并陷入内核代码去执行,这个切换过程称为进程陷入(Trap)内核态。3)内核态,当安卓应用的进程通过发起系统调用请求而陷入内核代码中执行时,称进程处于内核运行态(简称为内核态),进程此时处于最高特权级别(例如在安卓系统中为ring0),当进程处于内核态时,由Linux内核为进程在执行系统调用函数,内核态的进程可以执行任何操作并且在资源的使用上没有限制。4)系统调用请求,安卓应用中用于调用系统调用接口的指令,也称为系统调用指令,例如图1中用户态的进程执行了调用系统调用接口abc()的指令,安卓应用的进程在陷入内核态之前,会通过向寄存器存储系统调用函数的参数(包括系统调用号)的方式,向内核态以声明需要调用的系统调用函数,例如图1中用户态的进程执行了调用系统调用接口abc()的指令之前,会将eax寄存器的值置为需要调用的系统调用函数对应的系统调用号。5)系统调用接口(SystemCallInterface),安卓系统内核中开放给安卓应用发起系统调用请求的统一入口,通过向寄存器存入系统调用函本文档来自技高网
...
一种跨系统运行安卓应用的方法、终端及存储介质

【技术保护点】
1.一种跨系统运行安卓应用的方法,其特征在于,包括:

【技术特征摘要】
1.一种跨系统运行安卓应用的方法,其特征在于,包括:接收启动跨系统运行安卓应用的引擎的指令,根据所述指令在视窗系统中执行所述引擎的启动操作;在所述引擎启动后的进程中,将所述安卓系统包括的安卓系统指令转换为等效的视窗系统指令;通过执行所述等效的视窗系统指令的方式运行所述安卓系统;解析待执行的安卓应用,得到所述安卓应用的可执行文件包括的指令;通过执行所解析到的指令的方式运行所述安卓应用;当解析到发起系统调用请求的指令时,执行针对所述引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作;其中,所述调用操作用于完成所述安卓应用通过所述系统调用请求所请求实现的功能。2.根据权利要求1所述的方法,其特征在于,所述在视窗系统中执行所述引擎的启动操作,包括:执行在所述视窗系统中启动对应所述引擎的窗体进程的操作,其中,所述窗体进程用于在所述视窗系统的窗体中显示所述安卓系统的运行界面、以及所述安卓应用的运行界面;执行在所述窗体进程中启动所述引擎的常驻进程的操作。3.根据权利要求1所述的方法,其特征在于,所述通过执行所述等效的视窗系统指令的方式运行所述安卓系统,包括:通过执行所述等效的视窗系统指令的方式执行以下操作:在所述引擎的常驻进程中,加载所述引擎的安卓系统初始化进程到内存;在所述安卓系统初始化进程中,运行所述安卓系统的启动进程和系统服务。4.根据权利要求1所述的方法,其特征在于,所述将所述安卓系统包括的安卓系统指令转换为等效的视窗系统指令,包括:根据所述安卓系统包括的指令,查询所述安卓系统的指令集与所述视窗系统的指令集之间的转换库;通过查询得到所述视窗系统的指令集中等效的指令。5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:通过执行所述安卓应用的可执行文件包括的指令的方式,执行以下操作:在所述安卓应用的用户态的进程中,通过安卓系统内核的系统调用接口,向所述引擎中实现的安卓系统内核发起所述系统调用请求,以及,将系统调用号存储在寄存器中,所述系统调用号对应所述系统调用请求向所述安卓系统内核所请求调用的系统调用函数。6.根据权利要求1所述的方法,其特征在于,所述执行针对所述引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作,包括:在所述引擎中实现的安卓系统内核中,将所述安卓应用的进程从用户态切换到内核态,从寄存器中读取系统调用号,并根据所述系统调用号调用所述安卓系统内核中对应的系统调用函数;在所述系统调用函数的执行过程中,调用所述系统调用函数对应的安卓系统内核功能,并将系统调用结果存储到寄存器;将所述安卓应用的进程从内核态切换到用户态。7.根据权利要求1至4、或6任一项所述的方法,其特征在于,所述方法还包括:当所述系统调用请求所请求实现的功能完成时,在所述引擎中实现的安卓系统内核中,将所述安卓应用的进程从内核态返回用户态;在所述安卓应用的用户态的进程中,从寄存器读取系统调用结果。8.根据权利要求1至4、或6任一项所述的方法,其特征在于,所述在视窗系统中执行所述引擎的启动操作,包括:在所述视窗系统中启动实现所述引擎的运行于用户态的进程,或者,在所述视窗系统中启动实现所述引擎的运行于内核态的内核驱动程序。9.根据权利要求1至4、或6任一项所述的方法,其特征在于,所述方法还包括:在所述引擎的窗体进程中显示的所述安卓应用的界面,接收对应所述安卓应用的操作;当响应所述操作需要使用安卓系统内核功能时,通过所述引擎中实现的安卓系统内核的系统调用接口,发起与所述安卓系统内核功能对...

【专利技术属性】
技术研发人员:黄源超龙海何家明赖祖泽周锐吴智文杜国阳曹琛谢宗祥
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1