软件兼容性处理方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件兼容性处理方法、装置、电子设备及存储介质。
背景技术
“兼容性”这一概念含义比较广泛,一般来说指的是硬件之间、软件之间或是软硬件组合系统之间的相互协调工作的程度。
对于软件来说,兼容性指的是指某个软件能稳定地运行在操作系统中,能够与操作系统中的其它各种软件协调工作,互不影响。软件的兼容性还具体体现在软件一起工作不会导致软件本身出现崩溃、卡死等异常,不会导致操作系统出现卡慢、蓝屏、断网等问题。
随着软件的种类越来越多、软件开发的技术形式也日新月异,软件之间不可避免的会产生兼容性的问题,尤其是反病毒软件。目前已有的解决兼容性问题的方案是屏蔽掉导致兼容性问题的代码,或者对导致兼容性问题的那段代码逻辑使用别的方式实现。这些方案有明显的缺点:不通用(只能遇到一个问题解决一个)、不灵活(需要修改已有代码)、不便捷(需要用户进行软件升级解决问题)。
发明内容
针对现有技术中的问题,本发明实施例提供一种软件兼容性处理方法、装置、电子设备及存储介质。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种软件兼容性处理方法,包括:
确定当前软件运行过程中是否会遇到兼容性问题,若是,则从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理;其中,所述兼容性配置文件中存储有用于解决各种兼容性问题的解决方案。
第二方面,本发明实施例提供了一种软件兼容性处理装置,包括:
确定模块,用于确定当前软件运行过程中是否会遇到兼容性问题;
处理模块,用于从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理;其中,所述兼容性配置文件中存储有用于解决各种兼容性问题的解决方案。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述软件兼容性处理方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述软件兼容性处理方法的步骤。
第五方面,本发明实施例还提供了一种计算机程序产品,所计算机程序产品包括有计算机程序,该计算机程序被处理器执行时实现如第一方面所述软件兼容性处理方法的步骤。
由上面技术方案可知,本发明实施例提供的软件兼容性处理方法、装置、电子设备及存储介质,由于兼容性配置文件中包含有用于解决各种兼容性问题的通用解决方案,因此,本发明实施例在判断获知当前软件在运行过程中会遇到兼容性问题时,可以从兼容性配置文件中获取与当前出现的兼容性问题相匹配的解决方案对其进行处理,从而可以实现一种较为通用、灵活、方便的兼容性问题解决方案,从而可以很好地解决现有的兼容性处理方式中不通用(只能遇到一个问题解决一个)、不灵活(需要修改已有代码)、不便捷(需要用户进行软件升级解决问题)的缺陷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的软件兼容性处理方法的流程图;
图2为本发明一实施例提供的软件兼容性处理方法的实现过程示意图;
图3为本发明一实施例提供的软件兼容性处理装置的结构示意图;
图4为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种软件兼容性处理方法,本发明实施例提供的软件兼容性处理方法具有通用性、灵活性和便捷性的优势。具体来说,本发明实施例通过提取软件兼容性问题的常见处理方法,形成兼容性配置文件,并在软件中新增兼容判断逻辑和处理逻辑,与兼容性配置文件配合,可以实现比较通用的兼容性问题处理方案,本发明实施例提供的软件兼容性处理方法,无需修改代码、无需进行版本升级即可解决兼容性问题,比较灵活,问题解决起来也比较快,可极大提高软件运行的稳定性。下面将通过具体实施例对本发明提供的软件兼容性处理方法进行详细解释和说明。
图1示出了本发明实施例提供的软件兼容性处理方法的流程图。如图1所示,本发明实施例提供的软件兼容性处理方法包括如下步骤:
步骤101:确定当前软件运行过程中是否会遇到兼容性问题,若是,则执行步骤102。
在本步骤中,一般是在检测到软件启动或运行时,判断该软件运行过程中是否会遇到兼容性问题,如果会遇到,则需要采用匹配的措施对兼容性问题进行解决。
在本步骤中,在判断软件是否会遇到兼容性问题时,可以通过预设的判断逻辑进行判断。例如,预设的判断逻辑可以是:判断是否存在某些指定的注册表、判断是否存在某些指定的文件、判断是否存在某些指定的进程等。需要说明的是,这些指定的注册表、指定的文件、指定的进程是指会使得软件在运行过程中遇到兼容性问题的注册表、文件和进程。举例来说,假设根据历史数据发现,软件运行进程a时会导致出现兼容性问题,那么进程a就属于指定的进程。这里,指定的注册表、指定的文件、指定的进程是通过对历史出现的兼容性问题进行分析后得到的,本实施例对此不作具体限定。
步骤102:从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理;其中,所述兼容性配置文件中存储有用于解决各种兼容性问题的解决方案。
在本步骤中,需要说明的是,兼容性配置文件中存储有用于解决各种兼容性问题的解决方案,兼容性配置文件可以根据常见的软件兼容性问题以及对应的处理方法而编写生成。可以理解的是,兼容性配置文件可以存储在终端本地,也可以存储在云服务器,然后在终端需要的时候,由云服务器发送给终端。
在本步骤中,由于兼容性配置文件中包含有用于解决各种兼容性问题的通用解决方案,因此,若经过判断获知当前软件在运行过程中会遇到兼容性问题,则可以从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理,从而实现了一种通用的兼容性问题解决方案。此外,本发明实施例提供的软件兼容性处理方法,无需修改代码、无需进行版本升级即可解决兼容性问题,比较灵活,问题解决起来也比较快,因此可极大提高软件运行的稳定性。
由上面技术方案可知,本发明实施例提供的软件兼容性处理方法,由于兼容性配置文件中包含有用于解决各种兼容性问题的通用解决方案,因此,本发明实施例在判断获知当前软件在运行过程中会遇到兼容性问题时,可以从兼容性配置文件中获取与当前出现的兼容性问题相匹配的解决方案对其进行处理,从而可以实现一种较为通用、灵活、方便的兼容性问题解决方案,从而可以很好地解决现有的兼容性处理方式中不通用(只能遇到一个问题解决一个)、不灵活(需要修改已有代码)、不便捷(需要用户进行软件升级解决问题)的缺陷。
基于上述实施例的内容,在本实施例中,上述步骤101确定当前软件运行过程中是否会遇到兼容性问题,具体可通过如下方式实现:
在检测到软件被触发启动或软件首次安装或软件发生更新时,获取所述软件在运行过程中加载的进程列表、文件列表和注册表列表中的一项或多项,和/或,获取所述软件在运行过程中访问的网络地址列表;
基于所述进程列表、文件列表和注册表列表中的一项或多项,和/或,所述网络地址列表,确定当前软件运行过程中是否会遇到兼容性问题。
在本实施例中,需要说明的是,在实际应用中,存在多种兼容性问题判断场景。例如,一种场景是在软件每次被触发启动的时候,就会自动检测软件在运行过程中是否会遇到兼容性问题。当然,在某种情况下,并不需要软件每次启动时都进行是否会遇到兼容性问题的判断,例如,可以只在软件首次安装时或发生更新时,才进行是否会遇到兼容性问题的判断,若经判断获知不会遇到兼容性问题,则后续在软件的使用过程中(以及每次启动时),将不会再进行是否会遇到兼容性问题的判断,这种处理方式可以节省终端的内存消耗,减轻终端的压力,提高终端的运行速度。可以理解的是,当软件首次安装时或发生更新时,若判断结果是不会遇到兼容性问题,则可以对相应软件进行标记(第一标记),以便于后续在启动该软件时,不再进行相应的判断。补充说明的是,当软件首次安装时或发生更新时,若判断结果是会遇到兼容性问题,则需要从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理,更为优选的处理方式为,当对所述兼容性问题进行处理后,对该软件进行标记(第二标记),以使得后续第一次启动该软件时,进行验证判断,以确保兼容性问题是否得以解决。当然,如果后续第一次启动该软件时,经验证确定兼容性问题确实得以解决,则可以重新对该软件进行标记(第一标记),以便于后续在启动该软件时,不再进行相应的判断。
进一步地,基于所述进程列表、文件列表和注册表列表中的一项或多项,和/或,所述网络地址列表,确定当前软件运行过程中是否会遇到兼容性问题,包括:
执行下面A、B、C和D处理中的一项或多项:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本实施例中,存在多种可选择方案,下面一一解释说明。
①在检测到软件被触发启动时,获取所述软件在运行过程中加载的进程列表,然后执行下面A处理:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
在本方案中,又存在三种可选择的方案,分别为:判断所述进程列表中是否存在指定的进程;判断所述进程列表中的进程是否调用指定的动态链接库;判断所述进程列表中是否存在指定的进程,以及,判断所述进程列表中的进程是否调用指定的动态链接库。
需要说明的是,在获取所述软件在运行过程中加载的进程列表后,可以根据进程列表中各进程的名称判断所述进程列表中是否存在指定的进程(例如进程名为VRV.exe),若是,则确定当前软件在运行过程中会遇到兼容性问题;或者,在获取所述软件在运行过程中加载的进程列表后,可以判断所述进程列表中的进程是否调用指定的动态链接库;若是,则确定当前软件在运行过程中会遇到兼容性问题;或者,在获取所述软件在运行过程中加载的进程列表后,可以根据进程列表中各进程的名称判断所述进程列表中是否存在指定的进程以及判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题。
需要说明的是,根据加载的进程名称判断是否存在特定的进程,进而判断软件是否会遇到兼容性问题是一种比较常用的判断方式,但是有些兼容性问题并不在于加载了某个特定的进程,而在于进程是否调用了某些指定的动态链接库,因此,还需要对进程调用的动态链接库进行检查判断,若检查到某一进程调用了指定的动态链接库,则确定当前软件在运行过程中会遇到兼容性问题。这里指定的动态链接库可以为根据历史常见的兼容性问题确定的动态链接库,例如指定的动态链接库可以为vrvaudit.dl。
②在检测到软件被触发启动时,获取所述软件在运行过程中加载的文件列表,然后执行下面B处理:
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
在本方案中,又存在三种可选择的方案,分别为:判断所述文件列表中是否存在指定的文件;判断所述文件列表中的文件是否包含指定的配置参数;判断所述文件列表中是否存在指定的文件,以及,判断所述文件列表中的文件是否包含指定的配置参数。
需要说明的是,在获取所述软件在运行过程中加载的文件列表后,可以根据文件列表中各文件的名称判断所述文件列表中是否存在指定的文件(例如指定的文件可以为C:\windows\demo.xml),若是,则确定当前软件在运行过程中会遇到兼容性问题;或者,在获取所述软件在运行过程中加载的文件列表后,可以判断所述文件列表中的文件是否包含指定的配置参数;若是,则确定当前软件在运行过程中会遇到兼容性问题;或者,在获取所述软件在运行过程中加载的文件列表后,可以根据文件列表中各文件的名称判断所述文件列表中是否存在指定的文件以及判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
需要说明的是,根据加载的文件名称判断是否存在特定的文件,进而判断软件是会遇到兼容性问题是一种比较常用的判断方式,但是有些兼容性问题并不在于加载了某个特定的文件,而在于文件包含了指定的配置参数,因此,还需要对文件包含的配置参数进行检查判断,若检查到某一文件包含了指定的配置参数,则可以确定当前软件在运行过程中会遇到兼容性问题。这里指定的配置参数可以为根据历史常见的兼容性问题确定的配置参数,例如文件里的配置参数可以为hook=1。
③在检测到软件被触发启动时,获取所述软件在运行过程中加载的注册表列表,然后执行下面C处理:
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
在本方案中,又存在三种可选择的方案,分别为:判断所述注册表列表中是否存在指定的注册表;判断所述注册表列表中的注册表是否包含指定的注册表参数;判断所述注册表列表中是否存在指定的注册表,以及,判断所述注册表列表中的注册表是否包含指定的注册表参数。
需要说明的是,在获取所述软件在运行过程中加载的注册表列表后,可以根据注册表列表中各注册表的名称或键值判断所述注册表列表中是否存在指定的注册表(例如指定的注册表键为HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RDPDD\Device0),若是,则确定当前软件在运行过程中会遇到兼容性问题;或者,在获取所述软件在运行过程中加载的注册表列表后,可以判断所述注册表列表中的注册表是否包含指定的注册表参数;若是,则确定当前软件在运行过程中会遇到兼容性问题;或者,在获取所述软件在运行过程中加载的注册表列表后,可以根据注册表列表中各注册表的名称或键值判断所述注册表列表中是否存在指定的注册表以及判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
需要说明的是,根据加载的注册表名称判断是否存在特定的注册表,进而判断软件是否会遇到兼容性问题是一种比较常用的判断方式,但是有些兼容性问题并不在于加载了某个特定的注册表,而在于注册表包含了指定的注册表参数,因此,还需要对注册表包含的注册表参数进行检查判断,若检查到某一注册表包含了指定的注册表参数,则可以确定当前软件在运行过程中会遇到兼容性问题。这里指定的注册表参数可以为根据历史常见的兼容性问题确定的注册表参数,例如,注册表键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RDPDD\Device0中的指定的注册表参数InstalledDisplayDrivers=0。
④在检测到软件被触发启动时,获取所述软件在运行过程中访问的网络地址列表,然后执行下面D处理:
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本方案中,又存在三种可选择的方案,分别为:判断所述网络地址列表中是否存在指定的网络地址(例如IP地址为192.168.1.102);判断所述网络地址列表中的网络地址是否包含指定的地址参数;判断所述网络地址列表中是否存在指定的网络地址,以及,判断所述网络地址列表中的网络地址是否包含指定的地址参数。
需要说明的是,在获取所述软件在运行过程中访问的网络地址列表后,可以根据网络地址列表中各网络地址判断所述网络地址列表中是否存在指定的网络地址,若是,则确定当前软件在运行过程中会遇到兼容性问题;或者,在获取所述软件在运行过程中访问的网络地址列表后,可以判断所述网络地址列表中的网络地址是否包含指定的地址参数;若是,则确定当前软件在运行过程中会遇到兼容性问题;或者,在获取所述软件在运行过程中访问的网络地址列表后,可以根据网络地址列表中各网络地址判断所述网络地址列表中是否存在指定的网络地址以及判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
需要说明的是,根据所述软件在运行过程中访问的网络地址列表判断是否存在特定的网络地址,进而判断软件是否会遇到兼容性问题是一种比较常用的判断方式,但是有些兼容性问题并不在于软件访问了某个特定的网络地址,而在于网络地址中包含了指定的地址参数,因此,还需要对网络地址包含的地址参数进行检查判断,若检查到某一网络地址包含了指定的地址参数,则可以确定当前软件在运行过程中会遇到兼容性问题。这里指定的地址参数可以为根据历史常见的兼容性问题确定的地址参数,例如:指定的地址参数为192或ac.cn,因此,若某一网络地址中包含了该地址参数192或ac.cn,则可以确定当前软件在运行过程中会遇到兼容性问题。
⑤在检测到软件被触发启动时,获取所述软件在运行过程中加载的进程列表和文件列表,然后执行下面A和B处理:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
在本方案中,可以看作是上面第①种方案和第②种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⑥在检测到软件被触发启动时,获取所述软件在运行过程中加载的进程列表和注册表列表,然后执行下面A和C处理:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
在本方案中,可以看作是上面第①种方案和第③种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⑦在检测到软件被触发启动时,获取所述软件在运行过程中加载的进程列表和所述软件在运行过程中访问的网络地址列表,然后执行下面A和D处理:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本方案中,可以看作是上面第①种方案和第④种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⑧在检测到软件被触发启动时,获取所述软件在运行过程中加载的文件列表和注册表列表,然后执行下面B和C处理:
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
在本方案中,可以看作是上面第②种方案和第③种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⑨在检测到软件被触发启动时,获取所述软件在运行过程中加载的文件列表和所述软件在运行过程中访问的网络地址列表,然后执行下面B和D处理:
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本方案中,可以看作是上面第②种方案和第④种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⑩在检测到软件被触发启动时,获取所述软件在运行过程中加载的注册表列表和所述软件在运行过程中访问的网络地址列表,然后执行下面C和D处理:
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本方案中,可以看作是上面第③种方案和第④种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⑾在检测到软件被触发启动时,获取所述软件在运行过程中加载的进程列表、文件列表和注册表列表,然后执行下面A、B和C的处理:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本方案中,可以看作是上面第①种方案、第②种方案和第③种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⑿在检测到软件被触发启动时,获取所述软件在运行过程中加载的进程列表、文件列表和所述软件在运行过程中访问的网络地址列表,然后执行下面A、B和D的处理:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本方案中,可以看作是上面第①种方案、第②种方案和第④种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⒀在检测到软件被触发启动时,获取所述软件在运行过程中加载的文件列表、注册表列表和所述软件在运行过程中访问的网络地址列表,然后执行下面B、C和D的处理:
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本方案中,可以看作是上面第②种方案、第③种方案和第④种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
⒁在检测到软件被触发启动时,获取所述软件在运行过程中加载的进程列表、文件列表、注册表列表和所述软件在运行过程中访问的网络地址列表,然后执行下面A、B、C和D的处理:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
在本方案中,可以看作是上面第①种方案、第②种方案、第③种方案和第④种方案的组合,因此具体内容可参见上面的介绍,此处不再赘述。
基于上述实施例的内容,在本实施例中,上述步骤102从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理,包括:
下面方案中一种方案或多种方案的组合:
方案1:若所述兼容性问题为所述进程列表中存在指定的进程,则从兼容性配置文件中获取用于对所述指定的进程进行暂停处理的解决方案,并利用获取的解决方案对所述指定的进程进行暂停处理;
在本方案中,当所述兼容性问题为所述进程列表中存在指定的进程时,为解决兼容性问题,可以对指定的进程进行暂停处理,以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取与所述兼容性问题匹配的解决方案,也即从兼容性配置文件中获取用于对所述指定的进程进行暂停处理的解决方案,然后利用获取的解决方案对所述指定的进程进行暂停处理。
方案2:若所述兼容性问题为所述进程列表中的进程调用指定的动态链接库,则从兼容性配置文件中获取用于对所述动态链接库进行禁止调用的解决方案,并利用获取的解决方案禁止相应的进程调用所述动态链接库;和/或,从兼容性配置文件中获取用于对相应进程进行暂停处理的解决方案,并利用获取的解决方案对所述指定的进程进行暂停处理;
在本方案中,当所述兼容性问题为所述进程列表中的进程调用指定的动态链接库时,为解决兼容性问题,可以禁止相应的进程调用所述动态链接库,以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取与所述兼容性问题匹配的解决方案,也即从兼容性配置文件中获取用于对所述动态链接库进行禁止调用的解决方案,然后利用获取的解决方案禁止相应的进程调用所述动态链接库。
此外,对于这种情况,也可以进行简单直接的处理,也即可以直接将调用指定的动态链接库的进程暂停,以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取用于对调用指定的动态链接库的进程进行暂停处理的解决方案,并利用获取的解决方案对所述指定的进程进行暂停处理。
需要说明的是,在本方案中,①禁止相应的进程调用所述动态链接库;②直接将调用指定的动态链接库的进程暂停,这两种处理方式均可,本实施例对此不作限定。
方案3:若所述兼容性问题为所述文件列表中存在指定的文件,则从兼容性配置文件中获取用于对所述指定的文件进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述指定的文件进行增加、删除和/或修改处理;
在本方案中,当所述兼容性问题为所述文件列表中存在指定的文件时,为解决兼容性问题,可以删除所述指定的文件,以解决兼容性问题;也可以修改所述指定的文件,以解决兼容性问题;还可以增加其他能够消除所述指定的文件引起的兼容性问题的文件(例如,指定的文件A会引起兼容性问题,但是当文件D和指定的文件A在一起出现的时候就不再会引起兼容性问题,这种情况下,文件D就是能够消除指定的文件A引起的兼容性问题的文件),以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取与所述兼容性问题匹配的解决方案,也即从兼容性配置文件中获取用于对所述指定的文件进行增加、删除和/或修改的解决方案,然后利用获取的解决方案对所述指定的文件进行增加、删除和/或修改处理。
方案4:若所述兼容性问题为所述文件列表中的文件包含指定的配置参数,则从兼容性配置文件中获取用于对所述配置参数进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述配置参数进行增加、删除和/或修改;和/或,从兼容性配置文件中获取用于对包含指定的配置参数的文件进行增加、删除和/或修改的解决方案,并利用获取的解决方案对包含指定的配置参数的文件进行增加、删除和/或修改处理;
在本方案中,当所述兼容性问题为所述文件列表中的文件包含指定的配置参数时,为解决兼容性问题,可以删除所述配置参数,以解决兼容性问题;也可以修改所述配置参数,以解决兼容性问题;还可以增加其他能够消除所述配置参数引起的兼容性问题的配置参数(例如,指配置参数r会引起兼容性问题,但是当配置参数g和配置参数r一起出现的时候就不再会引起兼容性问题,这种情况下,配置参数g就是能够消除配置参数r引起的兼容性问题的配置参数),以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取与所述兼容性问题匹配的解决方案,也即从兼容性配置文件中获取用于对所述配置参数进行增加、删除和/或修改的解决方案,然后利用获取的解决方案对所述配置参数进行增加、删除和/或修改。
此外,对于这种情况,也可以进行简单直接的处理,也即可以直接对包含指定的配置参数的文件进行增加、删除和/或修改处理,以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取用于对包含指定的配置参数的文件进行增加、删除和/或修改的解决方案,然后利用获取的解决方案对包含指定的配置参数的文件进行增加、删除和/或修改处理。
需要说明的是,在本方案中,①对指定的配置参数进行增加、删除和/或修改;②直接对包含指定的配置参数的文件进行增加、删除和/或修改处理,这两种处理方式均可,本实施例对此不作限定。
方案5:若所述兼容性问题为所述注册表列表中存在指定的注册表,则从兼容性配置文件中获取用于对所述指定的注册表进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述指定的注册表进行增加、删除和/或修改处理;
在本方案中,当所述兼容性问题为所述注册表列表中存在指定的注册表时,为解决兼容性问题,可以删除所述指定的注册表,以解决兼容性问题;也可以修改所述指定的注册表,以解决兼容性问题;还可以增加其他能够消除所述指定的注册表引起的兼容性问题的注册表(例如,指定的注册表I会引起兼容性问题,但是当注册表J和指定的注册表I在一起出现的时候就不再会引起兼容性问题,这种情况下,注册表J就是能够消除指定的注册表I引起的兼容性问题的注册表),以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取与所述兼容性问题匹配的解决方案,也即从兼容性配置文件中获取用于对所述指定的注册表进行增加、删除和/或修改的解决方案,然后利用获取的解决方案对所述指定的注册表进行增加、删除和/或修改处理。
方案6:若所述兼容性问题为所述注册表列表中的注册表包含指定的注册表参数,则从兼容性配置文件中获取用于对所述注册表参数进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述注册表参数进行增加、删除和/或修改;和/或,从兼容性配置文件中获取用于对包含指定的注册表参数的注册表进行增加、删除和/或修改的解决方案,并利用获取的解决方案对包含指定的注册表参数的注册表进行增加、删除和/或修改处理;
在本方案中,当所述兼容性问题为所述注册表列表中的注册表包含指定的注册表参数时,为解决兼容性问题,可以删除所述指定的注册表参数,以解决兼容性问题;也可以修改所述指定的注册表参数,以解决兼容性问题;还可以增加其他能够消除所述指定的注册表参数引起的兼容性问题的注册表参数(例如,指定的注册表参数k会引起兼容性问题,但是当注册表参数m和指定的注册表参数k在一起出现的时候就不再会引起兼容性问题,这种情况下,注册表参数m就是能够消除指定的注册表参数k引起的兼容性问题的注册表参数),以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取与所述兼容性问题匹配的解决方案,也即从兼容性配置文件中获取用于对所述注册表参数进行增加、删除和/或修改的解决方案,然后利用获取的解决方案对所述注册表参数进行增加、删除和/或修改。
此外,对于这种情况,也可以进行简单直接的处理,也即可以直接对包含指定的注册表参数的注册表进行增加、删除和/或修改处理,以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取用于对包含指定的注册表参数的注册表进行增加、删除和/或修改的解决方案,然后利用获取的解决方案对包含指定的注册表参数的注册表进行增加、删除和/或修改处理。
需要说明的是,在本方案中,①对指定的注册表参数进行增加、删除和/或修改;②直接对包含指定的注册表参数的注册表进行增加、删除和/或修改处理,这两种处理方式均可,本实施例对此不作限定。
方案7:若所述兼容性问题为所述网络地址列表中存在指定的网络地址,则从兼容性配置文件中获取用于中断对所述指定的网络地址进行访问的解决方案,并利用获取的解决方案中断对所述指定的网络地址的访问;
在本方案中,当所述兼容性问题为所述网络地址列表中存在指定的网络地址时,为解决兼容性问题,可以中断对所述指定的网络地址的访问,以解决兼容性问题,因此,对于这种情况,可以从兼容性配置文件中获取用于中断对所述指定的网络地址进行访问的解决方案,然后利用获取的解决方案中断对所述指定的网络地址的访问。
方案8:若所述兼容性问题为所述网络地址列表中的网络地址包含指定的地址参数,则从兼容性配置文件中获取用于对所述地址参数进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述地址参数进行增加、删除和/或修改;和/或,从兼容性配置文件中获取用于中断对包含指定的地址参数的网络地址进行访问的解决方案,并利用获取的解决方案中断对包含指定的地址参数的网络地址的访问。
在本方案中,当所述兼容性问题为所述网络地址列表中的网络地址包含指定的地址参数时,为解决兼容性问题,可以删除所述指定的地址参数,以解决兼容性问题;也可以修改所述指定的地址参数,以解决兼容性问题;还可以增加其他能够消除所述指定的地址参数引起的兼容性问题的地址参数(例如,指定的地址参数e会引起兼容性问题,但是当地址参数f和指定的地址参数e在一起出现的时候就不再会引起兼容性问题,这种情况下,地址参数f就是能够消除指定的地址参数e引起的兼容性问题的地址参数),以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取与所述兼容性问题匹配的解决方案,也即从兼容性配置文件中获取用于对所述地址参数进行增加、删除和/或修改的解决方案,然后利用获取的解决方案对所述地址参数进行增加、删除和/或修改。
此外,对于这种情况,也可以进行简单直接的处理,也即可以直接中断对包含指定的地址参数的网络地址的访问,以解决兼容性问题。因此,对于这种情况,可以从兼容性配置文件中获取用于中断对包含指定的地址参数的网络地址进行访问的解决方案,然后利用获取的解决方案中断对包含指定的地址参数的网络地址的访问。
需要说明的是,在本方案中,①对所述地址参数进行增加、删除和/或修改;②直接中断对包含指定的地址参数的网络地址的访问,这两种处理方式均可,本实施例对此不作限定。
在本实施例中,包含了上述方案1至方案8中一种或多种方案的组合,从而针对各种兼容性问题,均提供了相应的相匹配的解决方案,因而可以具备通用性。
基于上述实施例的内容,在本实施例中,在上述步骤102从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案之前,所述方法还包括:
步骤100:获取历史产生的各种兼容性问题以及对应的解决方案,并根据历史产生的各种兼容性问题以及对应的解决方案,生成所述兼容性配置文件。
相应地,所述方法还包括:
步骤103:定期获取新产生的各种兼容性问题以及对应的解决方案,并利用新产生的各种兼容性问题以及对应的解决方案,更新所述兼容性配置文件。
在本实施例中,需要说明的是,由于本实施例提供的软件兼容性处理方法是一种通用的软件兼容性处理方法,因此,需要预先建立一个具有通用规则的兼容性配置文件,为此,本实施例预先获取历史产生的各种兼容性问题以及对应的解决方案,然后根据历史产生的各种兼容性问题以及对应的解决方案,生成所述兼容性配置文件,从而使得生成的兼容性配置文件中包含了各种历史曾经出现过的兼容性问题以及经过验证的解决方案,从而使得所述兼容性配置文件具备可参考性。进一步地,使得基于该兼容性配置文件的软件兼容性处理方法具备通用性和准确性。
在本实施例中,需要说明的是,由于软件在不断更新,与此同时,也会不断产生新的兼容性问题以及对应的解决方案,因此,本实施例定期获取新产生的各种兼容性问题以及对应的解决方案,并利用新产生的各种兼容性问题以及对应的解决方案,更新所述兼容性配置文件,从而最大限度地保证上述步骤101使用的兼容性配置文件的完备性和准确性,从而提高软件兼容性处理质量和效率。
基于上述实施例的内容,在本实施例中,在上述步骤102从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案之前,所述方法还包括:
步骤100’:接收云端服务器推送的兼容性配置文件;其中,所述兼容性配置文件为根据各终端历史产生的各种兼容性问题以及对应的解决方案生成的。
相应地,所述方法还包括:
步骤103’:定期获取新产生的各种兼容性问题以及对应的解决方案,并将新产生的各种兼容性问题以及对应的解决方案发送至所述云端服务器,以更新所述云端服务器的兼容性配置文件。
在本实施例中,可以理解的是,由于本实施例提供的软件兼容性处理方法是一种通用的软件兼容性处理方法,因此,需要预先建立一个具有通用规则的兼容性配置文件,为此,本实施例预先在云端服务器维护有一个兼容性配置文件,该兼容性配置文件中存储有各终端历史产生的各种兼容性问题以及对应的解决方案。需要说明的是,在云端服务器维护兼容性配置文件具有如下优势:①云端可以很方便地和各终端进行交互,从而可以收集各终端历史产生的各种兼容性问题以及对应的解决方案,从而可以保证解决方案的完备性。此外,针对多个终端,只需在云端服务器维护一份兼容性配置文件,从而也可以简化兼容性配置文件的维护难度和复杂度,从而可以在整体上提升效率和方便度。②将兼容性配置文件存储在云端,安全性比较高。这是因为云服务器是基于服务器集群的,因此硬件冗余度较高,故障率低,而且云服务器具有天然防ARP攻击和MAC欺骗的优势,能够快照备份,因此可以保证兼容性配置文件的安全性。③将兼容性配置文件存储在云端,不占用终端本地资源,从而释放了终端的存储压力。④将兼容性配置文件存储在云端,可以不受终端位置的限制,能够方便进行推送。
此外,需要说明的是,在实际应用中,除了采用云端服务器以外,还可以采用普通服务器,本实施例对此不作限定,不过正如上面所述,采用云端服务器要更具优势。
在本实施例中,可以理解的是,获取历史产生的各种兼容性问题以及对应的解决方案,然后根据历史产生的各种兼容性问题以及对应的解决方案,生成所述兼容性配置文件,从而使得生成的兼容性配置文件中包含了各种历史曾经出现过的兼容性问题以及经过验证的解决方案,从而使得所述兼容性配置文件具备可参考性。进一步地,使得基于该兼容性配置文件的软件兼容性处理方法具备通用性和准确性。
在本实施例中,需要说明的是,由于软件在不断更新,与此同时,也会不断产生新的兼容性问题以及对应的解决方案,因此,本实施例定期获取新产生的各种兼容性问题以及对应的解决方案,并将新产生的各种兼容性问题以及对应的解决方案发送至云端服务器,以更新云端服务器的兼容性配置文件,从而最大限度地保证上述步骤101使用的兼容性配置文件的完备性和准确性,从而提高软件兼容性处理质量和效率。
下面结合图2对本实施例提供的软件兼容性处理方法给予进一步的解释和说明。如图2所示,可以增加一个灵活的、云端可推送的配置文件,配置文件中配置的是一些兼容处理逻辑,比如:文件增加、删除和/或修改、进程启停、注册表增加、删除和/或修改等操作的配置。同时,在软件原有业务处理逻辑中预埋兼容性判断和处理逻辑,此逻辑会根据兼容性配置文件的不同的配置进行不同的处理。当遇到软件兼容性问题时,可将配置文件推送给终端,当软件中原有的业务感知到有配置文件的时候,解析配置文件,根据配置文件的配置执行兼容性动作,快速解决兼容性问题。由此可见,本实施例可以从兼容性配置文件中获取与当前出现的兼容性问题相匹配的解决方案对其进行处理,从而可以实现一种较为通用、灵活、方便的兼容性问题解决方案,从而可以很好地解决现有的兼容性处理方式中不通用(只能遇到一个问题解决一个)、不灵活(需要修改已有代码)、不便捷(需要用户进行软件升级解决问题)的缺陷。
图3示出了本发明实施例提供的软件兼容性处理装置的结构示意图。如图3所示,本实施例提供的软件兼容性处理装置,包括:确定模块21和处理模块22,其中:
确定模块21,用于确定当前软件运行过程中是否会遇到兼容性问题;
处理模块22,用于从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理;其中,所述兼容性配置文件中存储有用于解决各种兼容性问题的解决方案。
基于上述实施例的内容,在本实施例中,所述确定模块21,具体用于:
在检测到软件被触发启动或软件首次安装或软件发生更新时,获取所述软件在运行过程中加载的进程列表、文件列表和注册表列表中的一项或多项,和/或,获取所述软件在运行过程中访问的网络地址列表;
基于所述进程列表、文件列表和注册表列表中的一项或多项,和/或,所述网络地址列表,确定当前软件运行过程中是否会遇到兼容性问题。
基于所述进程列表、文件列表和注册表列表中的一项或多项,和/或,所述网络地址列表,确定当前软件运行过程中是否会遇到兼容性问题,包括:
执行下面A、B、C和D处理中的一项或多项:
A、判断所述进程列表中是否存在指定的进程,和/或,判断所述进程列表中的进程是否调用指定的动态链接库,若是,则确定当前软件在运行过程中会遇到兼容性问题;
B、判断所述文件列表中是否存在指定的文件,和/或,判断所述文件列表中的文件是否包含指定的配置参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
C、判断所述注册表列表中是否存在指定的注册表,和/或,判断所述注册表列表中的注册表是否包含指定的注册表参数,若是,则确定当前软件在运行过程中会遇到兼容性问题;
D、判断所述网络地址列表中是否存在指定的网络地址,和/或,判断所述网络地址列表中的网络地址是否包含指定的地址参数,若是,则确定当前软件在运行过程中会遇到兼容性问题。
基于上述实施例的内容,在本实施例中,所述处理模块22,具体用于:
若所述兼容性问题为所述进程列表中存在指定的进程,则从兼容性配置文件中获取用于对所述指定的进程进行暂停处理的解决方案,并利用获取的解决方案对所述指定的进程进行暂停处理;
和/或,
若所述兼容性问题为所述进程列表中的进程调用指定的动态链接库,则从兼容性配置文件中获取用于对所述动态链接库进行禁止调用的解决方案,并利用获取的解决方案禁止相应的进程调用所述动态链接库;和/或,从兼容性配置文件中获取用于对相应进程进行暂停处理的解决方案,并利用获取的解决方案对所述指定的进程进行暂停处理;
和/或,
若所述兼容性问题为所述文件列表中存在指定的文件,则从兼容性配置文件中获取用于对所述指定的文件进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述指定的文件进行增加、删除和/或修改处理;
和/或,
若所述兼容性问题为所述文件列表中的文件包含指定的配置参数,则从兼容性配置文件中获取用于对所述配置参数进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述配置参数进行增加、删除和/或修改;和/或,从兼容性配置文件中获取用于对包含指定的配置参数的文件进行增加、删除和/或修改的解决方案,并利用获取的解决方案对包含指定的配置参数的文件进行增加、删除和/或修改处理;
和/或,
若所述兼容性问题为所述注册表列表中存在指定的注册表,则从兼容性配置文件中获取用于对所述指定的注册表进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述指定的注册表进行增加、删除和/或修改处理;
和/或,
若所述兼容性问题为所述注册表列表中的注册表包含指定的注册表参数,则从兼容性配置文件中获取用于对所述注册表参数进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述注册表参数进行增加、删除和/或修改;和/或,从兼容性配置文件中获取用于对包含指定的注册表参数的注册表进行增加、删除和/或修改的解决方案,并利用获取的解决方案对包含指定的注册表参数的注册表进行增加、删除和/或修改处理;
和/或,
若所述兼容性问题为所述网络地址列表中存在指定的网络地址,则从兼容性配置文件中获取用于中断对所述指定的网络地址进行访问的解决方案,并利用获取的解决方案中断对所述指定的网络地址的访问;
和/或,
若所述兼容性问题为所述网络地址列表中的网络地址包含指定的地址参数,则从兼容性配置文件中获取用于对所述地址参数进行增加、删除和/或修改的解决方案,并利用获取的解决方案对所述地址参数进行增加、删除和/或修改;和/或,从兼容性配置文件中获取用于中断对包含指定的地址参数的网络地址进行访问的解决方案,并利用获取的解决方案中断对包含指定的地址参数的网络地址的访问。
基于上述实施例的内容,在本实施例中,所述装置还包括:
第一获取模块,用于获取历史产生的各种兼容性问题以及对应的解决方案,并根据历史产生的各种兼容性问题以及对应的解决方案,生成所述兼容性配置文件。
相应地,所述装置还包括:
第二获取模块,用于定期获取新产生的各种兼容性问题以及对应的解决方案,并利用新产生的各种兼容性问题以及对应的解决方案,更新所述兼容性配置文件。
基于上述实施例的内容,在本实施例中,所述装置还包括:
第三获取模块,用于接收云端服务器推送的兼容性配置文件;其中,所述兼容性配置文件为根据各终端历史产生的各种兼容性问题以及对应的解决方案生成的;
相应地,所述装置还包括:
第四获取模块,用于定期获取新产生的各种兼容性问题以及对应的解决方案,并将新产生的各种兼容性问题以及对应的解决方案发送至所述云端服务器,以更新所述云端服务器的兼容性配置文件。
由于本发明实施例提供的软件兼容性处理装置,可以用于执行上述实施例所述的软件兼容性处理方法,其工作原理和有益效果类似,故此处不再详述,具体内容可参见上述实施例的介绍。
在本实施例中,需要说明的是,本发明实施例的装置中的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图4,所述电子设备具体包括如下内容:处理器301、存储器302、通信接口303和通信总线304;
其中,所述处理器301、存储器302、通信接口303通过所述通信总线304完成相互间的通信;
所述处理器301用于调用所述存储器302中的计算机程序,所述处理器执行所述计算机程序时实现上述软件兼容性处理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:确定当前软件运行过程中是否会遇到兼容性问题,若是,则从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理;其中,所述兼容性配置文件中存储有用于解决各种兼容性问题的解决方案。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述软件兼容性处理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:确定当前软件运行过程中是否会遇到兼容性问题,若是,则从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理;其中,所述兼容性配置文件中存储有用于解决各种兼容性问题的解决方案。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
基于相同的发明构思,本发明又一实施例提供了一种计算机程序产品,所计算机程序产品包括有计算机程序,该计算机程序被处理器执行时实现上述关联应用启动控制方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:确定当前软件运行过程中是否会遇到兼容性问题,若是,则从兼容性配置文件中获取与所述兼容性问题相匹配的解决方案,并根据所述相匹配的解决方案对所述兼容性问题进行处理;其中,所述兼容性配置文件中存储有用于解决各种兼容性问题的解决方案。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的软件兼容性处理方法。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本发明中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。