本發(fā)明實(shí)施例涉及數(shù)據(jù)處理技術(shù),尤其是涉及一種軟件版本管理方法及系統(tǒng)。
背景技術(shù):
:隨著移動(dòng)通訊技術(shù)的發(fā)展,電子裝置的功能日漸復(fù)雜,為擴(kuò)展電子裝置的功能或者為解決電子裝置兼容性問題,需要對(duì)電子裝置的軟件進(jìn)行升級(jí)。因此,電子裝置如手機(jī)上的應(yīng)用程序或底層驅(qū)動(dòng)程序通常隔一段時(shí)間會(huì)出現(xiàn)新的版本,以供用戶升級(jí)。但是,有些時(shí)候電子裝置在升級(jí)了新版本軟件之后,會(huì)出現(xiàn)運(yùn)行變緩慢、不穩(wěn)定等問題,而該新版本軟件對(duì)其關(guān)聯(lián)軟件也可能出現(xiàn)新的兼容性問題,當(dāng)然,新版本軟件本身也可能具有頗為嚴(yán)重的缺陷。在現(xiàn)有技術(shù)中,要解決上述問題,通常有兩種方法,一是等待下個(gè)版本出現(xiàn)后再進(jìn)行迭代更新,二是將程序卸載或?qū)㈦娮友b置恢復(fù)出廠設(shè)置,然后重新下載原來的舊版本軟件安裝。顯而易見,第一種方法耗時(shí),第二種方法費(fèi)力,且使用第二種方法會(huì)使得程序許多原有設(shè)置參數(shù)全部丟失,從而需要重新設(shè)置,較為繁瑣。技術(shù)實(shí)現(xiàn)要素:鑒于以上內(nèi)容,有必要提供一種軟件版本管理方法,可以在程序升級(jí)到新版本之后,方便地切換到舊版本。鑒于以上內(nèi)容,還有必要提供一種軟件版本管理系統(tǒng),可以在 程序升級(jí)到新版本之后,方便地切換到舊版本。所述軟件版本管理方法包括步驟:獲取軟件新版本的升級(jí)文件;根據(jù)所述升級(jí)文件關(guān)聯(lián)對(duì)應(yīng)的程序;判斷所述程序當(dāng)前運(yùn)行的軟件版本是否需要備份;若需要備份,則將所述軟件版本備份于存儲(chǔ)空間;安裝所述升級(jí)文件,以將所述程序升級(jí)到相應(yīng)的新版本狀態(tài)。所述軟件版本管理系統(tǒng)包括:獲取模塊,用于獲取軟件新版本的升級(jí)文件;關(guān)聯(lián)模塊,用于根據(jù)所述升級(jí)文件關(guān)聯(lián)對(duì)應(yīng)的程序;第一判斷模塊,用于判斷所述程序當(dāng)前運(yùn)行的軟件版本是否需要備份;備份模塊,用于若需要備份,將所述軟件版本備份于存儲(chǔ)空間;及,安裝模塊,用于安裝所述升級(jí)文件,以將所述程序升級(jí)到相應(yīng)的新版本狀態(tài)。相較于現(xiàn)有技術(shù),所述的軟件版本管理方法及系統(tǒng),通過對(duì)程序當(dāng)前運(yùn)行的軟件版本進(jìn)行備份,待升級(jí)到新版本出現(xiàn)問題后,可以通過該備份方便的恢復(fù)/切換回該升級(jí)前的軟件版本狀態(tài),操作簡(jiǎn)易,且由于不需要卸載重裝,原來的設(shè)置參數(shù)得以全部保存。當(dāng)然,熟知此技術(shù)者可在閱讀說明書后,更了解本發(fā)明實(shí)施例的其它好處或其它目的。附圖說明圖1是本發(fā)明軟件版本管理系統(tǒng)較佳實(shí)施例的功能模塊圖。圖2是本發(fā)明軟件版本管理方法較佳實(shí)施例的流程圖。主要元件符號(hào)說明電子裝置2云服務(wù)器4軟件版本管理系統(tǒng)10存儲(chǔ)器20處理器30獲取模塊100關(guān)聯(lián)模塊200第一判斷模塊300備份模塊400安裝模塊500分析模塊600第二判斷模塊700切換模塊800映射模塊900管理模塊1000如下具體實(shí)施方式將結(jié)合上述附圖進(jìn)一步說明本發(fā)明。具體實(shí)施方式參閱圖1所示,是本發(fā)明軟件版本管理系統(tǒng)10較佳實(shí)施例的功能模塊圖。所述軟件版本管理系統(tǒng)10運(yùn)行于電子裝置2中,電子裝置2還包括存儲(chǔ)器20、處理器30和通信模組40。電子裝置2通過通信模組40連接于云服務(wù)器4。軟件版本管理系統(tǒng)10用于軟件版本的升級(jí)、備份、版本切換、不同程序之間的版本匹配或映射,以及版本的刪除等,以保證該程序能夠依據(jù)當(dāng)下的運(yùn)行環(huán)境選擇合適的軟件版本。所述軟件版本管理系統(tǒng)10可以包括獲取模塊100、關(guān)聯(lián)模塊200、第一判斷模塊300、備份模塊400、安裝模塊500、分析模塊600、第二判斷模塊700、切換模塊800、映射模塊900、管理模塊1000。其中模塊100-1000用于實(shí)現(xiàn)軟件版本的升級(jí)、切換等管理過程。所述模塊被配置成由一個(gè)或多個(gè)處理器(本實(shí)施例為處理器30)執(zhí)行,以完成本發(fā)明實(shí)施例。本發(fā)明實(shí)施例所稱的模塊是完成一特定功能的計(jì)算機(jī)程序段。存儲(chǔ)器20用于軟件版本管理系統(tǒng)10的程序代碼等資 料。獲取模塊100用于獲取軟件新版本的升級(jí)文件。在本實(shí)施例中,所述升級(jí)文件可以從軟件提供商的服務(wù)器中獲取,也可以通過電腦或其他方式獲取。所述升級(jí)文件包括軟件升級(jí)包、軟件升級(jí)增量包或網(wǎng)絡(luò)在線升級(jí)鏈接或腳本等。關(guān)聯(lián)模塊200用于根據(jù)所述升級(jí)文件關(guān)聯(lián)對(duì)應(yīng)的程序。在本實(shí)施例中,根據(jù)該升級(jí)文件更新腳本(updater-script),通過該腳本找到當(dāng)前安裝于電子裝置2上對(duì)應(yīng)的程序。所述“程序”可以是應(yīng)用程序、底層驅(qū)動(dòng)程序或系統(tǒng)程序。需要說明的是,如果獲取模塊100所獲取的升級(jí)文件為壓縮格式文件,則需要對(duì)該升級(jí)文件先進(jìn)行解壓處理。第一判斷模塊300用于判斷所述程序當(dāng)前運(yùn)行的軟件版本是否需要備份。在本實(shí)施例中,第一判斷模塊300判斷是否備份的依據(jù)可以有多種,例如,可以依據(jù)所述程序當(dāng)前運(yùn)行的軟件版本在程序迭代過程中的重要性而定,若軟件版本屬于版本迭代過程中的重要版本,或?qū)儆诎姹敬H迭代中的穩(wěn)定版本,則判定需要進(jìn)行備份,當(dāng)然,若之前已經(jīng)備份,則不需要重復(fù)備份。如果所述存儲(chǔ)空間備份有所述程序的多個(gè)軟件版本,則需要做如下操作:檢查所述程序當(dāng)前運(yùn)行的軟件版本的版本狀態(tài):若所述程序當(dāng)前運(yùn)行的軟件版本的版本狀態(tài),高于所述程序在所述存儲(chǔ)空間里備份的所有軟件版本的版本狀態(tài),則判定需要執(zhí)行備份操作,由備份模塊400執(zhí)行;若所述程序當(dāng)前運(yùn)行的軟件版本的版本狀態(tài),低于所述程序在所述存儲(chǔ)空間里備份的一個(gè)或多個(gè)軟件版本的版本狀態(tài),則判定不需要執(zhí)行備份操作,并通過切換模塊800將所述程序切換到該備份的軟件版本中的最高版本狀態(tài)。以應(yīng)用程序“com.android.serttings”為例:由于多次的更新 迭代,該程序在存儲(chǔ)空間里可能備份有多次更新迭代留下的多個(gè)軟件版本(V1.0、V2.3、V4.1、V5.0),現(xiàn)在獲取了V6.0版本準(zhǔn)備升級(jí),在對(duì)該程序進(jìn)行升級(jí)到V6.0前,先檢查該程序當(dāng)前運(yùn)行的軟件版本的版本狀態(tài),若檢查到該程序當(dāng)前運(yùn)行的軟件版本為V5.5,則說明該程序當(dāng)前運(yùn)行的軟件版本高于其他備份的軟件版本,則判定需要執(zhí)行備份操作,由備份模塊400對(duì)該軟件版本V5.5進(jìn)行備份;若檢查到該程序當(dāng)前運(yùn)行的軟件版本為V4.0,容易得到,存儲(chǔ)空間里備份的軟件版本V5.0的版本狀態(tài)為當(dāng)前最高,且已經(jīng)備份,因此不需要再次備份,但是,由于軟件版本更新是根據(jù)上一個(gè)最近版本做Patch(補(bǔ)丁),所以在升級(jí)時(shí),要選擇以當(dāng)前程序的最新軟件版本為基礎(chǔ)進(jìn)行升級(jí)。因此,為了能夠順利安裝V6.0,需要通過切換模塊800將該“com.android.serttings”先切換到V5.0的版本狀態(tài)。備份模塊400,用于若需要備份,將所述軟件版本備份于存儲(chǔ)空間。在本實(shí)施例中,若根據(jù)判斷結(jié)果或用戶的指令,需要進(jìn)行備份,則執(zhí)行備份操作,以將所述軟件版本備份于存儲(chǔ)空間。所述存儲(chǔ)空間可以是存儲(chǔ)器20,也可以是云服務(wù)器4。安裝模塊500用于安裝所述升級(jí)文件,以將所述程序升級(jí)到相應(yīng)的新版本狀態(tài)。所分析模塊600用于分析所述程序升級(jí)到新版本后運(yùn)行過程中出現(xiàn)的錯(cuò)誤。在本實(shí)施例中,若該程序?yàn)榈讓域?qū)動(dòng)程序,所述分析模塊600可以采用或啟動(dòng)內(nèi)核模塊(kernellog)分析程序運(yùn)行中出現(xiàn)的有關(guān)錯(cuò)誤,若該程序?yàn)閼?yīng)用程序,所述分析模塊600可以采用或啟動(dòng)虛擬機(jī)調(diào)試監(jiān)控服務(wù)(ddms,dalvikdebugmonitorservice)分析程序在運(yùn)行中出現(xiàn)的有關(guān)錯(cuò)誤;內(nèi)核模塊或虛擬機(jī)調(diào)試監(jiān)控服務(wù)檢查到錯(cuò)誤后,對(duì)錯(cuò)誤的次數(shù)進(jìn)行記錄,并且對(duì)錯(cuò)誤的破壞性進(jìn)行評(píng)估。第二判斷模塊700,用于根據(jù)單位時(shí)間內(nèi)所述錯(cuò)誤出現(xiàn)的次數(shù)或所述錯(cuò)誤的嚴(yán)重程度,判斷是否需要通過所述存儲(chǔ)空間里備份的軟件版本,將所述程序切換到舊版本狀態(tài)。在本實(shí)施例中,根據(jù)程序運(yùn)行過程中,單位時(shí)間內(nèi)出現(xiàn)錯(cuò)誤的次數(shù)作為是否切換軟件版本狀態(tài)的依據(jù),當(dāng)然,也可以將錯(cuò)誤的嚴(yán)重程度作為是否切換軟件版本狀態(tài)的依據(jù)。例如,一天出現(xiàn)3次以上錯(cuò)誤或錯(cuò)誤導(dǎo)致程序閃退、卡死或?qū)е码娮友b置2宕機(jī)等,則將程序切換到其它版本狀態(tài),或向用戶推薦將程序切換到其它版本狀態(tài)。即可以自動(dòng)切換其它版本狀態(tài),也可以是將切換建議通過電子裝置2的界面推送給用戶,由用戶決定是否切換到其它軟件版本狀態(tài)。切換模塊800用于將所述程序切換到舊版本狀態(tài)。當(dāng)然,該切換模塊800并不限于此,其可以根據(jù)用戶的需求,對(duì)程序的各個(gè)軟件版本進(jìn)行自由切換。映射模塊900用于在所述程序的各個(gè)軟件版本和所述程序關(guān)聯(lián)軟件的各個(gè)軟件版本之間根據(jù)匹配度建立映射關(guān)系;當(dāng)所述程序需要切換到其它軟件版本狀態(tài)時(shí),根據(jù)所述程序所切換的軟件版本狀態(tài),通過所述切換模塊800將所述關(guān)聯(lián)軟件切換到相應(yīng)的軟件版本狀態(tài)。所述關(guān)聯(lián)程序,是指當(dāng)一方程序改變,另一方也需要做適應(yīng)性改變的程序,通常指在運(yùn)行過程出現(xiàn)交叉、調(diào)用、被調(diào)用、兼容的程序,或具有依附關(guān)系的程序。例如,若程序A分別于程序B、C及D具有關(guān)聯(lián)性,其程序A的各個(gè)軟件版本與程序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最適配,限于篇幅,不對(duì)上述表格一一闡述??梢灾?,當(dāng)程序A的軟件版本要從V3.0切換到V1.0時(shí),程序B也會(huì)相應(yīng)的將自身的軟件版本切換到V1.0,程序C也會(huì)相應(yīng)的將自身的軟件版本切換到V1.1程序D也會(huì)相應(yīng)的將自身的軟件版本切換到V1.5。管理模塊1000,用于管理所述程序的各個(gè)軟件版本,例如各個(gè)軟件版本的刪除、存儲(chǔ)、排序、面向用戶的界面顯示、統(tǒng)計(jì)各個(gè)程序?qū)?yīng)的軟件版本明細(xì)等。參閱圖2所示,是本發(fā)明軟件版本管理方法較佳實(shí)施例的流程圖。所述軟件版本管理方法應(yīng)用于電子裝置2中,通過處理器30執(zhí)行存儲(chǔ)器20中存儲(chǔ)的程序代碼實(shí)現(xiàn)。所述軟件版本管理系統(tǒng)10可以用于軟件版本的升級(jí)、備份、版本切換、不同程序之間的版本匹配或映射,以及版本的刪除等,以保證程序能夠依據(jù)當(dāng)下的運(yùn)行環(huán)境選擇合適的軟件版本。步驟S10、獲取軟件新版本的升級(jí)文件。在本實(shí)施例中,所述升級(jí)文件可以從軟件提供商的服務(wù)器中獲取,也可以通過電腦或其他方式獲取。所述升級(jí)文件包括軟件升級(jí)包、軟件升級(jí)增量包或網(wǎng)絡(luò)在線升級(jí)鏈接或腳本等。步驟S12、根據(jù)所述升級(jí)文件關(guān)聯(lián)對(duì)應(yīng)的程序。在本實(shí)施例中,根據(jù)該升級(jí)文件更新腳本(updater-script),通過該腳本找到當(dāng)前安裝于電子裝置2上對(duì)應(yīng)的程序。所述“程序”可以是應(yīng)用程序、底層驅(qū)動(dòng)程序或系統(tǒng)程序。需要說明的是,如果步驟S10所獲取的升級(jí)文件為壓縮格式文件,則需要對(duì)該升級(jí)文件先進(jìn)行解壓處理。S14、判斷所述程序當(dāng)前運(yùn)行的軟件版本是否需要進(jìn)行備份。在 本實(shí)施例中,判斷是否備份的依據(jù)可以有多種,例如,可以依據(jù)所述程序當(dāng)前運(yùn)行的軟件版本在程序迭代過程中的重要性而定,若軟件版本屬于版本迭代過程中的重要版本,或?qū)儆诎姹敬H迭代中的穩(wěn)定版本,則判定需要進(jìn)行備份,當(dāng)然,若之前已經(jīng)備份,則不需要重復(fù)備份。如果所述存儲(chǔ)空間備份有所述程序的多個(gè)軟件版本,則需要做如下操作:檢查所述程序當(dāng)前運(yùn)行的軟件版本的版本狀態(tài):若所述程序當(dāng)前運(yùn)行的軟件版本的版本狀態(tài),高于所述程序在所述存儲(chǔ)空間里備份的所有軟件版本的版本狀態(tài),則判定需要執(zhí)行備份操作;若所述程序當(dāng)前運(yùn)行的軟件版本的版本狀態(tài),低于所述程序在所述存儲(chǔ)空間里備份的一個(gè)或多個(gè)軟件版本的版本狀態(tài),則判定不需要執(zhí)行備份操作,并將所述程序切換到該備份的軟件版本中的最高版本狀態(tài)。以應(yīng)用程序“com.android.serttings”為例:由于多次的更新迭代,該程序在存儲(chǔ)空間里可能備份有多次更新迭代留下的多個(gè)軟件版本(V1.0、V2.3、V4.1、V5.0),現(xiàn)在獲取了V6.0版本準(zhǔn)備升級(jí),在對(duì)該程序進(jìn)行升級(jí)到V6.0前,先檢查該程序當(dāng)前運(yùn)行的軟件版本的版本狀態(tài),若檢查到該程序當(dāng)前運(yùn)行的軟件版本為V5.5,則說明該程序當(dāng)前運(yùn)行的軟件版本高于其他備份的軟件版本,則判定需要執(zhí)行備份操作,執(zhí)行步驟S16;若檢查到該程序當(dāng)前運(yùn)行的軟件版本為V4.0,容易得到,存儲(chǔ)空間里備份的軟件版本V5.0的版本狀態(tài)為當(dāng)前最高,且已經(jīng)備份,因此不需要再次備份,但是,由于軟件版本更新是根據(jù)上一個(gè)最近版本做Patch(補(bǔ)丁),所以在升級(jí)時(shí),要選擇以當(dāng)前程序的最新軟件版本為基礎(chǔ)進(jìn)行升級(jí)。因此,為了步驟S18的執(zhí)行,需要將該“com.android.serttings”先切換到V5.0的版本狀態(tài)。步驟S16、若根據(jù)判斷結(jié)果或用戶的指令,需要進(jìn)行備份,則執(zhí)行備份操作,以將所述軟件版本備份于存儲(chǔ)空間。在本實(shí)施例中,所述存儲(chǔ)空間可以是存儲(chǔ)器20,也可以是云服務(wù)器4。步驟S18、安裝所述升級(jí)文件,以將所述程序升級(jí)到所述升級(jí)文件對(duì)應(yīng)的新版本狀態(tài)。步驟S20、分析所述程序升級(jí)到新版本后運(yùn)行過程中出現(xiàn)的錯(cuò)誤。在本實(shí)施例中,若該程序?yàn)榈讓域?qū)動(dòng)程序,可以啟動(dòng)內(nèi)核模塊(kernellog)分析程序運(yùn)行中出現(xiàn)的有關(guān)錯(cuò)誤,若該程序?yàn)閼?yīng)用程序,可以啟動(dòng)虛擬機(jī)調(diào)試監(jiān)控服務(wù)(ddms,dalvikdebugmonitorservice)分析程序在運(yùn)行中出現(xiàn)的有關(guān)錯(cuò)誤;內(nèi)核模塊或虛擬機(jī)調(diào)試監(jiān)控服務(wù)檢查到錯(cuò)誤后,對(duì)錯(cuò)誤的次數(shù)進(jìn)行記錄,并且對(duì)錯(cuò)誤的破壞性進(jìn)行評(píng)估。步驟S22、根據(jù)單位時(shí)間內(nèi)所述錯(cuò)誤出現(xiàn)的次數(shù)或所述錯(cuò)誤的嚴(yán)重程度,判斷是否需要通過所述存儲(chǔ)空間里備份的軟件版本,將所述程序切換到舊版本狀態(tài)。在本實(shí)施例中,根據(jù)程序運(yùn)行過程中,單位時(shí)間內(nèi)出現(xiàn)錯(cuò)誤的次數(shù)作為是否切換軟件版本狀態(tài)的依據(jù),當(dāng)然,也可以將錯(cuò)誤的嚴(yán)重程度作為是否切換軟件版本狀態(tài)的依據(jù)。例如,一天出現(xiàn)3次以上錯(cuò)誤或錯(cuò)誤導(dǎo)致程序閃退、卡死或?qū)е码娮友b置2宕機(jī)等,則將程序切換到其它版本狀態(tài),或向用戶推薦將程序切換到其它版本狀態(tài)。即可以自動(dòng)切換到其它軟件版本狀態(tài),也可以是將切換建議通過電子裝置2的界面推送給用戶,由用戶決定是否切換到其它軟件版本狀態(tài)。優(yōu)選的,所述程序的各個(gè)軟件版本和所述程序關(guān)聯(lián)軟件的各個(gè)軟件版本之間根據(jù)匹配度建立有映射關(guān)系;當(dāng)所述程序需要切換到其它軟件版本狀態(tài)時(shí),根據(jù)所述程序所切換的軟件版本狀態(tài),將所述關(guān)聯(lián)軟件切換到相應(yīng)的軟件版本狀態(tài)。所述關(guān)聯(lián)程序,是指當(dāng)一 方程序改變,另一方也需要做適應(yīng)性改變的程序,通常指在運(yùn)行過程出現(xiàn)交叉、調(diào)用、被調(diào)用、兼容的程序,或具有依附關(guān)系的程序。例如,若程序A分別于程序B、C及D具有關(guān)聯(lián)性,其程序A的各個(gè)軟件版本與程序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最適配,限于篇幅,不對(duì)上述表格一一闡述??梢灾?,當(dāng)程序A的軟件版本要從V3.0切換到V1.0時(shí),程序B也會(huì)相應(yīng)的將自身的軟件版本切換到V1.0,程序C也會(huì)相應(yīng)的將自身的軟件版本切換到V1.1程序D也會(huì)相應(yīng)的將自身的軟件版本切換到V1.5。所述電子裝置2包括基于Windows、Lunix、Android、IOS、WP等系統(tǒng)的電腦、智能手機(jī)、平板電腦、電紙書、智能手表等,在此不一樣列舉。以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。當(dāng)前第1頁1 2 3