可执行程序的跨平台实现方法及移动终端的制作方法

文档序号:6355680阅读:154来源:国知局

专利名称::可执行程序的跨平台实现方法及移动终端的制作方法
技术领域
:本发明涉及移动终端的操作系统的
技术领域
,尤其涉及一种可执行程序的跨平台实现方法及移动终端。
背景技术
:OS(OperatingSystem,操作系统)是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合,OS为具有并发性、共享性、虚拟性和不确定性的平台。目前,市面上存在多种移动終端平台,以智能手机平台为例,主要包括=PalmOS、Symbian、Windowsmobile、Linux、Android、iPhoneOS和黑莓七种平台。各种平台的手机都有自成体系的一整套软件开发环境,且各自之间的软件开发环境差异极大,导致各种平台的可执行程序都是专用的,两两之间互不兼容。软件开发商开发出ー款软件后,需要针对该款软件,为各种平台配备专门的研发团队,使该款软件能适配各种平台,导致软件开发代价过高,运营和维护成本高昂。由于java程序是目前唯一一种可实现跨平台开发的程序,许多软件开发商则采用java程序开发软件,在各平台上安装java虚拟机,实现软件的适配。但由于java程序是一种解释执行的程序,其与各种平台的原生可执行程序相比,执行效率较低;一般地,java虚拟机的硬件配置较低,采用java虚拟机来进行程序的加载运行,性能较低、电源耗费大,且易受硬件配置的限制和影响。因此,一种执行效率高、性能高、电源耗费小的跨平台可执行程序的实现成为ー个重要的研究方向。
发明内容本发明实施例所要解决的技术问题在于,提供一种可执行程序的跨平台实现方法及移动终端,可实现移动终端的跨平台的可执行程序的加载运行,执行效率高、性能高、成本低。为了解决上述技术问题,本发明实施例提供了一种可执行程序的跨平台实现方法,包括读取标准格式文件;从所述标准格式文件中选择与当前平台环境相匹配的可执行程序,将所述可执行程序加载至当前平台的内存中;运行所述加载的可执行程序。其中,所述标准格式文件为QELF(QQExecutableandLinkableFormat,QQ可执行连接格式)文件,所述QELF文件中包含至少ー个QELF程序;所述QELF程序为X86指令的可执行程序、ARM(AdvancedRISCMachines,一种微处理器)指令的可执行程序、Java指令的可执行程序和Misc指令的可执行程序中的任ー种或多种。其中,所述QELF文件中的任一QELF程序均包含用于调用所述当前平台的标准服务接口的函数;所述QELF程序为调用所述标准服务接口开发得到的软件源代码经编译获得的可执行程序。其中,所述标准服务接口为所述当前平台的原生服务接口按预设的标准接口规范封装后获得的服务接口。其中,所述当前平台包括Palm操作系统、Symbian操作系统、Windowsmobile操作系统、Android操作系统、iPhone操作系统、黑莓操作系统、Windows操作系统、Unix操作系统及Linux操作系统中的任一种或多种。相应地,一种移动终端,包括读取模块,用于读取标准格式文件;加载模块,用于从所述读取模块读取的标准格式文件中选择与当前平台环境相匹配的可执行程序,将所述可执行程序加载至当前平台的内存中;执行模块,用于运行所述加载模块加载的可执行程序。其中,所述移动终端还包括标准化模块,用于按预设的标准接口规范,对所述当前平台的原生服务接口进行标准化封装,获得标准服务接口。其中所述标准格式文件为QELF文件,所述QELF文件中包含至少一个QELF程序;所述QELF程序为X86指令的可执行程序、ARM指令的可执行程序、Java指令的可执行程序和Misc指令的可执行程序中的任一种或多种。其中,所述加载模块为QELF加载器。其中,所述标准化模块为平台抽象层。其中,所述QELF文件中的任一QELF程序均包含用于调用所述平台抽象层的标准服务接口的函数;所述QELF程序为调用所述标准服务接口开发得到的软件源代码经编译获得的可执行程序。其中,所述当前平台为所述移动终端的当前操作系统;所述移动终端的当前操作系统为Palm操作系统、Symbian操作系统、Windowsmobile操作系统、Android操作系统、iPhone操作系统、黑莓操作系统、Windows操作系统、Unix操作系统及Linux操作系统中的任一种。实施本发明实施例,具有如下有益效果I、本发明实施例从标准格式文件(QELF文件)中选择与当前平台环境相匹配的可执行程序进行加载运行,该QELF文件包含一种或多种指令的可执行程序,可直接应用于各种移动终端平台,各移动终端平台可直接从该可执行程序文件中选择与当前平台相适配的可执行程序进行加载运行,实现了可执行程序的跨平台应用,降低了软件开发商的开发、运营成本,提闻了程序执行效率和性能。2、本发明实施例采用统一的标准接口规范对各种平台的原生服务接口进行标准化封装,使各种平台均能够以标准服务接口的形式向外提供服务,在此基础上进行软件开发时,则不需要再考虑平台差异,实现了开发得到的同一份软件源代码可以在所有平台上公用,实现了可执行程序的跨平台应用,降低了软件开发商的开发、运营成本,提高了程序执行效率和性能。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明的移动终端的第一实施例的结构示意图2为本发明的移动终端的第二实施例的结构示意图3为本发明的QELF程序的实施例的结构示意图;图4为本发明的QELF文件的实施例的结构示意图5为本发明的可执行程序的跨平台实现方法的实施例的流程图6为本发明的可执行程序的应用的实施例的结构示意图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例的移动终端包括但不限于手机、智能手机、PDA(PersonalDigitalAssistant,个人数码助理)、PC(PersonalComputer,个人计算机)机等终端。请参见图1,为本发明的移动终端的第一实施例的结构示意图;所述移动终端包括读取模块10,用于读取标准格式文件。具体实现中,该标准格式文件优选为QELF格式的文件,该QELF文件中包含至少一个QELF程序,其中,任一QELF程序均包含可以用来调用标准服务接口的函数,即QELF程序是使用任一移动终端平台的标准服务接口开发得到的软件源代码经编译获得的可执行程序。具体地,所述QELF程序为X86指令的可执行程序、ARM指令的可执行程序、Java指令的可执行程序和Misc指令的可执行程序的任一种或多种。可以理解的是,QELF文件中的QELF程序并不限于上述四种指令,其还可以根据实际应用需要,为其他指令的QELF程序。QELF文件存储于所述移动终端的存储器中,当需要运行QELF文件中的可执行程序时,所述读取模块10从所述移动终端的存储器中读取所述QELF文件。所述读取模块10对可执行程序文件的读取过程与现有技术相同,在此不赘述。加载模块20,用于从所述读取模块10读取的标准格式文件中选择与当前平台环境相匹配的可执行程序,将所述可执行程序加载至当前平台的内存中。具体实现中,所述加载模块20优选为使用平台的原生接口开发得到的QELF加载器,该QELF加载器预先内置于移动终端平台中;比如使用iPhone操作系统的原生服务接口开发得到QELF加载器,该QELF加载器可以且仅可以被内置于使用iPhone操作系统的移动终端(如iPhone手机)中运行;再如使用Android操作系统的原生服务接口开发得到QELF加载器,该QELF加载器可以且仅可以被内置于使用Android操作系统的移动终端(如Android手机)中运行;再如使用Windows操作系统开发得到的QELF加载器,该QELF加载器可以且仅可以被内置于使用Windows操作系统的移动终端(如PC机)中运行。所述移动终端平台可以为Palm操作系统、Symbian操作系统、Windowsmobile操作系统、Android操作系统、iPhone操作系统、黑莓操作系统、Windows操作系统、Unix操作系统及Linux操作系统中的任一种。使用各种平台的移动终端的上层操作系统完全不相同,但从硬件角度看,使用基于相同指令的CPU的移动终端却能够运行相同指令的QELF程序,比如以Nokia手机(使用Symbian操作系统)、Windowsmobile手机、Android手机和iPhone手机为例,虽然上述各个手机的上层操作系统(平台)完全不相同,但它们均采用基于ARM指令的CPU,因此从硬件角度看,上述各个手机平台的原生可执行程序均为ARM指令的可执行程序,因此,当QELF文件中包含ARM指令的QELF程序时,该QELF文件可以在上述各个手机中使用;再如针对各种PC机(使用Windows操作系统、Unix操作系统或Linux操作系统),虽然上述各种PC机的上层操作系统(平台)完全不相同,但它们均采用基于X86指令的CPU,因此从硬件角度看,上述各种PC机平台的原生可执行程序均为X86指令的可执行程序,因此,当QELF文件中包含X86指令的QELF程序时,该QELF文件可以在上述各种PC机中使用;可以理解的是,上述仅为举例,其他情况下可类似分析,在此不赘述。另外,当QELF文件中同时包含ARM指令的QELF程序和X86指令的QELF程序时,该QELF文件既可以在上述各种手机上使用,也可以在上述各种PC机上使用,当QELF文件被其应用的移动终端读取后,所述加载模块20则从QELF文件中选择与该移动终端的平台相匹配QELF程序进行加载。具体地,当所述读取模块10读取出QELF文件后,由于所述QELF文件包括的QELF程序为X86指令的可执行程序、ARM指令的可执行程序、Java指令的可执行程序和Misc指令的可执行程序中的任一种或多种,所述加载模块20根据其所在的移动终端的当前平台环境,选择与当前平台环境相匹配的QELF程序,将所述选择的QELF程序加载至所述移动终端的内存中。所述加载模块20对选择的QELF程序进行加载的过程与现有技术类似,在此不赘述。执行模块30,用于运行所述加载模块20加载的可执行程序。具体实现中,所述执行模块30为所述移动终端的CPU,当所述加载模块20将选择的QELF程序加载至所述移动终端的内存后,所述移动终端的CPU从该QELF程序的程序起始点运行该QELF程序。可以理解的是,由于加载的QELF程序包含的指令与所述移动终端的CPU基于的指令相同,因此,所述CPU运行该QELF程序与运行所述移动终端当前平台的原生可执行程序的过程相同,在此不赘述。本发明实施例可实现跨平台的可执行程序的加载运行,降低了软件开发商的开发、运营成本,提高了程序执行效率和性能高。请参见图2,为本发明的移动终端的第二实施例的结构示意图;与上一实施例相同,所述移动终端包括读取模块10、加载模块20和执行模块30。本实施例中,所述移动终端还包括标准化模块40,用于按预设的标准接口规范,对所述当前平台的原生服务接口进行标准化封装,获得标准服务接口。具体实现中,若要实现可执行程序的跨平台使用,则需要利用各种平台的服务,由于不同平台提供相同服务的原生服务接口(原生API)完全不同,因此需要抽象各种平台的原生服务接口,把各种平台的所有原生服务接口全部标准化。具体地,可预先定义一套标准接口规范,对各种平台的原生服务接口均按照该规范一一标准化封装,使各种平台均能够以标准服务接口的形式向外提供服务,在此基础上进行软件开发时,则不需要再考虑平台差异,可实现开发得到的同一份软件源代码可以在所有平台上公用,实现可执行程序的跨平台应用。以手机为例,由于目前主流手机平台Windowsmobil、Symbian、Androic、iPhone等都支持ANSIC语言,因此可以ANSIC语言来定义标准接口规范,定义的规范中的服务接口实例如下文件系统接口QFILE*QFile_0pen(QWCHAR*pName,constQWCHAR*pMode);//文件打开QVOIDQFile_Close(QFILE*pFile);//文件关闭QINTQFile_Read(QFILE*pFile,QVOID*pData,QINTnSize);//读文件QINTQFileJVrite(QFILE*pFile,QVOID*pData,QINTnSize);//写文件QBOOLQFile_Seek(QFILE*pFile,QINToffset,QINTorigin);//文件读写位置移动QB00LQFile_GetSize(QFILE*pFile,QINT*pnSize);//获得文件体积QB00LQFile_Move(QWCHAR*pFileName,QWCHAR*pNewFileName);//文件移动绘图接口QGDI_SetFont//设置字体样式QGDI_DrawText//在屏幕上输出文本QGDI_GetTextHeight//获得文本高度QGDI_FillRect//绘制并填充一个矩形其它接口举例QSendSMS//发送短信QGetTime//获取时间可以理解的是,上述标准服务接口仅为举例,根据各种平台提供的服务接口的功能,还包括其他标准服务接口,其他情况可类似分析,在此不赘述。所述标准化模块40为使用各种平台的原生服务接口开发得到的平台抽象层,该平台抽象层是各种平台的原生API封装实现,由于各种平台的原生API各不相同,因此各种平台的平台抽象层的实现方法也有差异,比如Windowsmobile平台的平台抽象层中的各种标准服务接口采用win32API或TAPI封装实现;再如Symbian平台的平台抽象层中的各种标准服务接口采用S60API封装实现;再如iPhone平台的平台抽象层的各种标准服务接口采用iPhonesdk或0bjective_C封装实现。基于各种平台实现的平台抽象层,只能内置于使用对应平台的移动终端中,比如由Windowsmobile平台封装实现的平台抽象层,仅能内置于使用Windowsmobile操作系统的移动终端(Windowsmobile手机)中;由iPhone平台封装实现的平台抽象层,仅能内置于使用iPhone操作系统的移动终端(iPhone手机)中。平台抽象层屏蔽了移动终端平台的相关细节,基于平台抽象层开发的应用软件可自动适配到所有具有平台抽象层的移动终端中运行。如前述,QELF程序是使用任一移动终端平台的标准服务接口开发得到的软件源代码经编译获得的可执行程序。具体地,用户可在任一具有平台抽象层的移动终端平台上,通过调用该平台抽象层的标准服务接口开发得到软件源代码,因此,QELF程序包含可以用来调用标准服务接口的函数(或代码)。当开发出软件源代码后,需要使用编译器对该软件源代码进行编译,以获得QELF程序,进而获得QELF文件。具体实现中,QELF程序的编译方法有两种,其一为可根据需要使用的平台开发开源的gcc编译器,改写该开源的gcc编译器,则可直接从源代码生成QELF程序。比如开发得到开源的ARMgcc编译器,则通过改写该开源的ARMgcc编译器的源代码,编译生成ARM指令的QELF程序;再如开发得到开源的复合指令的gcc编译器,则通过改写该开源的复合指令的gcc编译器的源代码,编译生成复合指令(包括=ARM指令、X86指令、Java指令和Misc指令等)的QELF程序。其二为可利用现有的编译器进行编译,其中,现有的常见编译环境有针对Windowsmobile手机,其使用vs2003、vs2005和vs2008编译器,源代码编译生成ARM指令的PE格式的可执行程序;针对Nokia手机,其使用carbideC++和s60sdk两个常用编译器,源代码编译生成ARM指令的ELF格式的可执行程序;针对Android手机,其使用ARM-Linux-gcc编译器,源代码编译生成ELF可执行程序。因此,米用第二种方式得到QELF程序时,如可利用已有的vs2005编译器生成PE可执行程序,然后从PE可执行程序中提取需要的数据(如从PE可执行程序中提取代码段、数据段、BSS的内容),重新按照QELF格式进行打包,得到QELF程序。QELF程序与现有的PE可执行程序以及ELE可执行程序的结构有一些差别。请一并参见图3,为本发明的QELF程序的实施例的结构示意图。现有的各种可执行程序的格式不完全相同,但必然会有“代码段”、“数据段”和“BSS段”,其中,代码段存储指令代码,针对Windows操作系统的移动终端(Windowsmobile手机或PC机)中,该PE可执行程序名为.code,根据CPU体系结构该代码段可能存X86指令或ARM指令;数据段存常量数据,PE可执行程序名为,data;BSS段存已初始化的全局变量;当然,可执行程序中还可能包括其他段,如初始化为O的数据段,重定位段,调试信息段,等等。如图3所示,QELF程序也包含上述三个必要的段结构和其他段结构,另外,QELF程序中还引入了虚函数表段,该虚函数表段可以将软件需要用到的平台抽象层的标准服务接口集中起来,以C语言描述的话,该虚函数段定义了全局函数指针,软件源代码里直接调用这些全局函数指针,当该QELF程序被所述QELF加载器加载时,由该QELF加载器填入实际的各种标准服务接口的函数地址,软件源代码则可通过全局函数指针调用到应用的所述移动终端平台的服务函数,且这些函数被集中在该虚函数表段内,方便QELF加载器加载。软件源代码经编译器编译得到的QELF程序经过打包封装,则得到了QELF文件,QELF文件中可包含一种指令的QELF程序,QELF文件中也可包含多种指令(复合指令)的QELF程序。请一并参见图4,为本发明的QELF文件的实施例的结构示意图;如图4所示,QELF文件中包括X86指令的QELF程序、ARM指令的QELF程序、Java指令的QELF程序、Misc指令的QELF程序和其他指令的QELF程序,并且通过文件数据头标记了这些信息(包括指令信息、位置信息等)。图4所示的复合指令的QELF文件的实现如下假定使用开源的QELF-gcc编译器,则该QELF-gcc编译器需要分别包含X86-Linux_gcc、ARM-Linux-gcc、Misc-Linux-gcc等编译器功能,QELF-gcc根据编译选项,自动调用其内的各编译器进行编译,并把编译结果打包生成图4所示的QELF文件。该QELF文件在使用时,由QELF加载器从中选择与当前移动终端平台相匹配的QELF程序进行加载,然后交由CPU运行。本发明实施例可实现跨平台的可执行程序的加载运行,降低了软件开发商的开发、运营成本,提高了程序执行效率和性能高。为了更清楚的说明本发明,下面将对本发明的可执行程序的跨平台实现方法进行详细介绍。请参见图5,为本发明的可执行程序的跨平台实现方法的实施例的流程图;所述方法包括SlOl,读取标准格式文件。具体实现中,该标准格式文件可以为QELF格式的文件,该QELF文件中包含至少一个QELF程序,其中,任一QELF程序均包含可以用来调用标准服务接口的函数,即QELF程序是使用任一移动终端平台的标准服务接口开发得到的软件源代码经编译获得的可执行程序。具体地,所述QELF程序为X86指令的可执行程序、ARM指令的可执行程序、Java指令的可执行程序和Misc指令的可执行程序中的任一种或多种。可以理解的是,QELF文件中的QELF程序并不限于上述四种指令,其还可以根据实际应用需要,为其他指令的QELF程序。QELF文件存储于所述移动终端的存储器中,当需要运行QELF文件中的可执行程序时,所述SlOl从所述移动终端的存储器中读取所述QELF文件。所述SlOl对可执行程序文件的读取过程与现有技术相同,在此不赘述。S102,从所述标准格式文件中选择与当前平台环境相匹配的可执行程序,将所述可执行程序加载至当前平台的内存中。具体实现中,所述S102优选采用使用平台的原生接口开发得到的QELF加载器,该QELF加载器预先内置于移动终端平台中;比如使用iPhone操作系统的原生服务接口开发得到QELF加载器,该QELF加载器可以且仅可以被内置于使用iPhone操作系统的移动终端(如iPhone手机)中运行;再如使用Android操作系统的原生服务接口开发得到QELF加载器,该QELF加载器可以且仅可以被内置于使用Android操作系统的移动终端(如=Android手机)中运行;再如使用Windows操作系统开发得到的QELF加载器,该QELF加载器可以且仅可以被内置于使用Windows操作系统的移动终端(如PC机)中运行。所述移动终端平台可以为Palm操作系统、Symbian操作系统、Windowsmobile操作系统、Android操作系统、iPhone操作系统、黑莓操作系统、Windows操作系统、Unix操作系统及Linux操作系统中的任一种。使用各种平台的移动终端的上层操作系统完全不相同,但从硬件角度看,使用基于相同指令的CPU的移动终端却能够运行相同指令的QELF程序,比如以Nokia手机(使用Symbian操作系统)、Windowsmobile手机、Android手机和iPhone手机为例,虽然上述各个手机的上层操作系统(平台)完全不相同,但它们均采用基于ARM指令的CPU,因此从硬件角度看,上述各个手机平台的原生可执行程序均为ARM指令的可执行程序,因此,当QELF文件中包含ARM指令的QELF程序时,该QELF文件可以在上述各个手机中使用;再如针对各种PC机(使用Windows操作系统、Unix操作系统或Linux操作系统),虽然上述各种PC机的上层操作系统(平台)完全不相同,但它们均采用基于X86指令的CPU,因此从硬件角度看,上述各种PC机平台的原生可执行程序均为X86指令的可执行程序,因此,当QELF文件中包含X86指令的QELF程序时,该QELF文件可以在上述各种PC机中使用;可以理解的是,上述仅为举例,其他情况下可类似分析,在此不赘述。另外,当QELF文件中同时包含ARM指令的QELF程序和X86指令的QELF程序时,该QELF文件既可以在上述各种手机上使用,也可以在上述各种PC机上使用,当QELF文件被其应用的移动终端读取后,所述加载模块20则从QELF文件中选择与该移动终端的平台相匹配QELF程序进行加载。具体地,当所述SlOl读取出QELF文件后,由于所述QELF文件包括的QELF程序为X86指令的可执行程序、ARM指令的可执行程序、Java指令的可执行程序和Misc指令的可执行程序的任一种或多种,所述S102根据其所在的移动终端的当前平台环境,选择与当前平台环境相匹配的QELF程序,将所述选择的QELF程序加载至所述移动终端的内存中。所述S102对选择的QELF程序进行加载的过程与现有技术类似,在此不赘述。S103,运行所述加载的可执行程序。具体实现中,所述S103采用所述移动终端的CPU来执行,当所述S102将选择的QELF程序加载至所述移动终端的内存后,所述移动终端的CPU从该QELF程序的程序起始点运行该QELF程序。可以理解的是,由于加载的QELF程序包含的指令与所述移动终端的CPU基于的指令相同,因此,所述CPU运行该QELF程序与运行所述移动终端当前平台的原生可执行程序的过程相同,在此不赘述。本发明实施例可实现跨平台的可执行程序的加载运行,降低了软件开发商的开发、运营成本,提高了程序执行效率和性能高。为了更清楚的说明本发明,下面将以一个具体实例来说明本发明的可执行程序的应用。请参见图6,为本发明的可执行程序的应用的实施例的结构示意图;本实施例以Windowsmobile手机为例进行说明。如图6所不,Windowsmobile手机中,其下层为手机硬件,米用基于ARM指令的CPU;上层为Windowsmobile操作系统;Windowsmobile手机中内置有QELF加载器和平台抽象层,该QELF加载器是基于Windowsmobile操作系统的原生服务接口开发得到的,该平台抽象层是基于Windowsmobile操作系统的原生接口封装实现的。QELF文件中包含复合指令的QELF程序,该QELF程序基于该平台抽象层开发编译得至IJ。Windowsmobile手机首先读取QELF文件,QELF加载器从该QELF文件中选择ARM指令的QELF程序,然后为该QELF程序分配内存,将该QELF程序读入内存中,然后依次处理代码段、数据段、BSS段和其他段,最后递归加载所有依赖库,完成加载后,运行起始点跳转到该QELF程序的代码段,QELF加载器交出CPU控制权,则Windowsmobile手机的CPU从跳转到的程序起始点运行该QELF程序。本发明实施例可实现跨平台的可执行程序的加载运行,降低了软件开发商的开发、运营成本,提高了程序执行效率和性能高。通过上述实施例的描述,本发明实施例从标准格式文件(QELF文件)中选择与当前平台环境相匹配的可执行程序进行加载运行,该QELF文件包含一种或多种指令的可执行程序,可直接应用于各种移动终端平台,各移动终端平台可直接从该可执行程序文件中选择与当前平台相适配的可执行程序进行加载运行,实现了可执行程序的跨平台应用,降低了软件开发商的开发、运营成本,提高了程序执行效率和性能;同时,本发明实施例采用统一的标准接口规范对各种平台的原生服务接口进行标准化封装,使各种平台均能够以标准服务接口的形式向外提供服务,在此基础上进行软件开发时,则不需要再考虑平台差异,实现了开发得到的同一份软件源代码可以在所有平台上公用,实现了可执行程序的跨平台应用,降低了软件开发商的开发、运营成本,提高了程序执行效率和性能。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。权利要求1.一种可执行程序的跨平台实现方法,其特征在于,包括读取标准格式文件;从所述标准格式文件中选择与当前平台环境相匹配的可执行程序,将所述可执行程序加载至当前平台的内存中;运行所述加载的可执行程序。2.如权利要求I所述的方法,其特征在于,所述标准格式文件为QELF文件,所述QELF文件中包含至少ー个QELF程序;所述QELF程序为X86指令的可执行程序、ARM指令的可执行程序、Java指令的可执行程序和Misc指令的可执行程序中的任ー种或多种。3.如权利要求2所述的方法,其特征在于,所述QELF文件中的任一QELF程序均包含用于调用所述当前平台的标准服务接ロ的函数;所述QELF程序为调用所述标准服务接ロ开发得到的软件源代码经编译获得的可执行程序。4.如权利要求3所述的方法,其特征在于,所述标准服务接ロ为所述当前平台的原生服务接ロ按预设的标准接ロ规范封装后获得的服务接ロ。5.如权利要求1-4任一项所述的方法,其特征在于,所述当前平台包括Palm操作系统、Symbian操作系统、Windowsmobile操作系统、Android操作系统、iPhone操作系统、黑莓操作系统、Windows操作系统、Unix操作系统及Linux操作系统中的任ー种或多种。6.一种移动終端,其特征在于,包括读取模块,用于读取标准格式文件;加载模块,用于从所述读取模块读取的标准格式文件中选择与当前平台环境相匹配的可执行程序,将所述可执行程序加载至当前平台的内存中;执行模块,用于运行所述加载模块加载的可执行程序。7.如权利要求6所述的移动终端,其特征在于,还包括标准化模块,用于按预设的标准接ロ规范,对所述当前平台的原生服务接ロ进行标准化封装,获得标准服务接ロ。8.如权利要求7所述的移动终端,其特征在于所述标准格式文件为QELF文件,所述QELF文件中包含至少ー个QELF程序;所述QELF程序为X86指令的可执行程序、ARM指令的可执行程序、Java指令的可执行程序和Misc指令的可执行程序中的任ー种或多种。9.如权利要求8所述的移动终端,其特征在于,所述加载模块为QELF加载器。10.如权利要求8所述的移动终端,其特征在于,所述标准化模块为平台抽象层。11.如权利要求10所述的移动终端,其特征在于,所述QELF文件中的任一QELF程序均包含用于调用所述平台抽象层的标准服务接ロ的函数;所述QELF程序为调用所述标准服务接ロ开发得到的软件源代码经编译获得的可执行程序。12.如权利要求6-11任一项所述的移动终端,其特征在于,所述当前平台为所述移动终端的当前操作系统;所述移动终端的当前操作系统为Palm操作系统、Symbian操作系统、Windowsmobile操作系统、Android操作系统、iPhone操作系统、黑莓操作系统、Windows操作系统、Unix操作系统及Linux操作系统中的任ー种。全文摘要本发明实施例公开了提供了一种可执行程序的跨平台实现方法,包括读取标准格式文件;从所述标准格式文件中选择与当前平台环境相匹配的可执行程序,将所述可执行程序加载至当前平台的内存中;运行所述加载的可执行程序。本发明实施例还公开了一种移动终端。采用本发明,可实现移动终端的跨平台的可执行程序的加载运行,执行效率高、性能高、成本低。文档编号G06F9/48GK102681893SQ20111005612公开日2012年9月19日申请日期2011年3月9日优先权日2011年3月9日发明者谢勇波申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1