CN114217904A - 一种多版本应用运行方法、计算设备及存储介质 - Google Patents

一种多版本应用运行方法、计算设备及存储介质 Download PDF

Info

Publication number
CN114217904A
CN114217904A CN202111551937.4A CN202111551937A CN114217904A CN 114217904 A CN114217904 A CN 114217904A CN 202111551937 A CN202111551937 A CN 202111551937A CN 114217904 A CN114217904 A CN 114217904A
Authority
CN
China
Prior art keywords
version
application
virtual
environment
library
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
CN202111551937.4A
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.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software Technology Co 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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202111551937.4A priority Critical patent/CN114217904A/zh
Publication of CN114217904A publication Critical patent/CN114217904A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种多版本应用运行方法、计算设备及存储介质,计算设备中包括第一版本库,并基于第一版本库运行有第一版本应用。多版本应用运行方法包括步骤:在计算设备中兼容安装第二版本库;根据第二版本库安装第二版本应用,得到第二版本应用的安装信息;根据安装信息构建虚拟环境应用;通过虚拟环境应用创建虚拟运行空间;在虚拟运行空间中根据第二版本库运行第二版本应用。本发明通过兼容安装不同版本的版本库,并且构建虚拟环境应用,再通过虚拟环境应用创建虚拟运行空间,使不同版本的应用程序运行空间隔离,并基于不同的版本库运行,从而实现了同时运行不同的版本的同一应用程序。

Description

一种多版本应用运行方法、计算设备及存储介质
技术领域
本发明涉及操作系统领域,特别涉及一种多版本应用运行方法、计算设备及存储介质。
背景技术
随着计算机技术的发展,开发出了越来越多的应用程序。而使用应用程序的过程中,由于新旧版本的兼容性和功能不同,有时需要同时运行多个不同版本的应用程序。不同版本的应用程序所依赖的版本库不同,版本库即应用程序运行所依赖的函数库。
在现有技术中,当需要运行第一个版本的应用程序时,安装第一版本的函数库,从而运行第一个版本的应用程序。当需要运行第二个版本的应用程序时,安装第二个版本的函数库,需要将第一个版本的函数库覆盖,才能正常运行第二个版本的应用程序。上述安装方式导致只能同时安装一个版本的函数库,并运行相应的版本的应用程序,无法实现多个版本的应用程序共同运行。
为此,需要一种新的多版本应用运行方法。
发明内容
为此,本发明提供一种多版本应用运行方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种多版本应用运行方法,适于在计算设备中执行,计算设备中包括第一版本库,并基于第一版本库运行有第一版本应用,方法包括步骤:在计算设备中兼容安装第二版本库;根据第二版本库安装第二版本应用,得到第二版本应用的安装信息;根据安装信息构建虚拟环境应用;通过虚拟环境应用创建虚拟运行空间;在虚拟运行空间中根据第二版本库运行第二版本应用。
可选地,在根据本发明的方法中,计算设备中兼容安装第二版本库包括步骤:对计算设备中的版本库进行检测;若检测到包括第一版本库,则保留第一版本库,并安装第二版本库到不同的存储路径,使第二版本库与第一版本库共存。
可选地,在根据本发明的方法中,计算设备中包括第二版本应用的安装包,根据第二版本库安装第二版本应用包括步骤:加载第二版本应用的安装包中的应用文件;根据第二版本库设置第二版本应用的配置信息;根据应用文件、配置信息和第二版本库的存储路径生成第二版本应用的安装信息来安装第二版本应用。
可选地,在根据本发明的方法中,还包括步骤:根据安装信息构建虚拟环境应用包括步骤:根据安装信息设置解析模块,解析模块根据安装信息获应用文件、配置信息和版本库;设置构建模块,构建模块根据应用文件、配置信息和版本库的存储路径构建虚拟运行空间;根据解析模块和构建模块构建虚拟环境应用。
可选地,在根据本发明的方法中,计算设备中还包括适于运行第一版本应用或第二版本应用的基础运行文件,通过虚拟环境应用创建虚拟运行空间包括步骤:通过虚拟环境应用的解析模块,根据第二版本应用的安装信息获取应用文件、配置信息和第二版本库;通过虚拟环境应用的构建模块,根据基础运行文件构建基础运行环境;通过构建模块,根据应用文件和配置信息构建专用运行环境;通过构建模块,根据第二版本库构建兼容运行环境;通过构建模块,根据基础运行环境、专用运行环境和兼容运行环境构建虚拟运行空间。
可选地,在根据本发明的方法中,在虚拟运行空间中根据第二版本库运行第二版本应用包括步骤:在虚拟运行环境中根据第二版本库和应用文件运行第二版本应用。
可选地,在根据本发明的方法中,通过虚拟环境应用创建虚拟运行空间还包括步骤:生成并存储所构建的虚拟运行环境的构建信息。
可选地,在根据本发明的方法中,还包括步骤:再次运行第二版本应用时,判断计算设备中是否存储有运行第二版本应用的虚拟运行环境的构建信息;若存储有运行第二版本应用的虚拟运行环境的构建信息,则根据虚拟运行环境的构建信息构建虚拟运行环境,以便运行第二版本应用。
根据本发明的另一个方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的多版本应用运行方法。
根据本发明的再一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的多版本应用运行方法。
本发明公开了一种多版本应用运行方法,适于在计算设备中执行。计算设备包括第一版本库,并基于第一版本库运行有第一版本应用,包括步骤:首先在计算设备中兼容安装第二版本库,使第一版本库与第二版本库共存。随后根据第二版本库安装第二版本应用,得到第二版本应用的安装信息。为了同时运行第二版本应用,根据安装信息构建虚拟环境应用,再通过虚拟环境应用创建虚拟运行空间,在虚拟运行空间中根据第二版本库运行第二版本应用。本发明通过兼容安装不同版本的版本库,并且构建虚拟环境应用,再通过虚拟环境应用创建虚拟运行空间,使不同版本的应用程序运行空间隔离,并基于不同的版本库运行,从而实现了同时运行不同的版本的同一应用程序。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本发明公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的计算设备中运行多版本应用的示意图;
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图;
图3示出了根据本发明一个示范性实施例的多版本应用运行方法300的流程示意图;
图4示出了根据本发明一个示范性实施例的安装第二版本应用的流程示意图;
图5示出了根据本发明一个示范性实施例的构建虚拟运行环境的流程示意图;
图6示出了根据本发明一个示范性实施例的第一版本应用运行环境的示意图;
图7示出了根据本发明一个示范性实施例的第二版本应用运行环境的示意图;
图8示出了根据本发明一个示范性实施例的虚拟运行应用运行第二版本应用的运行流程的示意图;
图9示出了根据现有技术中运行第二版本应用的流程示意图;以及
图10示出了根据本发明一个示范性实施例的运行第二版本应用的流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的计算设备中运行多版本应用示意图。如图1所示,计算设备200中运行有操作系统110,还基于操作系统110运行有第一版本应用110。本发明对操作系统110的种类不做限制。为了在操作系统110中同时运行第二版本应用140,需要构建虚拟环境应用130构建虚拟运行环境,将第二版本应用140在虚拟运行环境中运行。第一版本应用110和第二版本应用140为同一应用的不同版本。本发明对第一版本应用和第二版本应用的应用类型不做限制。
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。如图2所示,在基本配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个程序222以及程序数据228。在一些实施方式中,程序222可以布置为在操作系统上由一个或者多个处理器204利用程序数据228执行根据本发明的方法300的指令223。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作系统220、程序222以及数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行程序222时,经由储存接口总线234而加载到系统存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外围接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为以便经由一个或者多个通信端口264与一个或者多个其他计算设备200通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,程序222包括多版本应用运行方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的计算设备200中运行的多版本应用运行方法300中的部分步骤,以便计算设备200中的各部分通过执行本发明的多版本应用运行方法300来实现同时运行多个版本的应用。
计算设备200可以实现为服务器,例如文件服务器、数据库、服务器、应用程序服务器等,这些电子设备可以是诸如个人数字助理(PDA)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,也在一些实施例中,计算设备200被配置为多版本应用运行方法300。
图3示出了根据本发明一个示范性实施例的多版本应用运行方法300的流程示意图。多版本应用运行方法300适于在计算设备中运行,计算设备中运行包括第一版本库,并基于第一版本库运行有第一版本应用。第一版本库为第一版本应用运行所基于的特定版本的函数库。本发明对安装第一版本库和安装第一版本应用的方式不做限制,当计算设备中不存在其他版本的版本库或应用时,可正常安装版本库及相应的应用。
首先执行步骤S310,在计算设备中兼容安装第二版本库。兼容安装是指要使安装的新版本库与计算设备安装新版本库之前所包括的版本库共存。兼容安装第二版本库时,对计算设备中的版本库进行检测,若检测到包括第一版本库,则第一版本库为计算设备安装第二版本库之前所包括的版本库,需要保留第一版本库,并安装第二版本库到不同的存储路径,使第二版本库与第一版本库共存。第二版本库与第一版本库在不同的存储路径下存储。版本库包括第一版本库等,若检测到其他版本的版本库,也保留其他版本的版本库,并安装第二版本库到不同的存储路径,使第二版本库与其他版本的版本库共存。
随后,执行步骤S320,根据第二版本库安装第二版本应用,得到第二版本应用的安装信息。计算设备中还包括第二版本应用的安装包。第二版本应用的安装包由开发人员预先构建,用于安装第二版本应用。具体的,安装第二版本应用时,先加载第二版本应用的安装包中的应用文件,随后根据第二版本库设置第二版本应用的配置信息。配置信息规定了应用文件执行时的多种配置项,本发明对配置项的类型不做限制,可包括应用固有配置和用户自定义配置等。根据第二版本库设置第二版本应用的配置信息,便于使应用文件执行时调用第二版本库中的函数,根据配置信息完成第二版本应用的各项配置,并执行相应操作。接着根据应用文件、配置信息和第二版本库的存储路径生成第二版本应用的安装信息来安装第二版本应用。安装信息包括应用文件、配置信息和第二版本库的存储路径。
根据本发明的一个实施例,第二版本应用为appA_v2,其依赖的第二版本库为libqt5.so;第一版本应用为appA_v1,其依赖的第一版本库为libqt4.so。图4示出了根据本发明一个示范性实施例的安装第二版本应用的流程示意图。如图4所示,安装第二版本库libqt5.so时,先检查计算设备中更是否已经安装有版本库;若计算设备中未安装有版本库,则可正常安装第二版本库libqt5.so,并基于第二版本库libqt5.so安装第二版本应用appA_v2。若计算设备中安装有第一版本库libqt4.so,则保留第一版本库libqt4.so,并安装第二版本库libqt5.so到不同的存储路径,使第二版本库libqt5.so与第一版本库libqt4.so共存。接着根据第二版本库libqt5.so安装第二版本应用appA_v2,生成并保存第二版本应用appA_v2的安装信息。
随后,执行步骤S330,根据安装信息构建虚拟环境应用。构建虚拟环境应用时,先根据安装信息设置解析模块,解析模块根据安装信息获应用文件、配置信息和版本库。解析模块用于对安装信息进行解析,得到应用文件、配置信息和版本库的存储路径;接着根据应用文件、配置信息和版本库的存储路径获取应用文件、配置信息和版本库。
构建虚拟环境应用时,还设置构建模块,并根据解析模块和构建模块构建虚拟环境应用。构建模块根据应用文件、配置信息和版本库的存储路径构建虚拟运行空间。需要说明的是,本发明对所构建的虚拟环境应用所能够用于执行应用的种类和版本不做限制,虚拟环境应用可用于构建第一版本应用、第二版本应用和其他版本应用运行所需要的虚拟运行环境,还能够构建其他应用的多个版本运行多需要的虚拟运行环境。
在需要同时运行另外版本的应用,如第三版本应用运行所需要的虚拟运行环境时,不需要再次构建虚拟环境应用,直接根据已经构建的虚拟环境应用创建虚拟运行环境即可。第三版本应用、第一版本应用和第二版本应用均为同一应用的不同版本。
根据本发明的一个实施例,虚拟环境应用在通过虚拟环境应用创建虚拟运行空间时,还生成并存储所构建的虚拟运行环境的构建信息。再次运行第二版本应用时,虚拟环境应用判断计算设备中是否存储有运行第二版本应用的虚拟运行环境的构建信息,若存储有运行第二版本应用的虚拟运行环境的构建信息,则根据虚拟运行环境的构建信息构建虚拟运行环境,以便运行第二版本应用。构建信息包括目标文件夹及其中所挂载的文件信息。
计算设备中还包括适于运行第一版本应用或第二版本应用的基础运行文件,基础运行文件包括通用库,通用工具等。第一版本应用和第二版本应用运行所需要的基础运行环境相同。
根据本发明的一个实施例,虚拟运行环境可实现为沙箱(Sandboxie,或称作沙盒),沙箱是一个限制应用程序对系统资源的访问的运行环境。沙箱本质为一虚拟系统程序,沙箱提供的虚拟运行环境对其中运行的应用是独立的,且不会对现有的操作系统产生影响。本发明中,相应版本应用在虚拟运行环境运行后,所产生的数据能够存储到操作系统中的预设存储位置,用户依旧可从预设存储位置中获取应用的运行结果,得到应用的运行数据。用户对于构建虚拟运行环境并无感知,能够兼容的打开运行多种不同版本的应用,提高了用户的使用不同版本应用的使用体验。本发明对虚拟运行环境的实现方式不做限制。
现有技术中可采用容器技术或虚拟机运行应用。本发明中沙箱不同于容器(Docker),在容器中运行对应版本应用需要预先安装容器所需要的各种程序,如Docker引擎等;并且容器向外提供服务,运行环境较为开放,能够与外界进行无限制的数据交互,降低了应用运行的安全性。本发明使用沙箱提供虚拟运行环境,不仅运行应用时更加简便,安全性也更高。
采用虚拟机运行应用时,需要向虚拟机分配计算机资源,不仅构建虚拟机的过程较为复杂,而且构建虚拟机造成较多性能损耗;在有限制的计算机资源下,不可能大量构建虚拟机以运行多个版本的应用。因此本发明相交于采用虚拟机运行应用步骤更加简单,同时大幅降低对计算机资源的消耗,具有较高的资源使用效率。
图5示出了根据本发明一个示范性实施例的构建虚拟运行环境的流程示意图。如图5所示,虚拟运行应用构建虚拟运行环境时,通过解析模块对安装信息进行解析,得到应用文件、配置信息和版本库的存储路径,接着根据应用文件、配置信息和版本库的存储路径获取应用文件、配置信息和版本库;设置一个目标文件夹,目标文件夹为操作系统的文件系统下的一个文件夹,将目标文件夹设置为虚拟运行环境的范围,相应版本应用的运行全过程均在该目标文件夹下进行。
接着通过构建模块构建基础运行环境。具体的:将基础运行文件,包括通用库和通用工具等挂载到目标文件夹下,并根据通用库和通用工具生成相应版本应用运行所需要的通用环境变量。挂载是指将文件关联到文件系统的目标文件夹下,便于相应版本应用在目标文件夹下访问该文件,该目标文件夹即为挂载点。挂载操作可通过mount机制实现,本发明对挂载操作的具体实现方式不做限制。
随后,判断是否构建有专用运行环境。虚拟环境应用首次构建虚拟运行环境时,会保存专用运行环境,便于后续快速构建虚拟运行环境。当虚拟环境应用不是首次构建虚拟运行环境时,判断有保存的专用运行环境,则直接构建兼容运行环境。当虚拟环境应用首次构建虚拟运行环境,则需要构建专用运行环境。具体的:将应用文件和配置信息挂载到目标文件夹下,并根据应用文件和配置信息生成相应版本应用所需要的专用环境变量。
随后,通过构建模块构建兼容运行环境。具体的:将相应版本的版本库挂载到目标文件夹下。
完成构建基础运行环境、专用运行环境和兼容运行环境后,根据基础运行环境、专用运行环境和兼容运行环境构建虚拟运行空间,具体的:将目标文件夹作为虚拟运行环境的虚拟文件系统,以便相应版本应用使用虚拟文件系统中的文件和变量等参数进行运行。
随后,执行步骤S340,通过虚拟环境应用创建虚拟运行空间。首先通过虚拟环境应用的解析模块,根据第二版本应用的安装信息获取应用文件、配置信息和第二版本库。具体的,通过解析模块对第二版本应用的安装信息进行解析,得到应用文件、配置信息和第二版本库的存储路径,接着根据应用文件、配置信息和第二版本库的存储路径获取应用文件、配置信息和第二版本库;设置一个目标文件夹,目标文件夹为操作系统的文件系统下的一个文件夹,将目标文件夹设置为虚拟运行环境的范围,第二版本应用的运行全过程均在该目标文件夹下进行。
随后通过虚拟环境应用的构建模块,根据基础运行文件构建基础运行环境;具体的:将基础运行文件,包括通用库和通用工具等挂载到目标文件夹下,并根据通用库和通用工具生成第二版本应用运行所需要的通用环境变量。
随后通过构建模块,根据应用文件和配置信息构建专用运行环境;具体的:将应用文件和配置信息挂载到目标文件夹下,并根据应用文件和配置信息生成相应版本应用所需要的专用环境变量。
随后通过构建模块,根据第二版本库构建兼容运行环境;具体的:将第二版本库挂载到目标文件夹下。
最后通过构建模块,根据基础运行环境、专用运行环境和兼容运行环境构建虚拟运行空间,具体的:将目标文件夹作为虚拟运行环境的虚拟文件系统,以便第二版本应用使用虚拟文件系统中的文件和变量等参数进行运行。
图6示出了根据本发明一个示范性实施例的第一版本应用运行环境的示意图。图7示出了根据本发明一个示范性实施例的第二版本应用运行环境的示意图。第一版本应用运行环境和第二版本应用运行环境结构相同,而第一版本应用运行环境由操作系统直接提供,而第二版本应用运行环境为虚拟运行应用所创建的虚拟运行环境。
随后,执行步骤S350,在虚拟运行空间中根据所述第二版本库运行第二版本应用,具体的在虚拟运行环境中根据第二版本库和应用文件运行第二版本应用,第二版本应用运行时从虚拟运行环境中调用文件和变量等实现正常运行。
根据本发明的一个实施例,虚拟环境应用在创建虚拟运行环境后,对虚拟运行环境进行保存,以便后续需要运行对应版本应用时,直接启动所保存的虚拟运行环境,以运行对应版本的应用。
图8示出了根据本发明一个示范性实施例的虚拟运行应用运行第二版本应用的运行流程的示意图。如图8所示,虚拟环境应用判断是否存在保存的虚拟运行环境,若有保存的虚拟运行环境,则不是第一次运行第二版本应用,直接根据保存的虚拟运行环境运行第二版本应用。
若无保存的虚拟运行环境,则为首次运行第二版本应用,构建虚拟运行环境。构建虚拟运行环境的步骤包括:构建基础运行环境、构建专用运行环境和构建兼容运行环境。
随后判断构建虚拟运行环境是否成功,若不成功则退出执行,不能够正常运行第二版本应用。若成功构建虚拟运行环境,则切换到虚拟运行环境。
随后在虚拟运行环境中根据第二版本库和应用文件运行第二版本应用,对虚拟运行环境进行保存。
根据本发明的一个实施例,当需要卸载相应版本应用时,将相应版本应用对应的虚拟运行环境也一并删除。例如:当需要卸载第二版本应用时,将第二版本应用对应的虚拟运行环境进行删除,具体的:将目标文件夹下的文件从目标文件夹进行卸载,取消目标文件夹下的文件与目标文件夹的关联关系。
图9示出了根据现有技术中运行第二版本应用的流程示意图。如图9所示,现有技术中运行第二版本应用appA_v2时,会覆盖安装第一版本应用appA_v1,并直接根据系统默认环境运行第二版本应用appA_v2。现有技术中只能根据操作系统同时运行一个版本的应用程序,要么运行第一版本应用appA_v1,要么安装运行第二版本应用appA_v2。
图10示出了根据本发明一个示范性实施例的运行第二版本应用的流程示意图。如图10所示,当安装第二版本应用appA_v2时,若检测到已经安装有第一版本应用appA_v1,则兼容安装第二版本应用appA_v2,使第二版本应用appA_v2与第一版本应用appA_v1共存。接着启动第二版本应用appA_v2。启动第二版本应用appA_v2时,先根据虚拟运行应用构建虚拟运行环境,再将第二版本应用appA_v2加载到虚拟运行环境中进行兼容运行。本发明通过上述方式能够兼容运行多个版本的应用,本发明对能够兼容运行的不同版本应用数目不做限制。
本发明公开了一种多版本应用运行方法,适于在计算设备中执行。计算设备包括第一版本库,并基于第一版本库运行有第一版本应用,包括步骤:首先在计算设备中兼容安装第二版本库,使第一版本库与第二版本库共存。随后根据第二版本库安装第二版本应用,得到第二版本应用的安装信息。为了同时运行第二版本应用,根据安装信息构建虚拟环境应用,再通过虚拟环境应用创建虚拟运行空间,在虚拟运行空间中根据第二版本库运行第二版本应用。本发明通过兼容安装不同版本的版本库,并且构建虚拟环境应用,再通过虚拟环境应用创建虚拟运行空间,使不同版本的应用程序运行空间隔离,并基于不同的版本库运行,从而实现了同时运行不同的版本的同一应用程序。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的快捷键实现方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的。

Claims (10)

1.一种多版本应用运行方法,适于在计算设备中执行,所述计算设备中包括第一版本库,并基于第一版本库运行有第一版本应用,所述方法包括步骤:
在所述计算设备中兼容安装第二版本库;
根据所述第二版本库安装第二版本应用,得到所述第二版本应用的安装信息;
根据所述安装信息构建虚拟环境应用;
通过所述虚拟环境应用创建虚拟运行空间;
在所述虚拟运行空间中根据所述第二版本库运行第二版本应用。
2.如权利要求1所述的方法,其中,所述在所述计算设备中兼容安装第二版本库包括步骤:
对所述计算设备中的版本库进行检测;
若检测到包括第一版本库,则保留第一版本库,并安装第二版本库到不同的存储路径,使所述第二版本库与所述第一版本库共存。
3.如权利要求2所述的方法,其中,所述计算设备中包括所述第二版本应用的安装包,所述根据所述第二版本库安装第二版本应用包括步骤:
加载所述第二版本应用的安装包中的应用文件;
根据所述第二版本库设置所述第二版本应用的配置信息;
根据所述应用文件、配置信息和所述第二版本库的存储路径生成所述第二版本应用的安装信息来安装第二版本应用。
4.如权利要求3所述的方法,其中,所述根据所述安装信息构建虚拟环境应用包括步骤:
根据所述安装信息设置解析模块,所述解析模块根据安装信息获所述应用文件、配置信息和版本库;
设置构建模块,所述构建模块根据应用文件、配置信息和版本库的存储路径构建虚拟运行空间;
根据所述解析模块和所述构建模块构建虚拟环境应用。
5.如权利要求4所述的方法,其中,所述计算设备中还包括适于运行第一版本应用或第二版本应用的基础运行文件,所述通过所述虚拟环境应用创建虚拟运行空间包括步骤:
通过所述虚拟环境应用的解析模块,根据所述第二版本应用的安装信息获取应用文件、配置信息和所述第二版本库;
通过所述虚拟环境应用的构建模块,根据所述基础运行文件构建基础运行环境;
通过所述构建模块,根据所述应用文件和配置信息构建专用运行环境;
通过所述构建模块,根据所述第二版本库构建兼容运行环境;
通过所述构建模块,根据所述基础运行环境、所述专用运行环境和所述兼容运行环境构建虚拟运行空间。
6.如权利要求5所述的方法,其中,所述在所述虚拟运行空间中根据所述第二版本库运行第二版本应用包括步骤:
在所述虚拟运行环境中根据所述第二版本库和所述应用文件运行第二版本应用。
7.如权利要求5或6所述的方法,其中,所述通过所述虚拟环境应用创建虚拟运行空间还包括步骤:
生成并存储所构建的虚拟运行环境的构建信息。
8.如权利要求7所述的方法,其中,所述方法还包括步骤:
再次运行所述第二版本应用时,判断所述计算设备中是否存储有运行所述第二版本应用的虚拟运行环境的构建信息;
若存储有运行所述第二版本应用的虚拟运行环境的构建信息,则根据所述虚拟运行环境的构建信息构建虚拟运行环境,以便运行所述第二版本应用。
9.一种计算设备,包括:
一个或多个处理器;
存储器;以及
一个或多个装置,所述一个或多个装置包括用于执行根据权利要求1-8中任一项所述的方法的指令。
10.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求1-8中任一项所述的方法。
CN202111551937.4A 2021-12-17 2021-12-17 一种多版本应用运行方法、计算设备及存储介质 Pending CN114217904A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111551937.4A CN114217904A (zh) 2021-12-17 2021-12-17 一种多版本应用运行方法、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111551937.4A CN114217904A (zh) 2021-12-17 2021-12-17 一种多版本应用运行方法、计算设备及存储介质

Publications (1)

Publication Number Publication Date
CN114217904A true CN114217904A (zh) 2022-03-22

Family

ID=80703613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111551937.4A Pending CN114217904A (zh) 2021-12-17 2021-12-17 一种多版本应用运行方法、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN114217904A (zh)

Similar Documents

Publication Publication Date Title
US10338956B2 (en) Application profiling job management system, program, and method
CN112988252B (zh) 一种操作系统启动方法及计算设备
CN114816417B (zh) 一种交叉编译方法、装置、计算设备及存储介质
CN114691240A (zh) 驱动硬件配置信息加载方法、装置和系统,以及计算设备
CN114610337A (zh) 一种多系统安装方法、计算设备及存储介质
CN112947976A (zh) 一种操作系统升级方法、计算设备及存储介质
CN113342475A (zh) 一种服务器集群构建方法、计算设备及存储介质
CN114691226A (zh) 一种多操作系统切换运行方法、计算设备及存储介质
CN113238760A (zh) 一种软件迁移方法、装置、计算设备及可读存储介质
CN113204385A (zh) 一种插件加载方法、装置、计算设备及可读存储介质
CN114138376B (zh) 一种在应用中加载插件的方法、计算设备及存储介质
CN113791873B (zh) 一种虚拟机创建方法、计算设备及存储介质
CN114217904A (zh) 一种多版本应用运行方法、计算设备及存储介质
CN113849245B (zh) 一种应用程序运行方法、计算设备及存储介质
CN113805971B (zh) 一种应用程序运行方法、计算设备及存储介质
CN114721672A (zh) 一种应用安装方法、计算设备及存储介质
CN113821272B (zh) 一种应用程序运行方法、计算设备及存储介质
CN113452532B (zh) 一种网络通信方法、计算设备及可读存储介质
CN114168937A (zh) 一种资源访问方法、计算设备及可读存储介质
CN113867825B (zh) 一种多系统运行方法、计算设备及存储介质
CN114168153B (zh) 一种编译方法、计算设备及存储介质
US10853040B2 (en) Address space splitting for legacy application compatibility
CN113296814A (zh) 一种对容器中运行的应用更新方法、计算设备及存储介质
CN114168489A (zh) 一种函数信息获取方法、计算设备及存储介质
CN114416221A (zh) 一种应用执行方法、计算设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination