一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

跨操作系统的调用方法、装置及电子设备与流程

2022-12-21 19:14:29 来源:中国专利 TAG:
1.本公开涉及操作系统
技术领域
:,尤其涉及一种跨操作系统的调用方法、装置、电子设备,以及非临时性计算机可读存储介质。
背景技术
::2.设备的操作系统具有多样性,对于同一设备具有多个操作系统时,不同的操作系统之间的交互,由于需要跨操作系统进行通信,因此存在极大的障碍。例如,电子设备a具有安卓操作系统和linux操作系统,因此,安卓操作系统和linux操作系统之间就无法进行底层硬件设备的调用。3.因此,亟需一种能够跨操作系统的调用方式,实现不同操作系统之间的资源的调用。技术实现要素:4.本公开提供一种跨操作系统的调用方法、装置及电子设备,以及非临时性计算机可读存储介质,以至少解决相关技术中跨操作系统的资源调用问题。本公开的技术方案如下:5.根据本公开实施例的第一方面,提供一种跨操作系统的调用方法,包括:接收第一操作系统之中应用程序的第一调用指令,其中,所述第一调用指令与针对所述第一操作系统的第一接口对应;获取所述第一接口所对应的针对第二操作系统的第二接口,以及所述第二接口对应的目标文件;对所述目标文件之中的进程地址进行修改,以将所述进程地址修改为异构计算引擎的返回地址;执行所述修改之后的目标文件,并将所述返回地址接收到的所述目标文件的第二返回结果生成第一返回结果并发送至所述第一操作系统之中的应用程序。6.在本公开的一个实施例之中,所述确定所述第二接口对应的目标文件,包括:获取所述第二接口对应的动态共享库;获取所述动态共享库所对应的目标文件。7.在本公开的一个实施例之中,所述获取所述第一接口所对应的针对第二操作系统的第二接口,包括:获取所述第一调用指令对应的第一进程地址,其中,所述第一进程地址用于接收在所述第一操作系统之中所述第一调用指令对应的所述第一返回结果;根据所述第一调用指令生成第二调用指令,并根据所述第一接口获取所述第二调用指令的第二接口;获取所述第二调用指令对应的第二进程地址,并建立所述第一进程地址和所述第二进程地址之间的对应关系,其中,所述第二进程地址用于接收在所述第二操作系统之中所述第二调用指令对应的第二返回结果。8.在本公开的一个实施例之中,所述对所述目标文件之中的进程地址进行修改,包括:将所述目标文件加载至内存;获取所述目标文件对应的全局偏移列表got;根据所述got获取所述内存之中的进程地址,并将所述内存之中的进程地址修改为所述第二进程地址。9.在本公开的一个实施例之中,所述第一操作系统具有第一系统库,所述第二操作系统具有第二系统库,所述方法还包括:根据所述got获取所述内存之中的第二系统库的地址;将所述第二系统库的地址修改为所述第一系统库的地址。10.在本公开的一个实施例之中,所述执行所述修改之后的目标文件,并将所述返回地址接收到的所述目标文件的第二返回结果生成第一返回结果并发送至所述第一操作系统之中的应用程序,包括:执行所述修改之后的目标文件以生成第二返回结果;根据所述第一进程地址和所述第二进程地址的对应关系,确定对应的所述第一进程地址;根据所述第一进程地址和所述第二返回结果的内容生成所述第一返回结果,并反馈至所述第一进程地址。11.根据本公开实施例的第二方面,还提供一种跨操作系统的调用装置,包括:第一接收模块,用于接收第一操作系统之中应用程序的第一调用指令,其中,所述第一调用指令与针对所述第一操作系统的第一接口对应;接口获取模块,用于获取所述第一接口所对应的针对第二操作系统的第二接口;目标文件获取模块,用于获取所述第二接口对应的目标文件;修改模块,用于对所述目标文件之中的进程地址进行修改,以将所述进程地址修改为异构计算引擎的返回地址;以及执行模块,用于执行所述修改之后的目标文件,并将所述返回地址接收到的所述目标文件的第二返回结果生成第一返回结果并发送至所述第一操作系统之中的应用程序。12.在本公开的一个实施例之中,所述目标文件获取模块包括:动态共享库确定子模块,用于获取所述第二接口对应的动态共享库;目标文件获取子模块,用于获取所述动态共享库所对应的目标文件。13.在本公开的一个实施例之中,所述接口获取模块包括:第一获取子模块,用于获取所述第一调用指令对应的第一进程地址,其中,所述第一进程地址用于接收在所述第一操作系统之中所述第一调用指令对应的所述第一返回结果;生成子模块,用于根据所述第一调用指令生成第二调用指令,并根据所述第一接口获取所述第二调用指令的第二接口;第二获取子模块,用于获取所述第二调用指令对应的第二进程地址,并建立所述第一进程地址和所述第二进程地址之间的对应关系,其中,所述第二进程地址用于接收在所述第二操作系统之中所述第二调用指令对应的第二返回结果。14.在本公开的一个实施例之中,所述修改模块包括:加载子模块,用于将所述目标文件加载至内存;第三获取子模块,用于获取所述目标文件对应的全局偏移列表got;第一修改子模块,用于根据所述got获取所述目标文件之中的进程地址,并将所述目标文件之中的进程地址修改为所述第二进程地址。15.在本公开的一个实施例之中,所述第一操作系统具有第一系统库,所述第二操作系统具有第二系统库,所述修改模块还包括:第四获取子模块,用于根据所述got获取所述目标文件之中的第二系统库的地址;第二修改子模块,用于将所述第二系统库的地址修改为所述第一系统库的地址。16.在本公开的一个实施例之中,所述执行模块包括:执行子模块,用于执行所述修改之后的目标文件以生成第二返回结果;确定子模块,用于根据所述第一进程地址和所述第二进程地址的对应关系,确定对应的所述第一进程地址;反馈子模块,用于根据所述第一进程地址和所述第二返回结果的内容生成所述第一返回结果,并反馈至所述第一进程地址。17.根据本公开实施例的第三方面,还提供一种电子设备,包括:处理器;用于存储所述处理器可执行调用指令的存储器;其中,所述处理器被配置为执行所述调用指令,以实现如上所述的跨操作系统的调用方法。18.根据本公开实施例的第四方面,还提供一种非临时性计算机可读存储介质,当所述存储介质中的调用指令由电子设备的处理器执行时,使得电子设备能够执行如上所述的跨操作系统的调用方法。19.本公开的实施例提供的技术方案至少带来以下有益效果:20.通过本公开的实施例,可以实现跨操作系统的资源调用,本公开实施例在第一操作系统和第二操作系统之间设置异构计算引擎,该异构计算引擎获取第一操作系统的app的第一调用指令,并根据该第一调用指令之中的第一接口获取对应的第二操作系统的第二接口,以及对目标文件的进程地址进行修改,使得目标文件执行之后的执行结果能够反馈至该异构计算引擎,之后再通过该异构计算引擎转发至第一操作系统的app,从而实现跨操作系统的资源调用。即,第一操作系统的app可以调用第二操作系统之中的硬件资源或软件资源,例如,ios操作系统的app可以直接调用具有安卓操作系统或linux操作系统的app的资源。21.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明22.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。23.图1为本公开实施例的跨操作系统的调用系统结构图;24.图2为本公开实施例的跨操作系统的调用方法流程图;25.图3为本公开另一个实施例的跨操作系统的调用方法流程图;26.图4为本公开一个实施例的目标文件修改方法流程图;27.图5为本公开一个实施例的跨操作系统的调用装置结构图;28.图6为本公开另一个实施例的跨操作系统的调用装置结构图;29.图7为根据本公开实施例的电子设备的结构框图。具体实施方式30.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。31.在本公开的实施例之中,提出了一种异构计算引擎,该异构计算引擎设置在第一操作系统和第二操作系统之间。在本公开的一个实施例之中,异构计算引擎可以设置在第一操作系统之中,该异构计算引擎具有第一接口和第二接口,其中,第一接口符合第一操作系统的规范,可以被第一操作系统之中的应用程序所调用,第二接口符合第二操作系统的规范,可以被第二操作系统之中的应用程序所调用,同时,第二接口也可以调用第二操作系统之中的硬件资源或软件资源。当然在本公开的其他实施例之中,异构计算引擎还可以设置在第二操作系统之中。32.如图1所示,为本公开实施例的跨操作系统的调用系统结构图。该跨操作系统的调用系统包括第一操作系统100、第二操作系统200和异构计算引擎300。异构计算引擎300作为第一操作系统100和第二操作系统200之间的通信中介,实现第一操作系统100和第二操作系统200之间资源的相互调用。该异构计算引擎获取第一操作系统的app的第一调用指令,并根据该第一调用指令之中的第一接口获取对应的第二操作系统的第二接口,以及对目标文件的进程地址进行修改,使得目标文件执行之后的执行结果能够反馈至该异构计算引擎,之后再通过该异构计算引擎转发至第一操作系统的app,从而实现跨操作系统的资源调用。即,第一操作系统的app可以调用第二操作系统之中的硬件资源或软件资源,33.例如,ios操作系统的app可以直接调用具有安卓操作系统或linux操作系统的app的资源。当ios操作系统的app调用具有安卓操作系统或linux操作系统的app的资源时,异构计算引擎300接收到调用资源指令,则异构计算引擎300获取资源调用的第二接口,以及该第二接口对应的目标文件(即用于资源调用的文件),并修改该目标文件的进程地址,使得目标文件执行之后,可以将执行结果反馈给异构计算引擎300,再通过异构计算引擎300转发到ios操作系统。需要说明的是在以上实施例之中,异构计算引擎300可以独立于第一操作系统100和第二操作系统200,也可以置于第一操作系统100或第二操作系统200之中,对此本公开实施例并无限制。34.在后续的实施例之中,将结合具体的实施例对本技术的方案进行详细介绍。35.如图2所示,为本公开实施例的跨操作系统的调用方法流程图。在本公开的一个实施例之中,该方法可应用于异构计算引擎。当然在本公开的其他实施例之中,该方法还可以用于其他的引擎,只要能实现第一操作系统和第二操作系统之间的调用即可。该方法包括以下步骤:36.步骤s210、接收第一操作系统之中应用程序的第一调用指令,其中,第一调用指令与针对第一操作系统的第一接口对应。37.其中,应用程序可以为系统模块、驱动模块、内核、设备等等,范围不限。38.在本公开的一个实施例之中,异构计算引擎介于第一操作系统和第二操作系统之间。因此异构计算引擎需要同时与第一操作系统和第二操作系统进行通信。在本公开的一个实施例之中,异构计算引擎可以与第一操作系统和第二操作系统之中的app进行通信,同时,异构计算引擎还可以调用第一操作系统和第二操作系统之中的资源,例如硬件资源或软件资源等。39.需要说明的是,第一操作系统和第二操作系统为同一设备的操作系统,第一操作系统和第二操作系统的类型不相同。例如,第一操作系统为ios操作系统,第二操作系统为安卓操作系统,等等。40.在本公开的一个实施例之中,以第一操作系统之中的app调用第二操作系统之中硬件资源为例进行描述。当然在本公开的其他实施例之中,第二操作系统之中的app也可以调用第一操作系统之中的硬件资源。在本公开的实施例之中,异构计算引擎具有第一接口和第二接口,其中,第一接口用于第一操作系统之中app的调用,即第一接口在第一操作系统之中是可见的,第一操作系统之中的app可以调用该第一接口。其中,第二接口可以用于与第二操作系统之中的底层硬件资源进行通信。在本公开的一个实施例之中,该第二接口可与一种硬件资源对应,例如,该第二接口可以与显示屏启动功能绑定,可以通过第二接口调用第二操作系统的显示屏启动模块,从而启动显示屏。41.在该实施例之中,第一接口符合第一操作系统的要求,第二接口符合第二操作系统的要求,第一接口和第二接口对应一种硬件资源。在本公开的实施例之中,异构计算引擎之中具有多个第一接口,以及多个第二接口,多个第一接口和多个第二接口分别与多种硬件资源或软件资源对应。需要说明的是,在本公开的实施例之中,不仅可以实现硬件资源的跨系统调用,也可以实现软件资源的跨系统调用,例如通过ios系统的app调用安卓系统的app之中的一些软件。42.在本公开的一个实施例之中,异构计算引擎可通过注册的方式,获取第二操作系统之中的多种硬件资源。例如异构计算引擎向第二操作系统之中的多种硬件资源发送注册请求,请求各种硬件资源向其进行注册,从而获知各种硬件资源的能力,例如是否支持声卡,以及声卡的性能等等。在获知各种硬件资源的能力之后,异构计算引擎为多种硬件资源建立多个第二接口,其中,多个第二接口均支持第二操作系统。在建立的多个第二接口之中,分别为多个第二接口建立多个第一接口,其中,多个第一接口均支持第一操作系统,可以由第一操作系统之中的app进行调取。43.在本公开的其他实施例之中,异构计算引擎还可向第一操作系统之中的多个app注册其硬件资源,在该实施例之中,异构计算引擎将第二操作系统注册至该异构计算引擎的硬件资源作为自身的硬件资源向第一操作系统之中的多个app进行注册,从而第一操作系统之中的app可以通过该异构计算引擎直接调用第二操作系统的硬件资源。44.例如,移动终端之中的影视类app可以直接通过该异构计算引擎调用智能电视的app进行影视播放,或者音乐类app可以直接通过该异构计算引擎调用智能音箱的app进行音乐播放,其中,移动终端之中影视类app的操作系统和控制智能电视的app的操作系统不同,音乐类app的操作系统和智能音箱的app对应的操作系统不同。45.步骤s230、获取第一接口所对应的针对第二操作系统的第二接口。46.在本公开的一个实施例之中,异构计算引擎可以提前建立第一接口和第二接口之间的关联关系,当第一接口被调用时,即可根据该关联关系获知第一接口对应的第二接口。例如,在本公开的实施例之中,第一接口和第二接口均对应智能电视的显示功能。当第一操作系统之中的app需要调用硬件资源或软件资源进行显示时,可以调用第一操作系统之中的第一接口提供的硬件资源或软件资源进行显示。异构计算引擎在第一接口被调取时,调取第一接口所对应的第二接口,通过第二接口调用第二操作系统之中用于显示的硬件资源或软件资源。47.步骤s250、获取第二接口对应的目标文件。48.在本公开的一个实施例中,首先获取第二接口对应的动态共享库,之后再获取动态共享库所对应的目标文件。49.步骤s270、对目标文件之中的进程地址进行修改,以将进程地址修改为异构计算引擎的返回地址。50.在本公开的一个实施例之中,对目标文件之中的进程地址进行修改,使得目标文件的进程地址修改为异构计算引擎的返回地址,从而使得目标文件执行之后,将目标文件的执行结果反馈至该异构计算引擎的返回地址。51.在本公开的一个实施例之中,第二操作系统可以为linux系统,目标文件为elf(executablelinkableformat,可执行和可链接文件格式)文件,而第一操作系统可以为安卓、ios、windows系统等等。52.步骤s290、执行修改之后的目标文件,并将返回地址接收到的目标文件的第二返回结果生成第一返回结果并发送至所述第一操作系统之中的应用程序。53.在本公开的一个实施例之中,由于目标文件的进程地址已被修改为异构计算引擎的返回地址,因此修改之后的目标文件在被执行之后,会将执行结果反馈至异构计算引擎,再通过异构计算引擎将该执行结果作为第一返回结果反馈至第一操作系统之中的应用程序,从而实现跨操作系统的资源调用。54.如图3所示,为本公开另一个实施例的跨操作系统的调用方法流程图。在本公开的一个实施例之中,该方法可应用于异构计算引擎。当然在本公开的其他实施例之中,该方法还可以用于其他的引擎,只要能实现第一操作系统和第二操作系统之间的调用即可。该方法包括以下步骤:55.步骤s310、接收第一操作系统之中应用程序的第一调用指令,其中,第一调用指令与针对第一操作系统的第一接口对应。56.在本公开的一个实施例之中,异构计算引擎介于第一操作系统和第二操作系统之间。因此异构计算引擎需要同时与第一操作系统和第二操作系统进行通信。在本公开的一个实施例之中,异构计算引擎可以与第一操作系统和第二操作系统之中的app进行通信,同时,异构计算引擎还可以调用第一操作系统和第二操作系统之中的资源,例如硬件资源等。57.在本公开的一个实施例之中,以第一操作系统之中的app调用第二操作系统之中硬件资源为例进行描述。当然在本公开的其他实施例之中,第二操作系统之中的app也可以调用第一操作系统之中的硬件资源。58.在本公开的实施例之中,异构计算引擎具有第一接口和第二接口,其中,第一接口用于第一操作系统之中app的调用,即第一接口在第一操作系统之中是可见的,第一操作系统之中的app可以调用该第一接口。其中,第二接口可以用于与第二操作系统之中的底层硬件资源进行通信。在本公开的一个实施例之中,该第二接口可与一种硬件资源对应,例如,该第二接口可以与显示屏启动功能绑定,可以通过第二接口调用第二操作系统的显示屏启动模块,从而启动显示屏。59.在该实施例之中,第一接口符合第一操作系统的要求,第二接口符合第二操作系统的要求,第一接口和第二接口对应一种硬件资源。在本公开的实施例之中,异构计算引擎之中具有多个第一接口,以及多个第二接口,多个第一接口和多个第二接口分别与多种硬件资源对应。60.在本公开的一个实施例之中,异构计算引擎可通过注册的方式,获取第二操作系统之中的多种硬件资源。例如异构计算引擎向第二操作系统之中的多种硬件资源发送注册请求,请求各种硬件资源向其进行注册,从而获知各种硬件资源的能力,例如是否支持声卡,以及声卡的性能等等。在获知各种硬件资源的能力之后,异构计算引擎为多种硬件资源建立多个第二接口,其中,多个第二接口均支持第二操作系统。在建立了多个第二接口之中,分别为多个第二接口建立多个第一接口,其中,多个第一接口均支持第一操作系统,可以由第一操作系统之中的app进行调取。61.在本公开的其他实施例之中,异构计算引擎还可向第一操作系统之中的多个app注册其硬件资源,在该实施例之中,异构计算引擎将第二操作系统注册至该异构计算引擎的硬件资源作为自身的硬件资源向第一操作系统之中的多个app进行注册,从而第一操作系统之中的app可以通过该异构计算引擎直接调用第二操作系统的硬件资源。62.步骤s330、获取第一调用指令对应的第一进程地址,其中,第一进程地址用于接收在第一操作系统之中第一调用指令对应的第一返回结果。63.在本公开的一个实施例之中,在第一操作系统之中,每个调用指令都对应一个进程地址,这样该调用指令产生返回结果时,可以将返回结果返回至该调用指令对应的进程地址。在该实施例之中,第一调用指令对应第一进程地址,该进程地址用于接收在第一操作系统之中执行该第一调用指令时产生的第一返回结果。64.步骤s350、根据第一调用指令生成第二调用指令,并根据第一接口获取第二调用指令的第二接口。65.在本公开的实施例之中,由于第一接口和第二接口具有相同的硬件资源,因此异构计算引擎在获知第一调用指令之后,即可获知第一操作系统之中app所希望调用的硬件资源,因此在第二操作系统之中根据第一调用指令生成对应的第二调用指令,并获取对应的第二接口。66.在本公开的一个实施例之中,异构计算引擎可以提前建立第一接口和第二接口之间的关联关系,当第一接口被调用时,即可根据该关联关系获知第一接口对应的第二接口。例如,在本公开的实施例之中,第一接口和第二接口均对应智能电视的显示功能。当第一操作系统之中的app需要调用硬件资源进行显示时,可以调用第一操作系统之中的第一接口提供的硬件资源进行显示。异构计算引擎在第一接口被调取时,调取第一接口所对应的第二接口,通过第二接口调用第二操作系统之中用于显示的硬件资源。67.步骤s370、获取第二调用指令对应的第二进程地址,并建立第一进程地址和第二进程地址之间的对应关系,其中,第二进程地址用于接收在第二操作系统之中第二调用指令对应的第二返回结果。68.在本公开的实施例之中,第二进程地址为在第二操作系统之中接收第二调用指令的返回结果。因此,在本公开的一个实施例之中,需要在异构计算引擎之中建立第一进程地址和第二进程地址之间的对应关系,第一进程地址适用于第一操作系统,第二进程地址适用于第二操作系统。这样,异构计算引擎在接收到第二进程地址的第二返回结果之后,可以通过第二进程地址对应的第一进程地址向第一操作系统之中的app继续返回相应返回结果。69.步骤s390、获取第二接口对应的目标文件。70.在本公开的一个实施例中,首先获取第二接口对应的动态共享库,之后再获取动态共享库所对应的目标文件。在本公开的实施例之中,动态共享库可包括基础库和驱动库。在本公开的实施例之中,基础库可包括libc.so,libz.so,libpthread.so等。在本公开的其他实施例之中,驱动库包括libgles_xxx.so、gralloc_xx.so、audio_xx.so等。其中,基础库用于维持操作系统正常启动、加载程序所需要的基础库。比如libc.so是linuxos需要的。而驱动库是硬件厂商提供的,提供给oem厂商,提供某个特定功能的库(比如显示驱动、声音驱动等等)。71.步骤s3110、对目标文件之中的进程地址进行修改。72.在本公开的一个实施例之中,对目标文件之中的进程地址进行修改,使得目标文件的进程地址修改为异构计算引擎的返回地址,从而使得目标文件执行之后,将目标文件的执行结果反馈至该异构计算引擎的返回地址。73.在本公开的一个实施例之中,第二操作系统可以为linux系统,目标文件为elf(executablelinkableformat,可执行和可链接文件格式)文件,而第一操作系统可以为安卓、ios、windows系统等等。74.步骤s3130、执行所述修改之后的目标文件,并将所述返回地址接收到的所述目标文件的第二返回结果生成第一返回结果并发送至所述第一操作系统之中的应用程序。75.在本公开的一个实施例之中,由于目标文件的进程地址已被修改为异构计算引擎的第二进程地址,因此修改之后的目标文件在被执行之后,会将执行结果反馈至异构计算引擎,再通过异构计算引擎将该执行结果作为第一返回结果反馈至第一操作系统之中的应用程序,从而实现跨操作系统的资源调用。76.在该实施例之中,由于异构计算引擎具有第一进程地址和第二进程地址的对应关系,因此异构计算引擎可以获得第二进程地址对应的第一进程地址,并向第一操作系统之中的第一进程地址返回第一返回结果。77.在该实施例之中,异构计算引擎接收修改之后的目标文件执行之后生成的第二返回结果,之后再根据第一进程地址和第二进程地址的对应关系,确定对应的第一进程地址。异构计算引擎根据第一进程地址和第二返回结果的内容生成第一返回结果,并反馈至第一进程地址,第一操作系统之中的app即可从该第一进程地址获取该第一返回结果。78.在本公开的一个实施例之中,异构计算引擎可通过以下方式对目标文件进行修改。如图4所示,为本公开一个实施例的目标文件修改方法流程图。该方法包括以下步骤:79.步骤s410、将目标文件加载至内存。80.在本公开的一个实施例之中,可以通过memorymapping(内存映射)的方式将目标文件加载到内存。81.步骤s430、获取目标文件对应的got(globaloffsettable,全局偏移列表)。82.在本公开的一个实施例之中,该got位于目标文件之中。在本公开的其他实施例之中,第二操作系统可以为linux系统,目标文件为elf(executablelinkableformat,可执行和可链接文件格式)文件,该got位于elf文件之中。该got记录elf文件之中各个函数符号在内存之中的位置。83.步骤s450、根据got获取内存之中的进程地址,并将内存之中的进程地址修改为第二进程地址。84.在该实施例之中,由于got之中记录有各个函数符号的位置,因此可以根据got找到进程地址在内存之中的位置,并在内存之中将进程地址修改为第二进程地址,从而确保该目标文件被执行之后,结果可以反馈至异构计算引擎的第二进程地址。85.在本公开的一个实施例之中,由于第一操作系统和第二操作系统可能存在不同的系统库,因此还可能存在系统库不同步的问题,即第一操作系统的第一系统库和第二操作系统的第二系统库可能不同步,因此会导致系统库不兼容的问题。因此在本公开的一个实施例之中,还需要对系统库进行同步。具体而言,异构计算引擎根据got获取内存之中的第二系统库的地址,并将第二系统库的地址修改为第一系统库的地址,从而满足两个操作系统的系统库同步问题。86.通过本公开的实施例,可以实现跨操作系统的资源调用,例如设置在移动终端的app可以直接调用控制智能电视的app,以实现对智能电视的显示屏进行显示。本公开实施例在第一操作系统和第二操作系统之间设置异构计算引擎,该异构计算引擎获取第一操作系统的app的第一调用指令,并根据该第一调用指令之中的第一接口获取对应的第二操作系统的第二接口,以及对目标文件的进程地址进行修改,使得目标文件执行之后的执行结果能够反馈至该异构计算引擎,之后再通过该异构计算引擎转发至第一操作系统的app,从而实现跨操作系统的资源调用。即,第一操作系统的app可以调用第二操作系统之中的硬件资源或软件资源,例如,ios操作系统的app可以直接调用具有安卓操作系统或linux操作系统的app的资源。87.如图5所示,为本公开一个实施例的跨操作系统的调用装置结构图。该跨操作系统的调用装置可为上述的异构计算引擎,也可为其他的引擎。该跨操作系统的调用装置500包括第一接收模块510、接口获取模块520、目标文件获取模块530、修改模块540和执行模块550。其中,第一接收模块510用于接收第一操作系统之中应用程序的第一调用指令,其中,第一调用指令与针对第一操作系统的第一接口对应。接口获取模块520用于获取第一接口所对应的针对第二操作系统的第二接口。目标文件获取模块530用于获取第二接口对应的目标文件。修改模块540用于对目标文件之中的进程地址进行修改,以将所述进程地址修改为异构计算引擎的返回地址。执行模块550用于执行所述修改之后的目标文件,并将所述返回地址接收到的所述目标文件的第二返回结果生成第一返回结果并发送至所述第一操作系统之中的应用程序。88.如图6所示,为本公开另一个实施例的跨操作系统的调用装置结构图。在本公开的一个实施例之中,目标文件获取模块530包括动态共享库确定子模块531和目标文件获取子模块532。动态共享库确定子模块531用于获取第二接口对应的动态共享库。目标文件获取子模块532用于获取动态共享库所对应的目标文件。89.在本公开的一个实施例之中,接口获取模块520包括第一获取子模块521、生成子模块522和第二获取子模块523。第一获取子模块521用于获取第一调用指令对应的第一进程地址,其中,第一进程地址用于接收在第一操作系统之中第一调用指令对应的第一返回结果。生成子模块522用于根据第一调用指令生成第二调用指令,并根据第一接口获取第二调用指令的第二接口。第二获取子模块523用于获取第二调用指令对应的第二进程地址,并建立第一进程地址和第二进程地址之间的对应关系,其中,第二进程地址用于接收在第二操作系统之中第二调用指令对应的第二返回结果。90.在本公开的一个实施例之中,修改模块540包括加载子模块541、第三获取子模块542和第一修改子模块543。加载子模块541用于将目标文件加载至内存。第三获取子模块542用于获取目标文件对应的全局偏移列表got。第一修改子模块543用于根据got获取内存之中的进程地址,并将内存之中的进程地址修改为第二进程地址。91.在本公开的一个实施例之中,第一操作系统具有第一系统库,第二操作系统具有第二系统库,修改模块540还包括第四获取子模块544和第二修改子模块545。第四获取子模块544用于根据got获取目标文件之中的第二系统库的地址。第二修改子模块545用于将第二系统库的地址修改为第一系统库的地址。92.在本公开的一个实施例之中,执行模块550包括执行子模块551、确定子模块552和反馈子模块553。执行子模块551用于执行修改之后的目标文件以生成第二返回结果。确定子模块552用于根据第一进程地址和第二进程地址的对应关系,确定对应的第一进程地址。反馈子模块553用于根据第一进程地址和第二返回结果的内容生成第一返回结果,并反馈至第一进程地址。93.根据本公开实施例,还提供一种电子设备,包括:处理器;用于存储处理器可执行调用指令的存储器;其中,所述处理器被配置为执行所述调用指令,以实现如上所述的跨操作系统的调用方法。94.图7是本公开实施例所提供的一种电子设备的框图。例如,电子设备700可以是移动电话,计算机,数字广播用户设备,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。95.参照图7,电子设备700可以包括以下至少一个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件77,输入/输出(i/o)的接口712,传感器组件714,以及通信组件716。96.处理组件702通常控制电子设备700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括至少一个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括至少一个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。97.存储器704被配置为存储各种类型的数据以支持在电子设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。98.电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理系统,至少一个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。99.多媒体组件708包括在所述电子设备700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括至少一个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的唤醒时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当电子设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。100.音频组件77被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(mic),当电子设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。101.i/o接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。102.传感器组件714包括至少一个传感器,用于为电子设备700提供各个方面的状态评估。例如,传感器组件714可以检测到电子设备700的打开/关闭状态,组件的相对定位,例如所述组件为电子设备700的显示器和小键盘,传感器组件714还可以检测电子设备700或电子设备700一个组件的位置改变,用户与电子设备700接触的存在或不存在,电子设备700方位或加速/减速和电子设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。103.通信组件716被配置为便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。104.在示例性实施例中,电子设备700可以被至少一个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图1至图4任一实施例的调用方法。105.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由电子设备700的处理器720执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。106.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本公开旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。107.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献