一种应用程序移植方法、装置、设备及存储介质与流程

文档序号:29935472发布日期:2022-05-07 13:31阅读:71来源:国知局
一种应用程序移植方法、装置、设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种应用程序移植方法、装置、设备及存储介质。


背景技术:

2.随着芯片技术与操作系统的发展,如今很多大规模的应用程序(如云计算平台等)已逐渐无法适应底层操作系统的快速发展变化。在实际应用中,每出现一种新的操作系统,就需要相应地将现有的应用程序移植到新的操作系统上,使该应用程序适应新的操作系统。
3.相关技术中,将现有的应用程序移植到新的操作系统上时,通常需要在新的操作系统上重新编译该应用程序,而在程序编译的过程中往往会出现很多编译问题、依赖问题以及兼容性问题,并且将应用程序移植至不同的操作系统所需面临的问题也是千差万别的。可见,采用上述程序移植方法将应用程序移植到新的操作系统上,移植难度较高,移植效率低,并且在程序移植的过程中会暴露出各种各样的问题。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种应用程序移植方法、装置、设备及存储介质,能够有效地降低程序移植难度,提高程序移植效率。
5.本技术第一方面提供了一种应用程序移植方法,所述方法包括:
6.对待移植程序中的各个组件进行解耦处理,并将解耦处理后的各个组件封装在其各自对应的容器中;
7.根据所述待移植程序中的各个组件之间的调用关系,串联所述各个组件各自对应的容器,得到目标虚拟对象;
8.当需要将所述待移植程序移植至目标对象中时,将所述目标虚拟对象导入所述目标对象,以便在所述目标对象上运行所述待移植程序。
9.可选的,所述将所述目标虚拟对象导入所述目标对象,包括:
10.将所述目标虚拟对象对应的镜像文件导入所述目标对象;
11.所述在所述目标对象上运行所述待移植程序,包括:
12.在所述目标对象上运行所述目标虚拟对象中串联的各个组件各自对应的容器。
13.可选的,当需要将所述待移植程序移植至目标对象中时,所述方法还包括:
14.将所述目标对象中磁盘的磁盘目录映射至所述目标虚拟对象中的存储组件对应的容器,以便在所述目标对象上运行所述待移植程序时,允许所述存储组件对应的容器访问所述目标对象中的磁盘。
15.可选的,所述方法还包括:
16.针对所述目标虚拟对象设置目标通信接口;
17.当需要将所述待移植程序移植至目标对象中时,所述方法还包括:
18.基于所述目标对象的本地网络信息,设置所述目标通信接口对应的网络信息。
19.可选的,当需要将所述待移植程序移植至目标对象中时,所述方法还包括:
20.通过容器编排调度引擎,管理所述目标虚拟对象中各个组件各自对应的容器。
21.可选的,当需要将所述待移植程序移植至目标对象中时,所述方法还包括:
22.基于控制组为所述目标虚拟对象中各个组件各自对应的容器分配所述目标对象的系统资源;
23.基于命名空间针对所述目标虚拟对象中的各个组件各自对应的容器,实现所述系统资源的访问隔离。
24.可选的,所述目标虚拟对象中所述各个组件各自对应的容器通过状态性转移接口进行通信。
25.可选的,所述待移植程序包括以下任一种:云计算平台对应的程序、信息处理平台对应的程序、数据处理平台对应的程序;
26.所述目标对象包括以下任一种:基于信息技术创新芯片的多种不同的操作系统、基于传统芯片的操作系统。
27.本技术第二方面提供了一种应用程序移植装置,所述装置包括:
28.解耦模块,用于对待移植程序中的各个组件进行解耦处理,并将解耦处理后的各个组件封装在其各自对应的容器中;
29.串联模块,用于根据所述待移植程序中的各个组件之间的调用关系,串联所述各个组件各自对应的容器,得到目标虚拟对象;
30.导入模块,用于当需要将所述待移植程序移植至目标对象中时,将所述目标虚拟对象导入所述目标对象,以在所述目标对象上运行所述待移植程序。
31.可选的,所述导入模块具体用于:
32.将所述目标虚拟对象对应的镜像文件导入所述目标对象;
33.在所述目标对象上运行所述目标虚拟对象中串联的各个组件各自对应的容器。
34.可选的,当需要将所述待移植程序移植至目标对象中时,所述装置还包括:
35.存储映射模块,用于将所述目标对象中磁盘的磁盘目录映射至所述目标虚拟对象中的存储组件对应的容器,以便在所述目标对象上运行所述待移植程序时,允许所述存储组件对应的容器访问所述目标对象中的磁盘。
36.可选的,所述装置还包括:
37.通信接口设置模块,用于针对所述目标虚拟对象设置目标通信接口;
38.当需要将所述待移植程序移植至目标对象中时,所述装置还包括:
39.网络信息设置模块,用于基于所述目标对象的本地网络信息,设置所述目标通信接口对应的网络信息。
40.可选的,当需要将所述待移植程序移植至目标对象中时,所述装置还包括:
41.容器管理模块,用于通过容器编排调度引擎,管理所述目标虚拟对象中各个组件各自对应的容器。
42.可选的,当需要将所述待移植程序移植至目标对象中时,所述装置还包括:
43.资源分配模块,用于基于控制组为所述目标虚拟对象中各个组件各自对应的容器分配所述目标对象的系统资源;
44.访问隔离模块,用于基于命名空间针对所述目标虚拟对象中的各个组件各自对应的容器,实现所述系统资源的访问隔离。
45.可选的,所述目标虚拟对象中所述各个组件各自对应的容器通过状态性转移接口进行通信。
46.可选的,所述待移植程序包括以下任一种:云计算平台对应的程序、信息处理平台对应的程序、数据处理平台对应的程序;
47.所述目标对象包括以下任一种:基于信息技术创新芯片的多种不同的操作系统、基于传统芯片的操作系统。
48.本技术第三方面提供了一种电子设备,所述电子设备包括:
49.处理器以及存储器:
50.所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
51.所述处理器用于根据所述计算机程序,执行第一方面所述的应用程序移植方法。
52.本技术第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的应用程序移植方法。
53.本技术第五方面提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面所述的应用程序移植方法。
54.从以上技术方案可以看出,本技术实施例具有以下优点:
55.本技术实施例提供了一种应用程序移植方法,该方法对待移植程序中的各个组件进行解耦处理,将解耦处理后的各个组件封装在其各自对应的容器中;并且根据该待移植程序中的各个组件之间的调用关系,串联各个组件各自对应的容器,以得到目标虚拟对象;当需要将待移植程序移植到目标对象中时,可以将该目标虚拟对象导入目标对象,以便当需要在目标对象上运行待移植程序时,可以直接运行该目标虚拟对象中各组件各自对应的容器。如此,本技术基于容器化技术实现对于大规模应用程序的移植,将从待移植程序中解耦出的组件进行容器化处理,并将各组件各自对应的容器串联起来,当需要移植该待移植程序至目标对象上时,直接在目标对象上运行串联起来的容器即可,相比相关技术中每次移植都需要在目标对象上重新编译待移植程序而言,本技术无需重新编译程序,因此可以避免因重新编译程序而带来的各种问题,大大降低了应用程序移植的难度,提高了应用程序移植的效率。
附图说明
56.图1为本技术实施例提供的应用程序移植方法的流程示意图;
57.图2为基于相关技术实现的云计算平台的移植架构示意图;
58.图3为基于本技术实施例提供的技术方案实现的云计算平台的移植架构示意图;
59.图4为本技术实施例提供的应用程序移植装置的结构示意图;
60.图5为本技术实施例提供的服务器的结构示意图;
61.图6为本技术实施例提供的终端设备的结构示意图。
具体实施方式
62.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的
附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
63.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
64.随着信息技术创新产业的迅速发展,行业内如今不断地涌现出各种各样新型的中央处理器(central processing unit,cpu)芯片以及适配于这些cpu芯片的操作系统。然而,每出现一种新的操作系统,就意味着需要面对与该操作系统相关的应用程序移植问题,即需要将已有的应用程序移植到该新的操作系统上,并使该应用程序与新的操作系统相适配。
65.相关技术中,将已有的应用程序移植到新的操作系统上时,通常需要在新的操作系统上重新编译该应用程序,使该操作系统维护一套该应用程序的代码,而在程序编译过程中往往会遇到很多编译问题、依赖问题以及兼容性问题,并且对于不同的操作系统可能遇到的问题也有所差别。由此可见,采用相关技术中的应用程序移植方法将应用程序移植到新的操作系统上,并使该应用程序与新的操作系统相适配,往往需要面对并解决大量的问题,移植难度高,且移植效率低。
66.针对上述相关技术存在的问题,本技术实施例提供了一种应用程序移植方法,该方法基于容器化技术将待移植的应用程序打包起来,当出现新的操作系统时,只需将打包后的应用程序导入新的操作系统中运行即可,无需在新的操作系统中重新编译该应用程序,如此避免了因程序编译所带来的各种问题,能够有效地降低应用程序移植的难度,提高应用程序移植的效率,使得应用程序的移植技术适应于信息技术创新产业的发展节奏。
67.具体的,在本技术实施例提供的应用程序移植方法中,可以先对待移植程序中的各个组件进行解耦处理,并将解耦处理后的各个组件封装在其各自对应的容器中。此外,还需要根据待移植程序中各个组件之间的调用关系,将各个组件各自对应的容器串联起来,以得到该待移植程序对应的目标虚拟对象。当需要将该待移植程序移植到目标对象中时,可以将该待移植程序对应的目标虚拟对象导入该目标对象,以便当需要在该目标对象上运行该待移植程序时,可以直接运行目标虚拟对象中各组件各自对应的容器。
68.相比相关技术中在新的操作系统上重新编译应用程序的实现方式,本技术实施例提供的技术方案基于容器化技术实现对于应用程序的移植;即将从待移植程序中解耦出的组件封装到对应的容器中,并且根据各组件之间的调用关系将各组件各自对应容器串联起来,当需要将该待移植程序移植到目标对象上时,可以直接将串联起来的容器导入该目标对象,在该目标对象上运行串联起来的容器即可。如此,无需在目标对象上重新编译该待移植程序,可以避免因编译程序而带来的一系列问题,大大降低了应用程序移植的难度,提高了应用程序移植的效率。
69.需要说明的是,本技术实施例提供的应用程序移植方法可以由支持容器化技术的电子设备执行,例如,可以由终端设备或服务器执行,在此不对本技术实施例提供的应用程序移植方法的执行主体做任何限定。
70.下面通过方法实施例对本技术提供的应用程序移植方法进行详细介绍。
71.参见图1,图1为本技术实施例提供的应用程序移植方法的流程示意图。如图1所示,该方法包括以下步骤:
72.步骤101:对待移植程序中的各个组件进行解耦处理,并将解耦处理后的各个组件封装在其各自对应的容器中。
73.在实际应用中,应用程序通常由若干个组件构成,并且这些组件彼此之间存在耦合关系,这种耦合关系也可以理解为组件之间的调用关系,在应用程序运行的过程中,应用程序中的组件基于彼此之间的耦合关系相互协作配合,以实现应用程序的功能。
74.在本技术实施例提供的方法中,针对某一待移植的应用程序(即待移植程序),可以先对该待移植程序中的各个组件进行解耦处理,以得到该待移植程序中各个独立的组件,这些独立的组件之间不再存在耦合关系;然后,针对解耦处理后得到的每个独立的组件,采用容器化技术将其封装在其对应的容器中,例如可以将每个独立的组件封装在其对应的沙箱中。
75.对于一些规模较大的待移植程序,如功能丰富且强大的云计算平台等,可以将该云计算平台中包含的各个耦合的微服务视为上述组件,对该云计算平台中各个耦合的微服务进行解耦处理,并将解耦处理后得到的每个独立的微服务,采用容器化技术相应地封装在其对应的容器中。
76.应理解,在实际应用中,本技术实施例中的待移植程序除了可以为云计算平台对应的程序外,还可以为其它具有可移植性的程序,例如,信息处理平台对应的程序、数据处理平台对应的程序等等,本技术在此不对该待移植程序做任何限定。
77.需要说明的是,容器化技术又称linux container,是一种内核轻量级的操作系统层虚拟化技术,其具有轻量、易部署、易移植、弹性伸缩等特点。容器化技术主要通过控制组(control group,cgroup)和命名空间(namespace)两大机制来保证实现;其中,cgroup主要用于资源控制,其实现原理是将一组进程放置在一个控制组中,通过为该控制组分配指定的可用资源,来达到控制这一组进程可用资源的目的;namespace主要用于访问隔离,其实现原理是针对一类资源进行抽象,并将其封装在一起提供给一个容器使用,每个容器都有可供其使用的抽象资源,并且各个容器的使用资源彼此之间是不可见的,因此可以做到访问隔离。
78.步骤102:根据所述待移植程序中的各个组件之间的调用关系,串联所述各个组件各自对应的容器,得到目标虚拟对象。
79.由于在解耦处理之前待移植程序中的各个组件彼此之间具有耦合关系(即调用关系),并且待移植程序也需要基于各个组件之间的耦合关系才能够正常运行,因此,本技术实施例提供的方法在对待移植程序中的各个组件进行解耦处理,并将解耦处理后的每个组件相应地封装在其对应的容器中后,还需要进一步根据该待移植程序中各个组件之间的调用关系,采用预设的通信方法将封装有各个组件的各个容器串联起来,如此串联得到的各个容器的组合可以为被视为本技术中的目标虚拟对象。
80.在一种可能的实现方式中,根据待移植程序中各个组件之间的调用关系,串联封装有各个组件的各个容器时,可以采用远程过程调用(remote procedure call,grpc)通信方法,将封装有各个组件的各个容器串联起来,使得待移植程序中的每个组件在经过解耦处理后仍能继续保持通信。
81.在另一种可能的实现方式中,根据待移植程序中各个组件之间的调用关系,串联封装有各个组件的各个容器时,可以使目标虚拟对象中各个组件各自对应的容器通过性状态转移接口(restful_api)进行通信,即针对待移植程序中具有调用关系的组件,使其对应的容器通过restful_api进行通信。
82.应理解,在实际应用中,目标虚拟对象中封装有各个组件的各个容器除了可以通过上述grpc通信方法、restful_api进行通信外,还可以根据实际需求采用其它通信方法进行通信,本技术在此不对目标虚拟对象中各个组件各自对应的容器之间的通信方式做任何限定。
83.需要说明的是,考虑到待移植程序中的各个组件对应于同一套流程,即待移植程序的整体运行流程,并且将与该待移植程序对应的目标虚拟对象移植到目标对象上后,目标虚拟对象中各个组件各自对应的容器需要通过一个接口被目标对象调用。因此,还需要针对该目标虚拟对象设置一个目标通信接口,以便在目标对象上运行目标虚拟对象时,目标对象可以直接通过该目标通信接口调用该目标虚拟对象中各个组件各自对应的容器。
84.步骤103:当需要将所述待移植程序移植至目标对象中时,将所述目标虚拟对象导入所述目标对象,以便在所述目标对象上运行所述待移植程序。
85.当需要将待移植程序移植到目标对象中时,可以将经上述步骤102构建的与待移植程序对应的目标虚拟对象导入该目标对象。当需要在目标对象中运行该待移植程序时,可以直接在目标对象中运行与该待移植程序对应目标虚拟对象,即通过运行目标虚拟对象中封装有各个组件的各个容器,实现待移植程序对应的功能。
86.需要说明的是,上述目标对象可以是支持容器运行的各种操作系统。示例性的,在信息技术创新产业快速发展的环境下,上述目标对象可以是基于信息创新芯片的多种不同的操作系统;换言之,通过本技术实施例提供的方法,可以在无需重新编译的条件下,将已有的各种应用程序快速地移植到新兴的各种操作系统上,使得已有的各种应用程序高速适配基于信息创新芯片的各种各样的操作系统。当然,上述目标对象还可以基于传统芯片的多种不同的操作系统,本技术在此不对该目标对象做任何限定。
87.具体将与待移植程序对应的目标虚拟对象导入目标对象中时,可以将目标虚拟对象对应的镜像文件导入目标对象中。相应地,在该目标对象上运行待移植程序时,可以在目标对象上运行该目标虚拟对象中串联的各个组件各自对应的容器。
88.需要说明的是,目标虚拟对象对应的镜像文件可以看成是由多个镜像层叠加起来的文件系统,其中每个镜像层分别对应一个组件,镜像文件中的每个镜像层之间通过指针的形式进行叠加,镜像文件实质上是一堆只读层的统一视角,除了其中的最底层没有指向外,其它每层都指向它的父层,通过统一文件系统(union file system)技术将不同的镜像层整合成一个文件系统,并为这些层提供了一个统一的视角,如此隐藏了多个镜像层的存在。
89.目标虚拟对象与其对应的镜像文件的区别在于,目标虚拟对象的最上面那一层是
可读可写的。当在目标对象中运行目标虚拟对象时,即当目标虚拟对象处于运行状态时,可以将其视为一个可读写的文件系统(即静态的目标虚拟对象)加上隔离的进程空间和其中运行的进程。
90.也就是说,当需要将目标虚拟对象移植到目标对象上时,需要借助目标虚拟对象对应的镜像文件实现该目标虚拟对象的移植,该镜像文件中包括封装有各个组件的各个容器,并且其中的各个容器之间可以通过预设的通信技术进行通信。当需要在目标对象上运行该目标虚拟对象时,可以在该目标虚拟对象对应的镜像文件的基础上增加可读可写层得到目标虚拟对象,进而在目标对象的内核中基于该目标虚拟对象、以及隔离的进程空间和其中运行的进程,实现目标虚拟对象的运行,从而实现待移植程序的功能。
91.正如前文所介绍的,与待移植程序对应的目标虚拟对象在目标对象中运行时,可以通过cgroup和namespace两大机制来保证目标虚拟对象的正常运行。具体的,当待移植程序对应的目标虚拟对象在目标对象中运行时,可以基于cgroup为目标虚拟对象中各个组件各自对应的容器分配目标对象的系统资源,基于namespace针对目标虚拟对象中各个组件各自对应的容器,实现系统资源的访问隔离。
92.基于cgroup为目标虚拟对象中各个组件各自对应的容器分配目标对象的系统资源时,可以将目标虚拟对象的一组进程放置在一个控制组中,通过为该控制组分配指定的可用系统资源,达到控制这一组进程的可用系统资源的目的。该cgroup是linux内核提供的一种可以限制、记录、隔离进程组所使用的系统资源的机制,基于该机制可以对一组进程以及将来的子进程所使用的系统资源进行限制、控制和统计,此处的系统资源包括但不限于:cpu资源、存储资源、网络资源等,通过该cgroup可以方便地限制某组进程的资源占用情况,并且可以实时地监控进程,并统计与该组进程相关的信息。
93.基于namespace针对目标虚拟对象中各个组件各自对应的容器,实现系统资源的访问隔离时,可以针对一类系统资源进行抽象,并将其封装在一起提供给一个容器使用,由于每个容器都有自身可用的抽象系统资源,并且容器可用的抽象系统资源彼此之间是不可用的,因此可以做到系统资源的访问隔离。
94.需要说明的是,正如前文所介绍的,将各个组件各自对应的容器串联起来得到与待移植程序对应的目标虚拟对象后,可以针对该目标虚拟对象设置一个目标通信接口,以便通过该目标通信接口访问目标虚拟对象中各个组件各自对应的容器。此外,为了使用户在访问目标虚拟对象与访问目标对象时没有差别感知,给用户带来访问目标虚拟对象即是访问目标对象的体验,本技术实施例提供的方法还可以基于目标对象的本地网络信息,设置该目标虚拟对象的目标通信接口的网络信息。
95.示例性的,目标对象的本地网络信息可以包括该目标对象的互联网协议地址(internet protocol address,ip地址),相应地,将待移植程序对应的目标虚拟对象移植到目标对象上时,可以将该目标虚拟对象的目标通信接口的ip地址设置为目标对象的ip地址,以通过同一ip地址表示目标虚拟对象和目标对象处于同一本地网络下。
96.当然,在实际应用中,目标通信端口对应的网络信息还可以包括其它信息,在网络环境中,可以通过其它信息来区别目标虚拟对象和目标对象。
97.需要说明的是,目标虚拟对象在目标对象上运行时,往往会涉及到对于目标对象中存储空间的使用,例如,从目标对象的存储空间中读取数据,或者向目标对象的存储空间
中写入数据等等。为了便于目标虚拟对象调用目标对象中的存储空间,本技术实施例提供的方法还包括:
98.将目标对象中磁盘的磁盘目录映射至目标虚拟对象中的存储组件对应的容器,如此,当在目标对象上运行待移植程序时,即当在目标对象上运行目标虚拟对象时,可以允许该存储组件对应的容器访问目标对象中的磁盘。即,在将目标虚拟对象导入目标对象的过程中,可以将目标对象中磁盘的磁盘目录映射至该目标虚拟对象中存储组件对应的容器内,相应地,当目标虚拟对象在目标对象上运行时,目标虚拟对象中存储组件对应的容器可以依据该磁盘目录,访问目标对象中磁盘上与该磁盘目录对应的存储空间。
99.需要说明的是,为了便于目标对象更好地对与待移植程序对应的目标虚拟对象中的容器进行管理控制,在本技术实施例提供的方法中,当将待移植程序对应的目标虚拟对象移植至目标对象中时,可以通过容器编排调度引擎,管理该目标虚拟对象中各个组件各自对应的容器。示例性的,可以通过k8s(kubernetes)管理目标虚拟对象中各个组件各自对应的容器,k8s作为一个为容器服务而生的可移植容器的编排管理工具,可以帮助目标对象更好地管理其中运行的容器,使得应用部署和运维更加方便。
100.相比相关技术中在新的操作系统上重新编译应用程序的实现方式,本技术实施例提供的技术方案基于容器化技术实现对于应用程序的移植;即将从待移植程序中解耦出的组件封装到对应的容器中,并且根据各组件之间的调用关系将各组件各自对应容器串联起来,当需要将该待移植程序移植到目标对象上时,可以直接将串联起来的容器导入该目标对象,在该目标对象上运行串联起来的容器即可。如此,无需在目标对象上重新编译该待移植程序,可以避免因编译程序而带来的一系列问题,大大降低了应用程序移植的难度,提高了应用程序移植的效率。
101.下面以将云计算平台移植至基于信息技术创新芯片的操作系统上为例,对相关技术技术中的方案和本技术实施例提供的方案进行对比介绍。
102.参见图2,图2为基于相关技术实现的云计算平台的移植架构示意图。如图2所示,需要在宿主机(即新的操作系统上)重新编译云计算平台的程序,使得云计算平台的所有服务都运行在该宿主机上,一旦出现新的操作系统,必须重新编辑该云计算平台的程序,使该云计算平台与新的操作系统相适配。
103.参见图3,图3为基于本技术实施例提供的技术方案实现的云计算平台的移植架构示意图。如图3所示,采用容器化技术将云计算平台打包起来,使得该云计算平台相当于一个沙箱,相应地,在宿主机(即新的操作系统上)运行该云计算平台时,可以直接运行该沙箱,以实现云计算平台的功能。如此,无需重新在新的操作系统上编译云计算平台程序,对于各种架构的操作系统而言,只要其能够支持沙箱的运行,即可以保证云计算平台功能的正常实现。
104.本技术实施例还提供了一种应用程序移植装置。参见图4,图4为本技术实施例提供的应用程序移植装置400的结构示意图,如图4所示,该应用程序移植装置400包括:
105.解耦模块401,用于对待移植程序中的各个组件进行解耦处理,并将解耦处理后的各个组件封装在其各自对应的容器中;
106.串联模块402,用于根据所述待移植程序中的各个组件之间的调用关系,串联所述各个组件各自对应的容器,得到目标虚拟对象;
processing units,cpu)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。
128.服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
129.上述实施例中由服务器所执行的步骤可以基于该图5所示的服务器结构。
130.其中,cpu 522用于执行如下步骤:
131.对待移植程序中的各个组件进行解耦处理,并将解耦处理后的各个组件封装在其各自对应的容器中;
132.根据所述待移植程序中的各个组件之间的调用关系,串联所述各个组件各自对应的容器,得到目标虚拟对象;
133.当需要将所述待移植程序移植至目标对象中时,将所述目标虚拟对象导入所述目标对象,以便在所述目标对象上运行所述待移植程序。
134.可选的,cpu 522还可以用于执行本技术实施例提供的应用程序移植方法的任意一种实现方式的步骤。
135.参见图6,图6为本技术实施例提供的一种终端设备的结构示意图。为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术实施例方法部分。该终端可以为包括计算机、平板电脑、个人数字助理(英文全称:personal digital assistant,英文缩写:pda)等任意终端设备,以终端为计算机为例:
136.图6示出的是与本技术实施例提供的终端相关的计算机的部分结构的框图。参考图6,计算机包括:射频(英文全称:radio frequency,英文缩写:rf)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(英文全称:wireless fidelity,英文缩写:wifi)模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的计算机结构并不构成对计算机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
137.存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行计算机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
138.处理器680是计算机的控制中心,利用各种接口和线路连接整个计算机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行计算机的各种功能和处理数据,从而对计算机进行整体监控。可选的,处理
器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
139.在本技术实施例中,该终端所包括的处理器680还具有以下功能:
140.对待移植程序中的各个组件进行解耦处理,并将解耦处理后的各个组件封装在其各自对应的容器中;
141.根据所述待移植程序中的各个组件之间的调用关系,串联所述各个组件各自对应的容器,得到目标虚拟对象;
142.当需要将所述待移植程序移植至目标对象中时,将所述目标虚拟对象导入所述目标对象,以便在所述目标对象上运行所述待移植程序。
143.可选的,所述处理器680还用于执行本技术实施例提供的应用程序移植方法的任意一种实现方式的步骤。
144.本技术实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种应用程序移植方法中的任意一种实施方式。
145.本技术实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种应用程序移植方法中的任意一种实施方式。
146.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
147.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
148.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
149.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
150.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-only memory,英文缩写:rom)、随机存取存储器(英文全称:random access memory,英文缩写:ram)、磁碟或者光盘等各种可以存储计算机程序的介质。
151.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1