【技术实现步骤摘要】
【国外来华专利技术】共享对象层级上的二进制转换相关申请的交叉引用本申请涉及与其同时提交的、代理人案卷号为096553-0074并且标题为“BINARYTRANSLATIONINTONATIVECLIENT”的国际专利申请,其全部公开内容以引用方式并入本文中。
技术介绍
主题技术总体上涉及二进制转换(binarytranslation)技术。通常为指定平台编译软件程序,指定平台可包括指定硬件架构、指定操作系统和/或指定库。用户可能希望在具有不同硬件架构、不同操作系统或不同库的与指定平台不同的另一平台上运行该软件程序。在这种情况下,被针对其编译程序的平台被称为客户机,其上将要执行代码的平台被称为主机。为了调节程序以便在主机平台上执行,主机平台可被编程为对指定客户机平台进行(用软件)仿真,并且可执行二进制转换,以将软件程序从其原始形式转换成可在具有被仿真的指定客户机平台的主机平台上运行的新软件程序。在二进制转换中,针对指定客户机平台的二进制代码被转换成针对主机平台的二进制代码。
技术实现思路
根据一些方面,主题技术涉及一种方法。所述方法包括在主机平台处,接收为与所述主机平台不同的指定客户机平台编写的软件程序,其中,所述软件程序使用共享对象或动态加载库的集合,并且其中,所述软件程序与所述主机平台不兼容。所述方法包括在所述主机平台内对所述指定客户机平台进行仿真。所述方法包括确定所述主机平台是否具有对应的共享对象或动态加载库,其中,所述对应的共享对象或动态加载库实现与来自所述共享对象或动态加载库的集合内的指定共享对象或动态加载库的公共外部接口。所述方法包括如果所述主机平台具有所述对应的共享对象或动 ...
【技术保护点】
一种方法,包括:在主机平台处接收为与所述主机平台不同的指定客户机平台编写的软件程序,其中所述软件程序使用共享对象或动态加载库的集合,并且其中所述软件程序与所述主机平台不兼容;在所述主机平台内对所述指定客户机平台进行仿真;确定所述主机平台是否具有对应的共享对象或动态加载库,其中所述对应的共享对象或动态加载库实现与来自所述共享对象或动态加载库的集合内的指定的共享对象或动态加载库的公共外部接口;如果所述主机平台具有所述对应的共享对象或动态加载库,则使用所述对应的共享对象或动态加载库取代所述指定的共享对象或动态加载库以供所述主机平台内的所述软件程序的执行;以及如果所述主机平台没有所述对应的共享对象或动态加载库,则执行所述指定的共享对象或动态加载库的二进制转换,以供所述主机平台内的所述软件程序的执行。
【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:在主机平台处接收为与所述主机平台不同的指定客户机平台编写的软件程序,其中所述软件程序使用共享对象或动态加载库的集合,并且其中所述软件程序与所述主机平台不兼容;在所述主机平台内对所述指定客户机平台进行仿真;确定所述主机平台是否具有对应的共享对象或动态加载库,其中所述对应的共享对象或动态加载库实现与来自所述共享对象或动态加载库的集合内的指定的共享对象或动态加载库的公共外部接口;如果所述主机平台具有所述对应的共享对象或动态加载库,则使用所述对应的共享对象或动态加载库取代所述指定的共享对象或动态加载库以供所述主机平台内的所述软件程序的执行;以及如果所述主机平台没有所述对应的共享对象或动态加载库,则执行所述指定的共享对象或动态加载库的二进制转换,以供所述主机平台内的所述软件程序的执行。2.根据权利要求1所述的方法,其中,执行所述指定的共享对象或动态加载库的所述二进制转换包括创建第一二进制转换对象,其中所述第一二进制转换对象的外部接口包括对用于所述主机平台的第二二进制转换对象或对最初用于所述主机平台的对象的函数调用。3.根据权利要求1所述的方法,其中,所述共享对象或动态加载库的集合包括与所述主机平台处的所述对应的共享对象或动态加载库关联的至少一个系统库和不与所述主机平台处的所述对应的共享对象或动态加载库关联的至少一个供应商库。4.根据权利要求1所述的方法,其中,所述指定客户机平台包括ARM硬件,并且其中,所述主机平台包括x86硬件。5.根据权利要求1所述的方法,其中,使用所述对应的共享对象或动态加载库取代所述指定的共享对象或动态加载库以供所述主机平台内的所述软件程序的执行包括:动态地将所述软件程序中的链接修改成指向取代所述指定的共享对象或动态加载库的所述对应的共享对象或动态加载库的链接。6.根据权利要求1所述的方法,其中,使用所述对应的共享对象或动态加载库取代所述指定的共享对象或动态加载库以供所述主机平台内的所述软件程序的执行包括:提供桥接器,使得对所述指定的共享对象或动态加载库的调用被变换成对所述对应的共享对象或动态加载库的调用。7.根据权利要求1所述的方法,进一步包括:接收需要访问被仿真的客户机平台的状态或所述主机平台的状态的调用;以及响应于所述调用,将所仿真的客户机平台的状态与所述主机平台的状态同步。8.一种非瞬时计算机可读介质,所述非瞬时计算机可读介质包括指令,所述指令在由一个或多个计算机执行时致使所述一个或多个计算机实现一种方法,所述方法包括:在主机平台处接收为与所述主机平台不同的指定客户机平台编写的软件程序,其中所述软件程序使用共享对象或动态加载库的集合,并且其中所述软件程序与所述主机平台不兼容;确定所述主机平台是否具有对应的共享对象或动态加载库,其中所述对应的共享对象或动态加载库实现与来自所述共享对象或动态加载库的集合内的指定的共享对象或动态加载库的公共外部接口;如果所述主机平台具有所述对应的共享对象或动态加载库,则使用所述对应的共享对象或动态加载库取代所述指定的共享对象或动态加载库以供所述主机平台内的所述软件程序的执行;以及如果所述主机平台没有所述对应的共享对象或动态加载库,则执行所述指定的共享对象或动态加载库的二进制转换,以供所述主机平台内的所述软件程序的执行。9.根据权利要求8所述的非瞬时计算机可读介质,其中,执行所述指定的共享对象或动态加载库的所述二进制转换包括创建第一二进制转换对象,其中所述第一二进制转换对象的外部接口包括对用于所述主机平台的第二二进制转换对象或对最初用于所述主机平台的...
【专利技术属性】
技术研发人员:叶夫根尼·艾尔钦,尼古拉·伊戈蒂,安德烈·哈尔佳温,德米特里·波卢欣,
申请(专利权)人:谷歌公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。