專利名稱:確保軟件正常運行的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種確保軟件正常運行的方法和裝置。
背景技術(shù):
隨著計算機技術(shù)的發(fā)展,可以實現(xiàn)各種功能的軟件層出不窮,如可以進行聊天的聊天軟件等。在軟件運行過程中常常會用到用戶數(shù)據(jù),而由于各種原因(如存儲用戶數(shù)據(jù)的閃存損壞等)常常會使得用戶數(shù)據(jù)損壞,導致軟件無法正常運行。目前,當用戶數(shù)據(jù)出現(xiàn)損壞,軟件無法正常運行時,采用的方法是將軟件卸載,然后重新裝載軟件。然而,在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題現(xiàn)有的方法需要將軟件卸載,會刪除用戶數(shù)據(jù),造成用戶數(shù)據(jù)丟失;且卸載,然后重新裝載軟件,需要花費時間,浪費用戶時間。
發(fā)明內(nèi)容
為了避免用戶數(shù)據(jù)丟失,節(jié)約用戶時間,本發(fā)明實施例提供了一種確保軟件正常運行的方法和裝置。所述技術(shù)方案如下—種確保軟件正常運行的方法,所述方法包括當軟件啟動后,檢測是否存在有損壞的用戶數(shù)據(jù);當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復。一種確保軟件正常運行的裝置,所述裝置包括檢測模塊,用于當軟件啟動后,檢測是否存在有損壞的用戶數(shù)據(jù); 修復模塊,用于當所述檢測模塊檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復。本發(fā)明實施例提供的技術(shù)方案的有益效果是通過檢測是否存在有損壞的用戶數(shù)據(jù),當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復,從而確保軟件可以正常運行,不需要將軟件卸載,然后重新裝載軟件,避免了用戶數(shù)據(jù)丟失,且可以節(jié)約用戶時間。
圖I是本發(fā)明實施例I提供的一種確保軟件正常運行的方法流程圖;圖2是本發(fā)明實施例2提供的一種確保軟件正常運行的方法流程圖;圖3是本發(fā)明實施例3提供的第一種確保軟件正常運行的裝置結(jié)構(gòu)示意圖;圖4是本發(fā)明實施例3提供的第二種確保軟件正常運行的裝置結(jié)構(gòu)示意圖;圖5是本發(fā)明實施例3提供的第三種確保軟件正常運行的裝置結(jié)構(gòu)示意圖;圖6是本發(fā)明實施例3提供的第四種確保軟件正常運行的裝置結(jié)構(gòu)示意圖; 圖7是本發(fā)明實施例3提供的第五種確保軟件正常運行的裝置結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。實施例I參見圖1,本發(fā)明實施例提供了一種確保軟件正常運行的方法,該方法包括101 :當軟件啟動后,檢測是否存在有損壞的用戶數(shù)據(jù)。
102 :當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復。進一步地,該方法還包括在軟件上一次運行過程中,當軟件讀取用戶數(shù)據(jù)時,判斷是否能夠讀取出相應的用戶數(shù)據(jù);當不能夠讀取出相應的用戶數(shù)據(jù)時,確定該相應的用戶數(shù)據(jù)損壞;記錄損壞的用戶數(shù)據(jù)的信息;相應地,檢測是否存在有損壞的用戶數(shù)據(jù)包括查詢記錄;如果查詢到損壞的用戶數(shù)據(jù)的信息,則確定存在有損壞的用戶數(shù)據(jù);否則,確定沒有存在損壞的用戶數(shù)據(jù)。進一步地,該方法還包括當能夠讀取出相應的用戶數(shù)據(jù)時,判斷該相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求;如果不符合數(shù)據(jù)記錄格式或業(yè)務對數(shù)據(jù)的要求,確定該相應的用戶數(shù)據(jù)損壞,然后執(zhí)行記錄損壞的用戶數(shù)據(jù)的信息的步驟。進一步地,判斷相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求之前,該方法還包括對相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC進行校驗;其中,相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼(CRC, Cyclic Redundancy Check)為在保存相應的用戶數(shù)據(jù)時生成,并與相應的用戶數(shù)據(jù)結(jié)合后保存;判斷校驗是否成功;如果校驗失敗,則確定相應的用戶數(shù)據(jù)損壞,然后執(zhí)行記錄損壞的用戶數(shù)據(jù)的信息的步驟;如果校驗成功,則執(zhí)行判斷相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求的步驟。其中,對損壞的用戶數(shù)據(jù)進行修復,包括判斷服務器中是否存在有與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù);如果服務中存在有與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù),則將該損壞的用戶數(shù)據(jù)所在的文件刪除,將服務器中存在的與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)所在的文件復制到本地。進一步地,判斷服務器中是否存在有與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)之后,該方法還包括
如果服務器中沒有存在與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù),則讀取出該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù),將有效數(shù)據(jù)存儲在新的文件中;用新的文件替換該損壞的用戶數(shù)據(jù)所在的文件。進一步地,對損壞的用戶數(shù)據(jù)進行修復之前,該方法還包括判斷是否需要對損壞的用戶數(shù)據(jù)進行修復;如果不需要對損壞的用戶數(shù)據(jù)進行修復,則將該損壞的用戶數(shù)據(jù)所在的文件刪除。本發(fā)明實施例所述的確保軟件正常運行的方法,通過檢測是否存在有損壞的用戶數(shù)據(jù),當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復,從而確保軟件可以正常運行,不需要將軟件卸載,然后重新裝載軟件,避免了用戶數(shù)據(jù)丟失,且可以節(jié)約用戶時間。并且,可以通過在軟件上一次運行過程中,記錄的損壞的用戶數(shù)據(jù)的信息,檢測出是否存在有損壞的用戶數(shù)據(jù),檢測方法簡單易行,可以節(jié)約軟件的運行時間??梢酝ㄟ^將服務器中存在的與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)復制到本地的方法,以及讀取出該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù)的方法,對用戶數(shù)據(jù)進行修復,保證了用戶數(shù)據(jù)的修復。本發(fā)明實施例所述的確保軟件正常運行的方法,可以應用于各種系統(tǒng)的各種軟件,為了便于說明,下面以應用于手機的微信軟件(S60版)為例進行進一步地說明。實施例2參見圖2,本發(fā)明實施例提供了一種確保軟件正常運行的方法,該方法包括201 :當微信啟動時,檢測是否存在有損壞的用戶數(shù)據(jù),如果存在有,則執(zhí)行202 ;否則,執(zhí)行208。其中,本發(fā)明實施例中用戶數(shù)據(jù)包括配置文件、聯(lián)系人列表、微信消息、微信語音、漂流瓶數(shù)據(jù)等。本發(fā)明實施例是通過利用在微信上一次運行過程中(當前啟動的前一次運行過程)對用戶數(shù)據(jù)是否損壞所做的記錄,來判斷用戶數(shù)據(jù)是否損壞,具體如下在微信運行過程中,當微信讀取用戶數(shù)據(jù)時,判斷是否能夠讀取出相應的用戶數(shù)據(jù);當不能夠讀取出相應的用戶數(shù)據(jù)時,確定該相應的用戶數(shù)據(jù)損壞;記錄損壞的用戶數(shù)據(jù)的信息;相應地,檢測是否存在有損壞的用戶數(shù)據(jù)包括查詢記錄;如果查詢到損壞的用戶數(shù)據(jù)的信息,則確定存在有損壞的用戶數(shù)據(jù);否則,確定沒有存在損壞的用戶數(shù)據(jù)。具體地,在微信運行過程中,可以通過調(diào)用系統(tǒng)的APKApplication ProgrammingInterface,應用程序編程接口)來得知是否能夠讀取出相應的用戶數(shù)據(jù),從而判斷出是否能夠讀取出相應的用戶數(shù)據(jù)。其中,損壞的用戶數(shù)據(jù)的信息包括用戶數(shù)據(jù)所在的文件的路徑信息、用戶數(shù)據(jù)所在文件的位置信息等。具體地,可以將損壞的用戶數(shù)據(jù)的信息記錄在一個文件中,如日志文件中,當檢測是否存在有損壞的用戶數(shù)據(jù),可以查詢?nèi)罩疚募?,從而得知是否存在有損壞的用戶數(shù)據(jù)。、
但是,由于不同軟件的用戶數(shù)據(jù)需要具有不同的數(shù)據(jù)記錄格式,且需要滿足不同的業(yè)務要求,當能夠讀取出相應的用戶數(shù)據(jù),但如果相應的用戶數(shù)據(jù)不符合數(shù)據(jù)記錄格式或業(yè)務對數(shù)據(jù)的要求,那該用戶數(shù)據(jù)也可能被損壞了。例如郵件的用戶數(shù)據(jù)是XML(Extensible Markup Language,可擴展標記語言)格式,當讀取出相應的用戶數(shù)據(jù)后,驗證讀取出來的用戶數(shù)據(jù)是否符合XML格式,如果不符合XML格式,則該用戶數(shù)據(jù)就是被損壞了。如果讀取出來的用戶數(shù)據(jù)符合XML格式,對用戶數(shù)據(jù)進行解析,得到很多字段,例如發(fā)件人、收件人、主題等,由于對郵件業(yè)務來說,發(fā)件人是必須有的,如果解得到的字段中發(fā)件人為空,則用戶數(shù)據(jù)不符合業(yè)務對數(shù)據(jù)的要求,該用戶數(shù)據(jù)是被損壞了。所以進一步地,該方法還包括當能夠讀取出相應的用戶數(shù)據(jù)時,判斷該相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求;如果不符合數(shù)據(jù)記錄格式或業(yè)務對數(shù)據(jù)的要求,確定該相應的用戶數(shù)據(jù)損壞,然 后執(zhí)行記錄損壞的用戶數(shù)據(jù)的信息的步驟。并且,為了保證能檢測出存在的損壞的用戶數(shù)據(jù),進一步地,判斷相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求之前,該方法還包括對相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC進行校驗;其中,相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC為在保存相應的用戶數(shù)據(jù)時生成,并與相應的用戶數(shù)據(jù)結(jié)合后保存;判斷校驗是否成功;如果校驗失敗,則確定相應的用戶數(shù)據(jù)損壞,然后執(zhí)行記錄損壞的用戶數(shù)據(jù)的信息的步驟;如果校驗成功,則執(zhí)行判斷相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求的步驟。202 :判斷是否需要對損壞的用戶數(shù)據(jù)進行修復,如果需要,則執(zhí)行203 ;否則,執(zhí)行 207。具體地,可以根據(jù)用戶數(shù)據(jù)的重要級別,設(shè)置是否需要對損壞的用戶數(shù)據(jù)進行修復,如本發(fā)明實施例中可以設(shè)置配置文件、聯(lián)系人列表等用戶數(shù)據(jù)損壞后需要修復。并且,可以將損壞后需要修復的用戶數(shù)據(jù)以列表的形式記錄下來,當檢測到存在有損壞的用戶數(shù)據(jù)后,查詢相應的列表,以判斷出是否需要對該損壞的用戶數(shù)據(jù)進行修復。需要說明的是,并不限于通過查詢列表的方式,判斷出是否需要對損壞的用戶數(shù)據(jù)進行修復,實際應用中還可以采用其他任何可行的方式實現(xiàn),對此不做具體限定。203:判斷服務器中是否存在有與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù),如果存在有,則執(zhí)行204 ;否則,執(zhí)行205。其中,服務器是指為微信軟件提供相應服務的服務器。204:將該損壞的用戶數(shù)據(jù)所在的文件刪除,將服務器中存在的與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)所在的文件復制到本地,然后執(zhí)行206。具體地,將服務器中存在的與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)所在的文件復制到本地,包括向服務器發(fā)送下發(fā)與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)的請求消息。服務器接收到請求消息后,將與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)下發(fā)到本地。
205:讀取出該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù),將有效數(shù)據(jù)存儲在新的文件中,用新的文件替換該損壞的用戶數(shù)據(jù)所在的文件,然后執(zhí)行206。需要說明的是,在讀取該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù)時,可能會對該損壞的用戶數(shù)據(jù)所在的文件中的用戶數(shù)據(jù)造成損壞,為了避免上述情況發(fā)生時對用戶數(shù)據(jù)造成的損壞,可以在讀取該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù)之前,對該損壞的用戶數(shù)據(jù)所在的文件進行備份。206 :判斷是否成功修復損壞的用戶數(shù)據(jù),如果成功,則執(zhí)行208 ;否則,執(zhí)行209。對于不同的修復方式,判斷是否成功修復損壞的用戶數(shù)據(jù)的方法也不同,具體如下對于通過將服務器中存在的與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)所在的文件復制到本地的方式進行修復的,當向服務器發(fā)送下發(fā)與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)的請求消息成功,服務器接收請求消息成功,且將與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)下發(fā)到本地成功時,判斷成功修復了損壞的用戶數(shù)據(jù);當向服務器發(fā)送下發(fā)與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)的請求消息失敗,服務器接收請求消息失敗,或?qū)⑴c該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)下發(fā)到本地失敗時,判斷修復損壞的用戶數(shù)據(jù)失敗。對于通過讀取損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù)的方式進行修復的,當讀取出該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù)成功,將有效數(shù)據(jù)存儲在新的文件中成功,且用新的文件替換該損壞的用戶數(shù)據(jù)所在的文件成功時,判斷成功修復了損壞的用戶數(shù)據(jù);當讀取出該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù)失敗,將有效數(shù)據(jù)存儲在新的文件中失敗,且用新的文件替換該損壞的用戶數(shù)據(jù)所在的文件失敗時,判斷修復損壞的用戶數(shù)據(jù)失敗。207 :將該損壞的用戶數(shù)據(jù)所在的文件刪除,然后執(zhí)行208。208 :微信正常啟動,進行初始化操作,然后結(jié)束。進行初始化操作包括初始化UI (User Interface,用戶界面)界面、啟動微信業(yè)務邏輯等。209 :退出微信,然后結(jié)束。本發(fā)明實施例所述的確保軟件正常運行的方法,通過檢測是否存在有損壞的用戶數(shù)據(jù),當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復,從而確保軟件可以正常運行,不需要將軟件卸載,然后重新裝載軟件,避免了用戶數(shù)據(jù)丟失,且可以節(jié)約用戶時間。并且,可以通過在軟件上一次運行過程中,記錄的損壞的用戶數(shù)據(jù)的信息,檢測出是否存在有損壞的用戶數(shù)據(jù),檢測方法簡單易行,可以節(jié)約軟件的運行時間??梢酝ㄟ^將服務器中存在的與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)復制到本地的方法,以及讀取出該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù)的方法,對用戶數(shù)據(jù)進行修復,保證了用戶數(shù)據(jù)的修復。實施例3參見圖3,本發(fā)明實施例提供了一種確保軟件正常運行的裝置,該裝置包括檢測模塊301,用于當軟件啟動后,檢測是否存在有損壞的用戶數(shù)據(jù);修復模塊302,用于當檢測模塊301檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復。進一步地,參見圖4,該裝置還包括
第一判斷模塊303,用于在軟件上一次運行過程中,當軟件讀取用戶數(shù)據(jù)時,判斷是否能夠讀取出相應的用戶數(shù)據(jù);第一確定模塊304,用于當?shù)谝慌袛嗄K303的判斷結(jié)果是不能夠讀取出相應的用戶數(shù)據(jù)時,確定相應的用戶數(shù)據(jù)損壞;記錄模塊305,用于當?shù)谝淮_定模塊304確定相應的用戶數(shù)據(jù)損壞后,記錄損壞的用戶數(shù)據(jù)的信息;相應地,檢測模塊301包括查詢單元,用于查詢記錄模塊305的記錄;處理單元,用于當查詢單元查詢到損壞的用戶數(shù)據(jù)的信息時,確定存在有損壞的 用戶數(shù)據(jù);否則,確定沒有存在損壞的用戶數(shù)據(jù)。進一步地,參見圖5,該裝置還包括第二判斷模塊306,用于當?shù)谝慌袛嗄K303的判斷結(jié)果是能夠讀取出相應的用戶數(shù)據(jù)時,判斷相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求;第二確定模塊307,用于當?shù)诙袛嗄K306的判斷結(jié)果是相應的用戶數(shù)據(jù)不符合數(shù)據(jù)記錄格式或業(yè)務對數(shù)據(jù)的要求時,確定相應的用戶數(shù)據(jù)損壞,然后向記錄模塊305發(fā)送執(zhí)行記錄損壞的用戶數(shù)據(jù)的信息的通知。進一步地,參見圖6,該裝置還包括校驗模塊308,用于當?shù)谝慌袛嗄K303的判斷結(jié)果是能夠讀取出相應的用戶數(shù)據(jù)時,對相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC進行校驗;其中,相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC為在保存相應的用戶數(shù)據(jù)時生成,并與相應的用戶數(shù)據(jù)結(jié)合后保存;第三判斷模塊309,用于判斷校驗是否成功;第一通知模塊310,用于當?shù)谌袛嗄K309的判斷結(jié)果是校驗失敗時,確定相應的用戶數(shù)據(jù)損壞,然后向記錄模塊305發(fā)送執(zhí)行記錄損壞的用戶數(shù)據(jù)的信息的通知;第二通知模塊311,用于當?shù)谌袛嗄K309的判斷結(jié)果是校驗成功時,向第二判斷模塊306發(fā)送執(zhí)行判斷相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求的通知。進一步地,修復模塊302包括判斷單元,用于當檢測模塊301檢測到存在有損壞的用戶數(shù)據(jù)后,判斷服務器中是否存在有與損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù);第一修復單元,用于當判斷單元的判斷結(jié)果是服務中存在有與損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)時,將損壞的用戶數(shù)據(jù)所在的文件刪除,將服務器中存在的與損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)所在的文件復制到本地。進一步地,修復模塊302還包括第二修復單元,用于當判斷單元的判斷結(jié)果是服務器中沒有存在與損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)時,讀取出損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù),將有效數(shù)據(jù)存儲在新的文件中;用新的文件替換損壞的用戶數(shù)據(jù)所在的文件。進一步地,參見圖7,該裝置還包括第四判斷模塊312,用于當檢測模塊301檢測到存在有損壞的用戶數(shù)據(jù)后,判斷是否需要對損壞的用戶數(shù)據(jù)進行修復;
刪除模塊313,用于當?shù)谒呐袛嗄K312的判斷結(jié)果是不需要對損壞的用戶數(shù)據(jù)進行修復時,將損壞的用戶數(shù)據(jù)所在的文件刪除。本 發(fā)明實施例所述的確保軟件正常運行的裝置,通過檢測是否存在有損壞的用戶數(shù)據(jù),當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復,從而確保軟件可以正常運行,不需要將軟件卸載,然后重新裝載軟件,避免了用戶數(shù)據(jù)丟失,且可以節(jié)約用戶時間。并且,可以通過在軟件上一次運行過程中,記錄的損壞的用戶數(shù)據(jù)的信息,檢測出是否存在有損壞的用戶數(shù)據(jù),檢測方法簡單易行,可以節(jié)約軟件的運行時間??梢酝ㄟ^將服務器中存在的與該損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)復制到本地的方法,以及讀取出該損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù)的方法,對用戶數(shù)據(jù)進行修復,保證了用戶數(shù)據(jù)的修復。以上實施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過軟件編程實現(xiàn),其軟件程序存儲在可讀取的存儲介質(zhì)中,存儲介質(zhì)例如計算機中的硬盤、光盤或軟盤。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種確保軟件正常運行的方法,其特征在于,所述方法包括 當軟件啟動后,檢測是否存在有損壞的用戶數(shù)據(jù); 當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復。
2.根據(jù)權(quán)利要求I所述的確保軟件正常運行的方法,其特征在于,所述方法還包括 在所述軟件上一次運行過程中,當所述軟件讀取用戶數(shù)據(jù)時,判斷是否能夠讀取出相應的用戶數(shù)據(jù); 當不能夠讀取出所述相應的用戶數(shù)據(jù)時,確定所述相應的用戶數(shù)據(jù)損壞; 記錄損壞的用戶數(shù)據(jù)的信息; 相應地,檢測是否存在有損壞的用戶數(shù)據(jù)包括 查詢記錄; 如果查詢到損壞的用戶數(shù)據(jù)的信息,則確定存在有損壞的用戶數(shù)據(jù);否則,確定沒有存在損壞的用戶數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的確保軟件正常運行的方法,其特征在于,所述方法還包括 當能夠讀取出所述相應的用戶數(shù)據(jù)時,判斷所述相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求; 如果不符合數(shù)據(jù)記錄格式或業(yè)務對數(shù)據(jù)的要求,確定所述相應的用戶數(shù)據(jù)損壞,然后執(zhí)行所述記錄損壞的用戶數(shù)據(jù)的信息的步驟。
4.根據(jù)權(quán)利要求3所述的確保軟件正常運行的方法,其特征在于,判斷所述相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求之前,所述方法還包括 對所述相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC進行校驗;其中,所述相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC為在保存所述相應的用戶數(shù)據(jù)時生成,并與所述相應的用戶數(shù)據(jù)結(jié)合后保存; 判斷校驗是否成功; 如果校驗失敗,則確定所述相應的用戶數(shù)據(jù)損壞,然后執(zhí)行所述記錄損壞的用戶數(shù)據(jù)的信息的步驟; 如果校驗成功,則執(zhí)行判斷所述相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求的步驟。
5.根據(jù)權(quán)利要求I所述的確保軟件正常運行的方法,其特征在于,對損壞的用戶數(shù)據(jù)進行修復,包括 判斷服務器中是否存在有與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù); 如果服務中存在有與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù),則將所述損壞的用戶數(shù)據(jù)所在的文件刪除,將服務器中存在的與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)所在的文件復制到本地。
6.根據(jù)權(quán)利要求5所述的確保軟件正常運行的方法,其特征在于,判斷服務器中是否存在有與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)之后,所述方法還包括 如果服務器中沒有存在與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù),則讀取出所述損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù),將有效數(shù)據(jù)存儲在新的文件中; 用新的文件替換所述損壞的用戶數(shù)據(jù)所在的文件。
7.根據(jù)權(quán)利要求1-6任意一項權(quán)利要求所述的確保軟件正常運行的方法,其特征在于,對損壞的用戶數(shù)據(jù)進行修復之前,所述方法還包括 判斷是否需要對所述損壞的用戶數(shù)據(jù)進行修復; 如果不需要對所述損壞的用戶數(shù)據(jù)進行修復,則將所述損壞的用戶數(shù)據(jù)所在的文件刪除。
8.一種確保軟件正常運行的裝置,其特征在于,所述裝置包括 檢測模塊,用于當軟件啟動后,檢測是否存在有損壞的用戶數(shù)據(jù); 修復模塊,用于當所述檢測模塊檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復。
9.根據(jù)權(quán)利要求8所述的確保軟件正常運行的裝置,其特征在于,所述裝置還包括 第一判斷模塊,用于在所述軟件上一次運行過程中,當所述軟件讀取用戶數(shù)據(jù)時,判斷是否能夠讀取出相應的用戶數(shù)據(jù); 第一確定模塊,用于當所述第一判斷模塊的判斷結(jié)果是不能夠讀取出所述相應的用戶數(shù)據(jù)時,確定所述相應的用戶數(shù)據(jù)損壞; 記錄模塊,用于當所述第一確定模塊確定所述相應的用戶數(shù)據(jù)損壞后,記錄損壞的用戶數(shù)據(jù)的信息; 相應地,所述檢測模塊包括 查詢單元,用于查詢所述記錄模塊的記錄; 處理單元,用于當所述查詢單元查詢到損壞的用戶數(shù)據(jù)的信息時,確定存在有損壞的用戶數(shù)據(jù);否則,確定沒有存在損壞的用戶數(shù)據(jù)。
10.根據(jù)權(quán)利要求7所述的確保軟件正常運行的裝置,其特征在于,所述裝置還包括 第二判斷模塊,用于當所述第一判斷模塊的判斷結(jié)果是能夠讀取出所述相應的用戶數(shù)據(jù)時,判斷所述相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求; 第二確定模塊,用于當所述第二判斷模塊的判斷結(jié)果是所述相應的用戶數(shù)據(jù)不符合數(shù)據(jù)記錄格式或業(yè)務對數(shù)據(jù)的要求時,確定所述相應的用戶數(shù)據(jù)損壞,然后向所述記錄模塊發(fā)送執(zhí)行所述記錄損壞的用戶數(shù)據(jù)的信息的通知。
11.根據(jù)權(quán)利要求10所述的確保軟件正常運行的裝置,其特征在于,所述裝置還包括 校驗模塊,用于當所述第一判斷模塊的判斷結(jié)果是能夠讀取出所述相應的用戶數(shù)據(jù)時,對所述相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC進行校驗;其中,所述相應的用戶數(shù)據(jù)的循環(huán)冗余校驗碼CRC為在保存所述相應的用戶數(shù)據(jù)時生成,并與所述相應的用戶數(shù)據(jù)結(jié)合后保存; 第三判斷模塊,用于判斷校驗是否成功; 第一通知模塊,用于當所述第三判斷模塊的判斷結(jié)果是校驗失敗時,確定所述相應的用戶數(shù)據(jù)損壞,然后向所述記錄模塊發(fā)送執(zhí)行所述記錄損壞的用戶數(shù)據(jù)的信息的通知;第二通知模塊,用于當所述第三判斷模塊的判斷結(jié)果是校驗成功時,向所述第二判斷模塊發(fā)送執(zhí)行判斷所述相應的用戶數(shù)據(jù)是否符合數(shù)據(jù)記錄格式和業(yè)務對數(shù)據(jù)的要求的通知。
12.根據(jù)權(quán)利要求8所述的確保軟件正常運行的裝置,其特征在于,所述修復模塊包括 判斷單元,用于當所述檢測模塊檢測到存在有損壞的用戶數(shù)據(jù)后,判斷服務器中是否存在有與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù); 第一修復單元,用于當所述判斷單元的判斷結(jié)果是服務中存在有與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)時,將所述損壞的用戶數(shù)據(jù)所在的文件刪除,將服務器中存在的與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)所在的文件復制到本地。
13.根據(jù)權(quán)利要求12所述的確保軟件正常運行的裝置,其特征在于,所述修復模塊還包括 第二修復單元,用于當所述判斷單元的判斷結(jié)果是服務器中沒有存在與所述損壞的用戶數(shù)據(jù)相應的用戶數(shù)據(jù)時,讀取出所述損壞的用戶數(shù)據(jù)所在的文件中的有效數(shù)據(jù),將有效數(shù)據(jù)存儲在新的文件中;用新的文件替換所述損壞的用戶數(shù)據(jù)所在的文件。
14.根據(jù)權(quán)利要求8-13任意一項權(quán)利要求所述的確保軟件正常運行的裝置,其特征在于,所述裝置還包括 第四判斷模塊,用于當所述檢測模塊檢測到存在有損壞的用戶數(shù)據(jù)后,判斷是否需要對所述損壞的用戶數(shù)據(jù)進行修復; 刪除模塊,用于當所述第四判斷模塊的判斷結(jié)果是不需要對所述損壞的用戶數(shù)據(jù)進行修復時,將所述損壞的用戶數(shù)據(jù)所在的文件刪除。
全文摘要
本發(fā)明公開了一種確保軟件正常運行的方法和裝置,屬于計算機技術(shù)領(lǐng)域。所述方法包括當軟件啟動后,檢測是否存在有損壞的用戶數(shù)據(jù);當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復。所述裝置包括檢測模塊和修復模塊。本發(fā)明通過檢測是否存在有損壞的用戶數(shù)據(jù),當檢測到存在有損壞的用戶數(shù)據(jù)后,對損壞的用戶數(shù)據(jù)進行修復,從而確保軟件可以正常運行,不需要將軟件卸載,然后重新裝載軟件,避免了用戶數(shù)據(jù)丟失,且可以節(jié)約用戶時間。
文檔編號G06F9/445GK102681873SQ20121014846
公開日2012年9月19日 申請日期2012年5月14日 優(yōu)先權(quán)日2012年5月14日
發(fā)明者葉潤桂, 林向耀, 范亮亮 申請人:騰訊科技(深圳)有限公司