软件版本管理方法及系统与流程

文档序号:12596367阅读:1790来源:国知局
软件版本管理方法及系统与流程
本发明实施例涉及数据处理技术,尤其是涉及一种软件版本管理方法及系统。
背景技术
:随着移动通讯技术的发展,电子装置的功能日渐复杂,为扩展电子装置的功能或者为解决电子装置兼容性问题,需要对电子装置的软件进行升级。因此,电子装置如手机上的应用程序或底层驱动程序通常隔一段时间会出现新的版本,以供用户升级。但是,有些时候电子装置在升级了新版本软件之后,会出现运行变缓慢、不稳定等问题,而该新版本软件对其关联软件也可能出现新的兼容性问题,当然,新版本软件本身也可能具有颇为严重的缺陷。在现有技术中,要解决上述问题,通常有两种方法,一是等待下个版本出现后再进行迭代更新,二是将程序卸载或将电子装置恢复出厂设置,然后重新下载原来的旧版本软件安装。显而易见,第一种方法耗时,第二种方法费力,且使用第二种方法会使得程序许多原有设置参数全部丢失,从而需要重新设置,较为繁琐。技术实现要素:鉴于以上内容,有必要提供一种软件版本管理方法,可以在程序升级到新版本之后,方便地切换到旧版本。鉴于以上内容,还有必要提供一种软件版本管理系统,可以在 程序升级到新版本之后,方便地切换到旧版本。所述软件版本管理方法包括步骤:获取软件新版本的升级文件;根据所述升级文件关联对应的程序;判断所述程序当前运行的软件版本是否需要备份;若需要备份,则将所述软件版本备份于存储空间;安装所述升级文件,以将所述程序升级到相应的新版本状态。所述软件版本管理系统包括:获取模块,用于获取软件新版本的升级文件;关联模块,用于根据所述升级文件关联对应的程序;第一判断模块,用于判断所述程序当前运行的软件版本是否需要备份;备份模块,用于若需要备份,将所述软件版本备份于存储空间;及,安装模块,用于安装所述升级文件,以将所述程序升级到相应的新版本状态。相较于现有技术,所述的软件版本管理方法及系统,通过对程序当前运行的软件版本进行备份,待升级到新版本出现问题后,可以通过该备份方便的恢复/切换回该升级前的软件版本状态,操作简易,且由于不需要卸载重装,原来的设置参数得以全部保存。当然,熟知此技术者可在阅读说明书后,更了解本发明实施例的其它好处或其它目的。附图说明图1是本发明软件版本管理系统较佳实施例的功能模块图。图2是本发明软件版本管理方法较佳实施例的流程图。主要元件符号说明电子装置2云服务器4软件版本管理系统10存储器20处理器30获取模块100关联模块200第一判断模块300备份模块400安装模块500分析模块600第二判断模块700切换模块800映射模块900管理模块1000如下具体实施方式将结合上述附图进一步说明本发明。具体实施方式参阅图1所示,是本发明软件版本管理系统10较佳实施例的功能模块图。所述软件版本管理系统10运行于电子装置2中,电子装置2还包括存储器20、处理器30和通信模组40。电子装置2通过通信模组40连接于云服务器4。软件版本管理系统10用于软件版本的升级、备份、版本切换、不同程序之间的版本匹配或映射,以及版本的删除等,以保证该程序能够依据当下的运行环境选择合适的软件版本。所述软件版本管理系统10可以包括获取模块100、关联模块200、第一判断模块300、备份模块400、安装模块500、分析模块600、第二判断模块700、切换模块800、映射模块900、管理模块1000。其中模块100-1000用于实现软件版本的升级、切换等管理过程。所述模块被配置成由一个或多个处理器(本实施例为处理器30)执行,以完成本发明实施例。本发明实施例所称的模块是完成一特定功能的计算机程序段。存储器20用于软件版本管理系统10的程序代码等资 料。获取模块100用于获取软件新版本的升级文件。在本实施例中,所述升级文件可以从软件提供商的服务器中获取,也可以通过电脑或其他方式获取。所述升级文件包括软件升级包、软件升级增量包或网络在线升级链接或脚本等。关联模块200用于根据所述升级文件关联对应的程序。在本实施例中,根据该升级文件更新脚本(updater-script),通过该脚本找到当前安装于电子装置2上对应的程序。所述“程序”可以是应用程序、底层驱动程序或系统程序。需要说明的是,如果获取模块100所获取的升级文件为压缩格式文件,则需要对该升级文件先进行解压处理。第一判断模块300用于判断所述程序当前运行的软件版本是否需要备份。在本实施例中,第一判断模块300判断是否备份的依据可以有多种,例如,可以依据所述程序当前运行的软件版本在程序迭代过程中的重要性而定,若软件版本属于版本迭代过程中的重要版本,或属于版本代际迭代中的稳定版本,则判定需要进行备份,当然,若之前已经备份,则不需要重复备份。如果所述存储空间备份有所述程序的多个软件版本,则需要做如下操作:检查所述程序当前运行的软件版本的版本状态:若所述程序当前运行的软件版本的版本状态,高于所述程序在所述存储空间里备份的所有软件版本的版本状态,则判定需要执行备份操作,由备份模块400执行;若所述程序当前运行的软件版本的版本状态,低于所述程序在所述存储空间里备份的一个或多个软件版本的版本状态,则判定不需要执行备份操作,并通过切换模块800将所述程序切换到该备份的软件版本中的最高版本状态。以应用程序“com.android.serttings”为例:由于多次的更新 迭代,该程序在存储空间里可能备份有多次更新迭代留下的多个软件版本(V1.0、V2.3、V4.1、V5.0),现在获取了V6.0版本准备升级,在对该程序进行升级到V6.0前,先检查该程序当前运行的软件版本的版本状态,若检查到该程序当前运行的软件版本为V5.5,则说明该程序当前运行的软件版本高于其他备份的软件版本,则判定需要执行备份操作,由备份模块400对该软件版本V5.5进行备份;若检查到该程序当前运行的软件版本为V4.0,容易得到,存储空间里备份的软件版本V5.0的版本状态为当前最高,且已经备份,因此不需要再次备份,但是,由于软件版本更新是根据上一个最近版本做Patch(补丁),所以在升级时,要选择以当前程序的最新软件版本为基础进行升级。因此,为了能够顺利安装V6.0,需要通过切换模块800将该“com.android.serttings”先切换到V5.0的版本状态。备份模块400,用于若需要备份,将所述软件版本备份于存储空间。在本实施例中,若根据判断结果或用户的指令,需要进行备份,则执行备份操作,以将所述软件版本备份于存储空间。所述存储空间可以是存储器20,也可以是云服务器4。安装模块500用于安装所述升级文件,以将所述程序升级到相应的新版本状态。所分析模块600用于分析所述程序升级到新版本后运行过程中出现的错误。在本实施例中,若该程序为底层驱动程序,所述分析模块600可以采用或启动内核模块(kernellog)分析程序运行中出现的有关错误,若该程序为应用程序,所述分析模块600可以采用或启动虚拟机调试监控服务(ddms,dalvikdebugmonitorservice)分析程序在运行中出现的有关错误;内核模块或虚拟机调试监控服务检查到错误后,对错误的次数进行记录,并且对错误的破坏性进行评估。第二判断模块700,用于根据单位时间内所述错误出现的次数或所述错误的严重程度,判断是否需要通过所述存储空间里备份的软件版本,将所述程序切换到旧版本状态。在本实施例中,根据程序运行过程中,单位时间内出现错误的次数作为是否切换软件版本状态的依据,当然,也可以将错误的严重程度作为是否切换软件版本状态的依据。例如,一天出现3次以上错误或错误导致程序闪退、卡死或导致电子装置2宕机等,则将程序切换到其它版本状态,或向用户推荐将程序切换到其它版本状态。即可以自动切换其它版本状态,也可以是将切换建议通过电子装置2的界面推送给用户,由用户决定是否切换到其它软件版本状态。切换模块800用于将所述程序切换到旧版本状态。当然,该切换模块800并不限于此,其可以根据用户的需求,对程序的各个软件版本进行自由切换。映射模块900用于在所述程序的各个软件版本和所述程序关联软件的各个软件版本之间根据匹配度建立映射关系;当所述程序需要切换到其它软件版本状态时,根据所述程序所切换的软件版本状态,通过所述切换模块800将所述关联软件切换到相应的软件版本状态。所述关联程序,是指当一方程序改变,另一方也需要做适应性改变的程序,通常指在运行过程出现交叉、调用、被调用、兼容的程序,或具有依附关系的程序。例如,若程序A分别于程序B、C及D具有关联性,其程序A的各个软件版本与程序B、C、D的最适配软件版本的映射如下:程序A程序B程序C程序DV1.0V1.0V1.1V1.5V2.0V1.1V1.2V2.0V3.0V2.0V2.0V3.5如上表,程序A的软件版本V1.0与程序B的软件版本V1.0、程序C的软件版本V1.1和程序D的软件版本V1.5最适配,限于篇幅,不对上述表格一一阐述。可以知道,当程序A的软件版本要从V3.0切换到V1.0时,程序B也会相应的将自身的软件版本切换到V1.0,程序C也会相应的将自身的软件版本切换到V1.1程序D也会相应的将自身的软件版本切换到V1.5。管理模块1000,用于管理所述程序的各个软件版本,例如各个软件版本的删除、存储、排序、面向用户的界面显示、统计各个程序对应的软件版本明细等。参阅图2所示,是本发明软件版本管理方法较佳实施例的流程图。所述软件版本管理方法应用于电子装置2中,通过处理器30执行存储器20中存储的程序代码实现。所述软件版本管理系统10可以用于软件版本的升级、备份、版本切换、不同程序之间的版本匹配或映射,以及版本的删除等,以保证程序能够依据当下的运行环境选择合适的软件版本。步骤S10、获取软件新版本的升级文件。在本实施例中,所述升级文件可以从软件提供商的服务器中获取,也可以通过电脑或其他方式获取。所述升级文件包括软件升级包、软件升级增量包或网络在线升级链接或脚本等。步骤S12、根据所述升级文件关联对应的程序。在本实施例中,根据该升级文件更新脚本(updater-script),通过该脚本找到当前安装于电子装置2上对应的程序。所述“程序”可以是应用程序、底层驱动程序或系统程序。需要说明的是,如果步骤S10所获取的升级文件为压缩格式文件,则需要对该升级文件先进行解压处理。S14、判断所述程序当前运行的软件版本是否需要进行备份。在 本实施例中,判断是否备份的依据可以有多种,例如,可以依据所述程序当前运行的软件版本在程序迭代过程中的重要性而定,若软件版本属于版本迭代过程中的重要版本,或属于版本代际迭代中的稳定版本,则判定需要进行备份,当然,若之前已经备份,则不需要重复备份。如果所述存储空间备份有所述程序的多个软件版本,则需要做如下操作:检查所述程序当前运行的软件版本的版本状态:若所述程序当前运行的软件版本的版本状态,高于所述程序在所述存储空间里备份的所有软件版本的版本状态,则判定需要执行备份操作;若所述程序当前运行的软件版本的版本状态,低于所述程序在所述存储空间里备份的一个或多个软件版本的版本状态,则判定不需要执行备份操作,并将所述程序切换到该备份的软件版本中的最高版本状态。以应用程序“com.android.serttings”为例:由于多次的更新迭代,该程序在存储空间里可能备份有多次更新迭代留下的多个软件版本(V1.0、V2.3、V4.1、V5.0),现在获取了V6.0版本准备升级,在对该程序进行升级到V6.0前,先检查该程序当前运行的软件版本的版本状态,若检查到该程序当前运行的软件版本为V5.5,则说明该程序当前运行的软件版本高于其他备份的软件版本,则判定需要执行备份操作,执行步骤S16;若检查到该程序当前运行的软件版本为V4.0,容易得到,存储空间里备份的软件版本V5.0的版本状态为当前最高,且已经备份,因此不需要再次备份,但是,由于软件版本更新是根据上一个最近版本做Patch(补丁),所以在升级时,要选择以当前程序的最新软件版本为基础进行升级。因此,为了步骤S18的执行,需要将该“com.android.serttings”先切换到V5.0的版本状态。步骤S16、若根据判断结果或用户的指令,需要进行备份,则执行备份操作,以将所述软件版本备份于存储空间。在本实施例中,所述存储空间可以是存储器20,也可以是云服务器4。步骤S18、安装所述升级文件,以将所述程序升级到所述升级文件对应的新版本状态。步骤S20、分析所述程序升级到新版本后运行过程中出现的错误。在本实施例中,若该程序为底层驱动程序,可以启动内核模块(kernellog)分析程序运行中出现的有关错误,若该程序为应用程序,可以启动虚拟机调试监控服务(ddms,dalvikdebugmonitorservice)分析程序在运行中出现的有关错误;内核模块或虚拟机调试监控服务检查到错误后,对错误的次数进行记录,并且对错误的破坏性进行评估。步骤S22、根据单位时间内所述错误出现的次数或所述错误的严重程度,判断是否需要通过所述存储空间里备份的软件版本,将所述程序切换到旧版本状态。在本实施例中,根据程序运行过程中,单位时间内出现错误的次数作为是否切换软件版本状态的依据,当然,也可以将错误的严重程度作为是否切换软件版本状态的依据。例如,一天出现3次以上错误或错误导致程序闪退、卡死或导致电子装置2宕机等,则将程序切换到其它版本状态,或向用户推荐将程序切换到其它版本状态。即可以自动切换到其它软件版本状态,也可以是将切换建议通过电子装置2的界面推送给用户,由用户决定是否切换到其它软件版本状态。优选的,所述程序的各个软件版本和所述程序关联软件的各个软件版本之间根据匹配度建立有映射关系;当所述程序需要切换到其它软件版本状态时,根据所述程序所切换的软件版本状态,将所述关联软件切换到相应的软件版本状态。所述关联程序,是指当一 方程序改变,另一方也需要做适应性改变的程序,通常指在运行过程出现交叉、调用、被调用、兼容的程序,或具有依附关系的程序。例如,若程序A分别于程序B、C及D具有关联性,其程序A的各个软件版本与程序B、C、D的最适配软件版本的映射如下:程序A程序B程序C程序DV1.0V1.0V1.1V1.5V2.0V1.1V1.2V2.0V3.0V2.0V2.0V3.5如上表,程序A的软件版本V1.0与程序B的软件版本V1.0、程序C的软件版本V1.1和程序D的软件版本V1.5最适配,限于篇幅,不对上述表格一一阐述。可以知道,当程序A的软件版本要从V3.0切换到V1.0时,程序B也会相应的将自身的软件版本切换到V1.0,程序C也会相应的将自身的软件版本切换到V1.1程序D也会相应的将自身的软件版本切换到V1.5。所述电子装置2包括基于Windows、Lunix、Android、IOS、WP等系统的电脑、智能手机、平板电脑、电纸书、智能手表等,在此不一样列举。以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1