[发明专利]一种跨系统运行安卓应用的方法、终端及存储介质有效
申请号: | 201810069208.7 | 申请日: | 2018-01-24 |
公开(公告)号: | CN108170503B | 公开(公告)日: | 2022-04-12 |
发明(设计)人: | 黄源超;龙海;何家明;赖祖泽;周锐;吴智文;杜国阳;曹琛;谢宗祥 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F9/445 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 王姗姗;张颖玲 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明实施例公开了一种跨系统运行安卓应用的方法、终端及存储介质,该方法包括:接收启动跨系统运行安卓应用的引擎的指令,根据指令在视窗系统中执行引擎的启动操作;在引擎启动后的进程中,将安卓系统包括的安卓系统指令转换为等效的视窗系统指令;通过执行等效的视窗系统指令的方式运行安卓系统;解析待执行的安卓应用,得到安卓应用的可执行文件包括的指令;通过执行所解析到的指令的方式运行安卓应用;当解析到发起系统调用请求的指令时,执行针对引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作;其中,调用操作用于完成安卓应用通过系统调用请求所请求实现的功能。 | ||
搜索关键词: | 一种 系统 运行 应用 方法 终端 存储 介质 | ||
接收启动跨系统运行安卓应用的引擎的指令,根据所述指令在视窗系统中执行所述引擎的启动操作;
在所述引擎启动后的进程中,将所述安卓系统包括的安卓系统指令转换为等效的视窗系统指令;
通过执行所述等效的视窗系统指令的方式运行所述安卓系统;
解析待执行的安卓应用,得到所述安卓应用的可执行文件包括的指令;
通过执行所解析到的指令的方式运行所述安卓应用;
当解析到发起系统调用请求的指令时,执行针对所述引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作;
其中,所述调用操作用于完成所述安卓应用通过所述系统调用请求所请求实现的功能。
2.根据权利要求1所述的方法,其特征在于,所述在视窗系统中执行所述引擎的启动操作,包括:执行在所述视窗系统中启动对应所述引擎的窗体进程的操作,其中,所述窗体进程用于在所述视窗系统的窗体中显示所述安卓系统的运行界面、以及所述安卓应用的运行界面;
执行在所述窗体进程中启动所述引擎的常驻进程的操作。
3.根据权利要求1所述的方法,其特征在于,所述通过执行所述等效的视窗系统指令的方式运行所述安卓系统,包括:通过执行所述等效的视窗系统指令的方式执行以下操作:
在所述引擎的常驻进程中,加载所述引擎的安卓系统初始化进程到内存;
在所述安卓系统初始化进程中,运行所述安卓系统的启动进程和系统服务。
4.根据权利要求1所述的方法,其特征在于,所述将所述安卓系统包括的安卓系统指令转换为等效的视窗系统指令,包括:根据所述安卓系统包括的指令,查询所述安卓系统的指令集与所述视窗系统的指令集之间的转换库;
通过查询得到所述视窗系统的指令集中等效的指令。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:通过执行所述安卓应用的可执行文件包括的指令的方式,执行以下操作:
在所述安卓应用的用户态的进程中,通过安卓系统内核的系统调用接口,向所述引擎中实现的安卓系统内核发起所述系统调用请求,以及,
将系统调用号存储在寄存器中,所述系统调用号对应所述系统调用请求向所述安卓系统内核所请求调用的系统调用函数。
6.根据权利要求1所述的方法,其特征在于,所述执行针对所述引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作,包括:在所述引擎中实现的安卓系统内核中,将所述安卓应用的进程从用户态切换到内核态,从寄存器中读取系统调用号,并根据所述系统调用号调用所述安卓系统内核中对应的系统调用函数;
在所述系统调用函数的执行过程中,调用所述系统调用函数对应的安卓系统内核功能,并将系统调用结果存储到寄存器;
将所述安卓应用的进程从内核态切换到用户态。
7.根据权利要求1至4、或6任一项所述的方法,其特征在于,所述方法还包括:当所述系统调用请求所请求实现的功能完成时,在所述引擎中实现的安卓系统内核中,将所述安卓应用的进程从内核态返回用户态;
在所述安卓应用的用户态的进程中,从寄存器读取系统调用结果。
8.根据权利要求1至4、或6任一项所述的方法,其特征在于,所述在视窗系统中执行所述引擎的启动操作,包括:在所述视窗系统中启动实现所述引擎的运行于用户态的进程,或者,
在所述视窗系统中启动实现所述引擎的运行于内核态的内核驱动程序。
9.根据权利要求1至4、或6任一项所述的方法,其特征在于,所述方法还包括:在所述引擎的窗体进程中显示的所述安卓应用的界面,接收对应所述安卓应用的操作;
当响应所述操作需要使用安卓系统内核功能时,通过所述引擎中实现的安卓系统内核的系统调用接口,发起与所述安卓系统内核功能对应的所述系统调用请求。
10.根据权利要求1至4、或6任一项所述的方法,其特征在于,所述方法还包括:当所述系统调用结果表示系统调用请求成功时,在所述窗体进程中显示所述系统调用请求的响应界面。
11.一种终端,其特征在于,设置有引擎,所述引擎包括:进程单元,用于接收启动跨系统运行安卓应用的引擎的指令,根据所述指令在视窗系统中执行所述引擎的启动操作;
视窗/安卓单元,用于在所述引擎的进程中,将所述安卓系统包括的安卓系统指令转换为等效的视窗系统指令;通过执行所述等效的视窗系统指令的方式运行所述安卓系统;解析待执行的安卓应用,得到所述安卓应用的可执行文件包括的指令;通过执行所解析到的指令的方式运行所述安卓应用;
安卓核心功能单元,用于当所述视窗/安卓单元解析到发起系统调用请求的指令时,执行针对所述引擎中实现的系统调用函数、以及实现的安卓系统内核功能的调用操作;其中,所述调用操作用于完成所述安卓应用通过所述系统调用请求所请求实现的功能。
12.根据权利要求11所述的终端,其特征在于,所述进程单元包括:窗体进程单元,用于执行在所述视窗系统中对应所述引擎的窗体进程的操作,所述窗体进程用于在所述视窗系统的窗体中显示所述安卓系统的运行界面、以及所述安卓应用的运行界面;执行在所述窗体进程中启动所述引擎的常驻进程的操作;及在所述引擎的窗体进程中显示的所述安卓应用的界面,接收对应所述安卓应用的操作;以及所述系统调用结果表示系统调用请求成功时,在所述窗体进程中显示所述系统调用请求的响应界面。
13.根据权利要求11所述的终端,其特征在于,所述进程单元包括:常驻进程单元,用于通过执行所述等效的视窗系统指令的方式执行以下操作:在所述引擎的常驻进程中,加载所述引擎的安卓系统初始化进程到内存;以及在所述安卓系统初始化进程中,运行所述安卓系统的启动进程和系统服务。
14.根据权利要求11至13任一项所述的终端,其特征在于,所述视窗/安卓单元,用于根据所述安卓系统包括的指令,查询所述安卓系统的指令集与所述视窗系统的指令集之间的转换库;通过查询得到所述视窗系统的指令集中等效的指令;及通过执行所述安卓应用的可执行文件包括的指令的方式执行以下操作:在所述安卓应用的用户态的进程中,通过安卓系统内核的系统调用接口,向所述引擎中实现的安卓系统内核发起所述系统调用请求,以及,将系统调用号存储在寄存器中,所述系统调用号对应所述系统调用请求向所述安卓
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810069208.7/,转载请声明来源钻瓜专利网。