CN103677767A - 一种处理应用程序的方法、操作系统及电子设备 - Google Patents

一种处理应用程序的方法、操作系统及电子设备 Download PDF

Info

Publication number
CN103677767A
CN103677767A CN201210324582.XA CN201210324582A CN103677767A CN 103677767 A CN103677767 A CN 103677767A CN 201210324582 A CN201210324582 A CN 201210324582A CN 103677767 A CN103677767 A CN 103677767A
Authority
CN
China
Prior art keywords
application program
compile mode
compile
program
program code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201210324582.XA
Other languages
English (en)
Inventor
李凡智
刘旭国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201210324582.XA priority Critical patent/CN103677767A/zh
Publication of CN103677767A publication Critical patent/CN103677767A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种处理应用程序的方法、操作系统及电子设备。该方法应用在包括M个应用程序的电子设备中,M个应用程序为以第一编译方式编译的且能在第一类硬件平台上运行的程序,该方法包括:基于一预设规则,判断M个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从第一编译方式调整为第二编译方式,第一编译方式与第二编译方式为不同的编译方式;在有N个第一部分程序代码的编译方式需要从第一编译方式调整为第二编译方式时,基于第二编译方式,对N个第一部分程序代码进行编译,获得N个编译过的应用程序,其中,N为小于等于M的整数,N个编译过的应用程序为能在与第一类硬件平台不同的第二类硬件平台上运行的程序。

Description

一种处理应用程序的方法、操作系统及电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种处理应用程序的方法、操作系统及电子设备。
背景技术
计算机时代的到来给嵌入式的发展带来了挑战和机遇,不同架构的硬件体系门类繁多,仅RISC(精简指令集)就有ARM、MIPS等,还有CSIC(复杂指令集)的X86。众多的处理器架构给应用带来了更广阔的选择空间,但随之而来的是应用程序移植所带来的难题。不同架构体系间的系统软件、应用软件不能直接移植。例如,目前大多数Android应用程序都是针对ARM平台而设计的,所以大多数Android应用程序无法在X86平台上运行。
在现有技术中,为了解决上述问题,一般采用两种方法:
第一种,重新修改编译源代码,即将所有Android应用程序重新编译,以兼容X86平台;
第二种,在操作系统中(例如Windows操作系统),构建一个ARM平台的虚拟机,然后在该虚拟机上在跑一个Android操作系统,然后运行这些Android应用程序。
然而,本发明人在实现本发明的过程中发现,现有技术中至少存在如下问题:
现有技术中的第一种方案,需要将所有的Android应用程序进行重新编译,需要编译,还要进一步调试,所以工作量非常大;
现有技术中的第二种方案采用虚拟机,因为虚拟机会产生性能损耗,所以会使得应用程序的性能降低;综上,现有技术中没有一种有效的解决应用程序兼容性低的方案。
发明内容
本发明提供一种处理应用程序的方法、操作系统及电子设备,用以解决现有技术中存在的应用程序兼容性低的技术问题。
本发明一方面提供了一种处理应用程序的方法,应用在包括M个应用程序的电子设备中,其中,所述M个应用程序为以第一编译方式编译的且能在第一类硬件平台上运行的程序,M为大于等于1的整数,所述方法包括:基于一预设规则,判断所述M个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从所述第一编译方式调整为第二编译方式,所述第一编译方式与所述第二编译方式为不同的编译方式;在有N个所述第一部分程序代码的编译方式需要从所述第一编译方式调整为第二编译方式时,基于所述第二编译方式,对N个所述第一部分程序代码进行编译,获得N个编译过的应用程序,其中,N为小于等于M的整数,所述N个编译过的应用程序为能在与所述第一类硬件平台不同的第二类硬件平台上运行的程序。
优选地,所述第一类硬件平台为ARM平台,所述第二类硬件平台为X86平台,所述M个应用程序为Android应用程序,所述第一编译方式为使用精简指令集的编译方式,所述第二编译方式为使用复杂指令集的编译方式。
优选地,基于一预设规则,判断所述M个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从所述第一编译方式调整为第二编译方式,具体包括:判断所述M个应用程序中的每个应用程序中是否有需要使用JNI调用的程序代码;如果有N个应用程序中的每个应用程序都有需要使用JNI调用的程序代码,则确定所述N个应用程序中的每个应用程序中需要使用JNI调用的程序代码需要从所述第一编译方式调整为第二编译方式。
优选地,所述方法还包括:在所述第二类硬件平台上直接运行所述M个应用程序中除N个需要使用JNI调用的应用程序之外的应用程序,以及所述N个应用程序中的每个应用程序中除需要使用JNI调用的程序代码之外的其他程序代码。
优选地,基于一预设规则,判断所述M个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从所述第一编译方式调整为第二编译方式,具体包括:判断所述M个应用程序中的每个应用程序中是否有使用NDK开发的程序代码;如果有N个应用程序中的每个应用程序都有使用NDK开发的程序代码,则确定所述N个应用程序中的每个应用程序中使用NDK开发的程序代码需要从所述第一编译方式调整为第二编译方式。
本发明另一方面还提供一种操作系统,包括:核心层,位于底层;本地指令库,位于所述核心层之上;运行库,位于所述本地指令库之上,所述运行库包括虚拟机和核心库,所述虚拟机用于运行第一应用程序;指令转换器,位于所述运行库之上,用于将所述第一应用程序中的第一部分程序代码的编译方式从第一编译方式转换为第二编译方式,并将以所述第二编译方式编译的所述第一部分程序代码的指令存储在所述核心库内;其中,以所述第一编译方式编译的所述第一部分程序代码能在第一类硬件平台上运行,以所述第二编译方式编译的所述第一部分程序代码、以所述第一编译方式编译的所述第一应用程序中除所述第一部分程序代码外的其他程序代码能在第二类硬件平台上运行;其中,所述第一编译方式不同于所述第二编译方式,所述第一类硬件平台不同于所述第二类硬件平台。
优选地,所述核心层为Linux核心层,所述虚拟机为Dalvik虚拟机,所述运行库为Android运行库,所述第一类硬件平台为ARM平台,所述第二类硬件平台为X86平台,所述第一应用程序为Android应用程序,所述第一编译方式为使用精简指令集的编译方式,所述第二编译方式为使用复杂指令集的编译方式。
优选地,所述第一部分程序代码为需要使用JNI调用的程序代码。
优选地,所述第一部分程序代码为使用NDK开发的程序代码。
本发明再一方面还提供一种电子设备,包括:主板;处理器,设置在所述主板上,所述处理器是基于一第三类硬件平台构建的;如上述的操作系统,安装在所述第三类硬件平台上。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明一实施例只将每一个应用程序中满足一预设规则的部分程序代码进行重新编译,以适应第二类硬件平台,提高了应用程序的兼容性,而且本实施例中的方案并非将每一个应用程序的所有代码都进行重新编译,所以工作量小,效率高;而且也不需要在操作系统上构建第一类硬件平台的虚拟机,所以不会有性能损耗。
进一步,本发明一实施例中,具体是将Android应用程序从ARM平台移植到X86平台,以手机为代表的智能化移动终端设备是计算机技术的一个重要发展方向,自从推出Android系统和基于Android系统的手机以来,很快就在世界手机市场上占有了不小的份额,各种Android手机层出不穷,同样,随之而来的就是从业人员开发出了数量不小的Android应用程序,所以通过本实施例中的技术方案可以将这众多的Android应用程序从ARM平台移植到X86平台,所以免去了重新开发一系列适用X86平台的应用程序的资源消耗。
再进一步,本发明一实施例中将每一个应用程序中需要使用JNI(Java本地调用)调用的程序代码进行指令转换,因为本发明人发现需要JNI调用的程序代码与X86平台不兼容,所以只将这部分程序代码进行指令转换,所以可以简单方便的将这部分程序代码转换为X86平台可以运行的应用程序。
再进一步,本发明一实施例中将每一个应用程序中使用NDK开发的程序代码进行指令转换,因为使用NDK开发的程序代码一般使用的场景都要求具有较高的性能,所以如果使用虚拟机的话就会降低性能,所以也可以将这部分程序代码做指令转换,如此可以获得较高的性能。
更进一步,本发明一实施例中提供了一种操作系统,包括虚拟机、核心库和指令转换器,虚拟机上可以运行第一应用程序,而指令转换器用于将第一应用程序中第一部分程序代码作指令转换,并将转换后的指令存储在核心库内以供第二类硬件平台直接运行。
附图说明
图1为本发明一实施例中的处理应用程序的方法流程图;
图2为本发明一实施例中的操作系统的结构图。
具体实施方式
本发明提供一种处理应用程序的方法、操作系统及电子设备,用以解决现有技术中存在的应用程序兼容性低的技术问题。
本发明实施例中的技术方案为解决上述的技术问题,总体思路如下:
只将满足一预设规则的部分程序代码进行重新编译,以适应第二类硬件平台,提高了应用程序的兼容性,而且本实施例中的方案并非将每一个应用程序的所有代码都进行重新编译,所以工作量小,效率高;而且也不需要在操作系统上构建第一类硬件平台的虚拟机,所以不会有性能损耗。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本发明一实施例提供一种处理应用程序的方法,应用在包括M个应用程序的电子设备中,其中,M个应用程序为以第一编译方式编译的且能在第一类硬件平台上运行的程序,M为大于等于1的整数,该电子设备例如是手机、平板电脑、笔记本电脑、台式电脑等,请参考图1,该方法包括:
步骤101:基于一预设规则,判断M个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从第一编译方式调整为第二编译方式,第一编译方式与第二编译方式为不同的编译方式;
步骤102:在有N个第一部分程序代码的编译方式需要从第一编译方式调整为第二编译方式时,基于第二编译方式,对N个应用程序进行编译,获得N个编译过的应用程序,其中,N为小于等于M的整数,N个编译过的应用程序为能在与第一类硬件平台不同的第二类硬件平台上运行的程序。
该技术方案可提高应用程序在不同平台的兼容性,而且该方案并非将每一个应用程序的所有代码进行重新编译,所以工作量小,效率高;而且也不需要在操作系统上构建第一类硬件平台的虚拟机,所以不会有性能损耗。
为了便于本领域技术人员了解该方法的具体实施过程,以下将举具体的实例来详细说明,其中,电子设备以台式电脑为例,第一类硬件平台以ARM平台为例,第二类硬件平台以X86平台为例,而M个应用程序以Android应用程序为例,第一编译方式即为使用精简指令集的编译方式,第二编译方式即为使用复杂指令集的编译方式,在其他实施例中,电子设备也可以是其他电子设备,而第一类硬件平台和第二类硬件平台也可以是其他硬件平台,M个应用程序也可以是其他适用于第一类硬件平台的程序,但基本实施过程都类似。
在本实施例中,台式电脑中可以包含一个处理器,而该处理器是以X86硬件平台构建的,例如用户通过网络下载了5个Android应用程序,而这5个Android应用程序是针对ARM平台设计的,所以是通过精简指令集编译的。当用户想要将这5个应用程序安装在台式电脑中时,这时就会执行步骤101,即判断这5个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从第一编译方式调整为第二编译方式,而判断的规则是一个预设规则,可以是以下两种但不限于以下两种:
第一是判断这5个应用程序中的每个应用程序中是否有需要使用JNI(Java本地调用)调用的程序代码,JNI调用允许Java代码和其他语言(例如C或C++)写的代码进行交互,即表示需要JNI调用的程序代码需要与本地已编译的代码交互,就会丧失平台可移植性,JNI调用虽然可以保证本地代码能工作在Java虚拟机实现下,但是却不能直接在X86平台上运行,所以需要使用JNI调用的程序代码需要从第一编译方式调整为第二编译方式。
第二是判断这5个应用程序中的每个应用程序中是否有使用NDK(NativeDevelopment Kit)开发的程序代码,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk;因为使用NDK开发的程序代码一方面可能需要JNI调用,另一方面使用NDK开发的应用程序在很多使用场景下都需要较高的性能,例如3D游戏等,所以如果使用虚拟机的话就会使得应用程序的性能降低,达不到用户的要求,所以也需要将这些程序代码从第一编译方式调整为第二编译方式。
当然,预设规则也可以上述两种情况的结合,也可以是其他的规则。
进一步,当例如通过上述两种预设规则判断出来需要调整编译方式的应用程序有两个,即这两个应用程序中有一部分程序代码需要重新编译,则执行步骤102,即基于第二编译方式,对这两个第一部分程序代码进行编译,获得两个编译过的应用程序,在本实施例中,就是将通过简单指令集编译的两个应用程序的每个第一部分程序代码用复杂指令集的编译方式编译出来,所以两个编译过的第一部分程序代码就可被台式电脑直接执行。
步骤102中的调整编译方式,即为指令的转换,从简单指令集的指令到复杂指令集的指令之间的转换为本领域技术人员所熟知的内容,例如可能会使用一条X86指令就可以实现对应与对应多条ARM指令的功能之和,所以在此不再赘述。
在进一步的实施例中,当步骤101中判断出其中3个应用程序不需要做指令转换,例如是通过SDK(Software Development Kit;软件开发工具包)开发的应用程序,则直接在X86平台的台式电脑上运行这3个应用程序,以及那两个需要做指令转换的每个应用程序中的除需要重新编译的第一部分程序代码之外的其他程序代码也可直接在X86平台上直接运行。
在上述实施例中,是以客户端为例进行说明的,但本实施例中的处理应用程序的方法也可以用在第三方设备上,即Android应用程序提供者提供Android应用程序,而第三方用户专门将这些应用程序中的第一部分程序代码进行指令转换,使得指令转换后的应用程序能兼容多个不同的硬件平台,然后再将指令转换后的应用程序上传在网络中的服务器上,而客户端用户可以直接下载这些已经指令转换后的应用程序,直接进行运行,不需要再做指令转换,所以非常方便,而且客户端设备也不需要做任何改进,所以成本低。
本发明另一实施例还提供一种操作系统,请参考图2,该操作系统包括:核心层201,位于底层;本地指令库202,位于核心层201之上;运行库203,位于本地指令库202之上,运行库203包括虚拟机2032和核心库2031,虚拟机2032用于运行第一应用程序;指令转换器204,位于运行库203之上,用于将第一应用程序中的第一部分程序代码的编译方式从第一编译方式转换为第二编译方式,并将以第二编译方式编译的第一部分程序代码的指令存储在核心库2031内;其中,以第一编译方式编译的第一应用程序能在第一类硬件平台上运行,以第二编译方式编译的第一部分程序代码、以第一编译方式编译的第一应用程序中除第一部分程序代码外的其他程序代码能在第二类硬件平台上运行;其中,第一编译方式不同于第二编译方式,第一类硬件平台不同于第二类硬件平台。
该操作系统可安装于电子设备中,用于实现前述的处理应用程序的方法,在具体实施过程中,该操作系统可以是根据Android操作系统改进而得到的,例如核心层201可以是Linux核心层,虚拟机2032可以是Dalvik虚拟机,运行库203为Android运行库。
进一步的,该操作系统还包括应用框架(图中未示出),位于运行库203和指令转换器204之上。
在本实施例中,第一类硬件平台为ARM平台,第二类硬件平台为X86平台,而第一应用程序为Android应用程序,第一编译方式为使用精简指令集的编译方式,第二编译方式为使用复杂指令集的编译方式。
另外,如前述方法实施例中所介绍,当该操作系统安装于X86平台时,例如像需要使用JNI调用的程序代码或者是使用NDK开发的程序代码就需要通过指令转换器204将其转换为可在X86平台上运行的程序,即只要客户端安装了该操作系统,用户就可以直接下载并安装现有的、以及后续开发出来的大量的Android应用程序,所以免去了重新开发一系列适用X86平台的应用程序的资源消耗。
进一步,在Dalvik虚拟机上还可以运行的第二应用程序,例如是通过SDK开发的应用程序。
本发明另一实施例还提供一种电子设备,包括:主板;处理器,设置在主板上,该处理器是基于一第三类硬件平台构建的。该电子设备还包括一操作系统,安装在第三类硬件平台上,该操作系统可以是前述实施例中的操作系统及其各种变化形态。
其中,第三类硬件平台可以与第一类硬件平台相同,也可以与第二类硬件平台相同,或者也可以与第一类硬件平台和第二类硬件平台都不同。当第三类硬件平台与第二类硬件平台相同时,例如都是X86的平台,那么该电子设备就可以直接运行指令转换后的应用程序;当该电子设备作为第三方使用时,第三类硬件平台可以和第一类硬件平台和第二类硬件平台都不同,第三方可以将第二类应用程序做指令转换,然后上传至网络中,其他第二类硬件平台的电子设备可直接下载指令转换后的应用程序来使用。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明一实施例只将每一个应用程序中满足一预设规则的部分程序代码进行重新编译,以适应第二类硬件平台,提高了应用程序的兼容性,而且本实施例中的方案并非将每一个应用程序的所有代码都进行重新编译,所以工作量小,效率高;而且也不需要在操作系统上构建第一类硬件平台的虚拟机,所以不会有性能损耗。
进一步,本发明一实施例中,具体是将Android应用程序从ARM平台移植到X86平台,以手机为代表的智能化移动终端设备是计算机技术的一个重要发展方向,自从推出Android系统和基于Android系统的手机以来,很快就在世界手机市场上占有了不小的份额,各种Android手机层出不穷,同样,随之而来的就是从业人员开发出了数量不小的Android应用程序,所以通过本实施例中的技术方案可以将这众多的Android应用程序从ARM平台移植到X86平台,所以免去了重新开发一系列适用X86平台的应用程序的资源消耗。
再进一步,本发明一实施例中将每一个应用程序中需要使用JNI(Java本地调用)调用的程序代码进行指令转换,因为本发明人发现需要JNI调用的程序代码与X86平台不兼容,所以只将这部分程序代码进行指令转换,所以可以简单方便的将这部分程序代码转换为X86平台可以运行的应用程序。
再进一步,本发明一实施例中将每一个应用程序中使用NDK开发的程序代码进行指令转换,因为使用NDK开发的程序代码一般使用的场景都要求具有较高的性能,所以如果使用虚拟机的话就会降低性能,所以也可以将这部分程序代码做指令转换,如此可以获得较高的性能。
更进一步,本发明一实施例中提供了一种操作系统,包括虚拟机、核心库和指令转换器,虚拟机上可以运行第一应用程序,而指令转换器用于将第一应用程序中第一部分程序代码作指令转换,并将转换后的指令存储在核心库内以供第二类硬件平台直接运行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种处理应用程序的方法,应用在包括M个应用程序的电子设备中,其中,所述M个应用程序为以第一编译方式编译的且能在第一类硬件平台上运行的程序,M为大于等于1的整数,其特征在于,所述方法包括:
基于一预设规则,判断所述M个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从所述第一编译方式调整为第二编译方式,所述第一编译方式与所述第二编译方式为不同的编译方式;
在有N个所述第一部分程序代码的编译方式需要从所述第一编译方式调整为第二编译方式时,基于所述第二编译方式,对N个所述第一部分程序代码进行编译,获得N个编译过的应用程序,其中,N为小于等于M的整数,所述N个编译过的应用程序为能在与所述第一类硬件平台不同的第二类硬件平台上运行的程序。
2.如权利要求1所述的方法,其特征在于,所述第一类硬件平台为ARM平台,所述第二类硬件平台为X86平台,所述M个应用程序为Android应用程序,所述第一编译方式为使用精简指令集的编译方式,所述第二编译方式为使用复杂指令集的编译方式。
3.如权利要求2所述的方法,其特征在于,基于一预设规则,判断所述M个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从所述第一编译方式调整为第二编译方式,具体包括:
判断所述M个应用程序中的每个应用程序中是否有需要使用JNI调用的程序代码;
如果有N个应用程序中的每个应用程序都有需要使用JNI调用的程序代码,则确定所述N个应用程序中的每个应用程序中需要使用JNI调用的程序代码需要从所述第一编译方式调整为第二编译方式。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:在所述第二类硬件平台上直接运行所述M个应用程序中除N个需要使用JNI调用的应用程序之外的应用程序,以及所述N个应用程序中的每个应用程序中除需要使用JNI调用的程序代码之外的其他程序代码。
5.如权利要求2所述的方法,其特征在于,基于一预设规则,判断所述M个应用程序中的每个应用程序中是否有第一部分程序代码的编译方式需要从所述第一编译方式调整为第二编译方式,具体包括:
判断所述M个应用程序中的每个应用程序中是否有使用NDK开发的程序代码;
如果有N个应用程序中的每个应用程序都有使用NDK开发的程序代码,则确定所述N个应用程序中的每个应用程序中使用NDK开发的程序代码需要从所述第一编译方式调整为第二编译方式。
6.一种操作系统,其特征在于,包括:
核心层,位于底层;
本地指令库,位于所述核心层之上;
运行库,位于所述本地指令库之上,所述运行库包括虚拟机和核心库,所述虚拟机用于运行第一应用程序;
指令转换器,位于所述运行库之上,用于将第一应用程序中的第一部分程序代码的编译方式从第一编译方式转换为第二编译方式,并将以所述第二编译方式编译的所述第一部分程序代码的指令存储在所述核心库内;其中,以所述第一编译方式编译的所述第一应用程序能在第一类硬件平台上运行,以所述第二编译方式编译的所述第一部分程序代码、以所述第一编译方式编译的所述第一应用程序中除所述第一部分程序代码外的其他程序代码能在第二类硬件平台上运行;其中,所述第一编译方式不同于所述第二编译方式,所述第一类硬件平台不同于所述第二类硬件平台。
7.如权利要求6所述的操作系统,其特征在于,所述核心层为Linux核心层,所述虚拟机为Dalvik虚拟机,所述运行库为Android运行库,所述第一类硬件平台为ARM平台,所述第二类硬件平台为X86平台,所述第一应用程序为Android应用程序,所述第一编译方式为使用精简指令集的编译方式,所述第二编译方式为使用复杂指令集的编译方式。
8.如权利要求7所述的操作系统,其特征在于,所述第一部分程序代码为需要使用JNI调用的程序代码。
9.如权利要求7所述的操作系统,其特征在于,所述第一部分程序代码为使用NDK开发的程序代码。
10.一种电子设备,其特征在于,包括:
主板;
处理器,设置在所述主板上,所述处理器是基于一第三类硬件平台构建的;
如权利要求6-9中任一项权利要求所述的操作系统,安装在所述第三类硬件平台上。
CN201210324582.XA 2012-09-04 2012-09-04 一种处理应用程序的方法、操作系统及电子设备 Pending CN103677767A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210324582.XA CN103677767A (zh) 2012-09-04 2012-09-04 一种处理应用程序的方法、操作系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210324582.XA CN103677767A (zh) 2012-09-04 2012-09-04 一种处理应用程序的方法、操作系统及电子设备

Publications (1)

Publication Number Publication Date
CN103677767A true CN103677767A (zh) 2014-03-26

Family

ID=50315445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210324582.XA Pending CN103677767A (zh) 2012-09-04 2012-09-04 一种处理应用程序的方法、操作系统及电子设备

Country Status (1)

Country Link
CN (1) CN103677767A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035809A (zh) * 2014-04-29 2014-09-10 哈尔滨工程大学 一种基于Dalvik虚拟机JNI机制中接口函数性能优化方法
CN105760239A (zh) * 2016-02-03 2016-07-13 北京元心科技有限公司 在第二系统中访问用于第一系统的第三方库的方法及系统
CN108304246A (zh) * 2016-09-29 2018-07-20 联芯科技有限公司 识别目标文件的方法与设备
CN111488140A (zh) * 2019-01-29 2020-08-04 杭州海康威视数字技术股份有限公司 一种支持多编程语言多编程库的方法、装置和计算机设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035809A (zh) * 2014-04-29 2014-09-10 哈尔滨工程大学 一种基于Dalvik虚拟机JNI机制中接口函数性能优化方法
CN105760239A (zh) * 2016-02-03 2016-07-13 北京元心科技有限公司 在第二系统中访问用于第一系统的第三方库的方法及系统
CN105760239B (zh) * 2016-02-03 2019-04-16 北京元心科技有限公司 在第二系统中访问用于第一系统的第三方库的方法及系统
CN108304246A (zh) * 2016-09-29 2018-07-20 联芯科技有限公司 识别目标文件的方法与设备
CN111488140A (zh) * 2019-01-29 2020-08-04 杭州海康威视数字技术股份有限公司 一种支持多编程语言多编程库的方法、装置和计算机设备
CN111488140B (zh) * 2019-01-29 2023-10-27 杭州海康威视数字技术股份有限公司 一种支持多编程语言多编程库的方法、装置和计算机设备

Similar Documents

Publication Publication Date Title
CN104035781B (zh) 一种快速开发异构并行程序的方法
Chun et al. Clonecloud: elastic execution between mobile device and cloud
RU2486579C2 (ru) Устройство терминала, имеющее основанную на виртуальной машине (vm) структуру уровней для выполнения разнородных приложений
US20160041816A1 (en) Systems and methods for mobile applications
US20200167139A1 (en) Dynamic generation of cpu instructions and use of the cpu instructions in generated code for a softcore processor
RU2009115662A (ru) Среда разработки программного обеспечения для "тонкого" клиента
WO2014048215A1 (zh) 一种应用的开发、编译和调试方法以及装置
CN104375849A (zh) 加载内核的方法及装置
Wu et al. Porting mobile web application engine to the android platform
CN104090765A (zh) 一种手机游戏转网页游戏的方法及装置
CN101859244A (zh) 多工具链工程构建方法及系统
Wu et al. Android unikernel: Gearing mobile code offloading towards edge computing
US20140109068A1 (en) Method for compiling an intermediate code of an application
CN103473072B (zh) 一种移动云计算应用程序开发方法
CN103488466A (zh) 用于执行应用程序的方法和装置
KR102298766B1 (ko) 타겟 디바이스에 대한 딥러닝 모델 변환 장치 및 방법
CN103677767A (zh) 一种处理应用程序的方法、操作系统及电子设备
CN103443763A (zh) 包含对重写虚拟函数的调用的支持的isa桥接
CN103176899A (zh) 手机模拟器及在宿主机上模拟手机功能的方法
CN101030241A (zh) 基于Keil C51的软件保护开发的方法和系统
Taivalsaari et al. The web as a software platform: Ten years later
CN114115964B (zh) 一种用于Unity的热更新方法、装置、计算设备及计算机可读存储介质
CN107179903B (zh) 用于使用模型驱动开发来开发基于移动的应用的系统和方法
CN102034028A (zh) 跨客户端平台的网络游戏引擎系统
CN114327405A (zh) 数据处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20140326

RJ01 Rejection of invention patent application after publication