本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用程序的修復(fù)方法及裝置。
背景技術(shù):
應(yīng)用程序在發(fā)布后,不可避免地存在故障問題。目前,現(xiàn)有的方案一般需要用戶手動(dòng)操作,下載安裝該應(yīng)用程序的修復(fù)包來修復(fù)該應(yīng)用程序的故障問題,對(duì)于某些定制化或者需要部署的應(yīng)用程序很可能還需要上門服務(wù),不僅用戶體驗(yàn)差,還造成了一定的經(jīng)濟(jì)損失。
在實(shí)施本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:1、如果用戶沒有使用應(yīng)用程序中存在故障問題的功能模塊,就無法檢測(cè)到應(yīng)用程序是否出現(xiàn)了故障,只能在用戶使用了存在故障問題的該功能模塊時(shí)再執(zhí)行修復(fù)操作,造成較差的用戶體驗(yàn);2、如果應(yīng)用程序無法啟動(dòng),可能會(huì)導(dǎo)致該應(yīng)用程序的更新功能模塊也無法啟動(dòng),從而無法修復(fù)該應(yīng)用程序的故障問題;3、如果應(yīng)用程序的更新功能模塊同樣出現(xiàn)故障問題,將無法起到修復(fù)該應(yīng)用程序的故障問題的作用,當(dāng)然其也無法修復(fù)自身的故障問題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種應(yīng)用程序的修復(fù)方法,能夠有效提高應(yīng)用程序異常問題的修復(fù)成功率,提升用戶體驗(yàn)。
本發(fā)明提供一種應(yīng)用程序的修復(fù)方法,包括如下步驟:
確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行后,發(fā)送第一信息給服務(wù)器;其中,所述第一信息包含所述應(yīng)用程序的當(dāng)前版本號(hào)和用于指示所述服務(wù)器返回是否存在與所述應(yīng)用程序當(dāng)前版本對(duì)應(yīng)的第一修復(fù)包的信號(hào);
接收所述服務(wù)器發(fā)送的第二信息;其中,所述第二信息包含用于指示所述服務(wù)器上是否存在所述第一修復(fù)包的信號(hào);
當(dāng)根據(jù)所述第二信息確定所述服務(wù)器上存在所述第一修復(fù)包,且本地不存在所述第一修復(fù)包時(shí),向所述服務(wù)器獲取所述第一修復(fù)包;
根據(jù)所述服務(wù)器返回的所述第一修復(fù)包對(duì)所述應(yīng)用程序進(jìn)行修復(fù)。
上述技術(shù)方案中,在應(yīng)用程序運(yùn)行之前,通過獨(dú)立于所述應(yīng)用程序的修復(fù)程序檢測(cè)服務(wù)器上是否存在所述應(yīng)用程序的第一修復(fù)包;在確定所述服務(wù)器上存在所述第一修復(fù)包,且本地不存在所述第一修復(fù)包時(shí),獲取所述第一修復(fù)包,并對(duì)所述應(yīng)用程序進(jìn)行修復(fù),因此,能夠?qū)σ恍]有檢測(cè)到的異常問題進(jìn)行及時(shí)修復(fù),提高了所述應(yīng)用程序的異常問題的修復(fù)的成功率,從而保證所述應(yīng)用程序的正常運(yùn)行,提升用戶體驗(yàn)。
優(yōu)選的,在根據(jù)所述第一修復(fù)包對(duì)所述應(yīng)用程序進(jìn)行修復(fù)之后,還包括:
更改所述應(yīng)用程序的當(dāng)前版本號(hào)為所述第一修復(fù)包的版本號(hào)。
優(yōu)選的,在所述確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行之前,還包括:
通過啟動(dòng)更新程序來監(jiān)控所述修復(fù)程序是否正常運(yùn)行;
當(dāng)監(jiān)控到所述修復(fù)程序運(yùn)行異常時(shí)向服務(wù)器發(fā)送第三信息,以使所述服務(wù)器返回與所述修復(fù)程序?qū)?yīng)的第二修復(fù)包;
根據(jù)所述服務(wù)器返回的所述第二修復(fù)包對(duì)所述修復(fù)程序進(jìn)行修復(fù)。
本優(yōu)選方案中,通過啟動(dòng)更新程序來監(jiān)控并修復(fù)修復(fù)程序的運(yùn)行異常問題,可以保證所述修復(fù)程序的正常運(yùn)行,不致影響所述修復(fù)程序?qū)λ鰬?yīng)用程序的異常問題的修復(fù),從而提高了所述應(yīng)用程序的異常問題的修復(fù)成功率。
優(yōu)選的,在所述確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行之后,還包括:
通過所述修復(fù)程序來監(jiān)控更新程序是否正常運(yùn)行;
當(dāng)監(jiān)控到所述更新程序運(yùn)行異常時(shí)向服務(wù)器發(fā)送第四信息,以使所述服務(wù)器返回與所述更新程序?qū)?yīng)的第三修復(fù)包;
根據(jù)所述服務(wù)器返回的所述第三修復(fù)包對(duì)所述更新程序進(jìn)行修復(fù)。
本優(yōu)選方案中,通過所述修復(fù)程序來監(jiān)控并修復(fù)更新程序的運(yùn)行異常問題,可以保證所述更新程序的正常運(yùn)行,從而,又可以反過來通過所述更新程序監(jiān)控并修復(fù)所述修復(fù)程序的運(yùn)行異常問題,最大程度地保證所述應(yīng)用程序的異常問題可以得到及時(shí)修復(fù),提升用戶體驗(yàn)。
優(yōu)選的,在所述更新程序正常運(yùn)行之后,還包括:
向所述服務(wù)器獲取所述應(yīng)用程序的更新信息;其中,所述更新信息包含最新更新包的版本號(hào)、最新更新包的下載地址和最新更新包的校驗(yàn)碼;
在所述最新更新包的版本號(hào)大于所述應(yīng)用程序的當(dāng)前版本號(hào)時(shí),將所述最新更新包的校驗(yàn)碼與本地的所述應(yīng)用程序的更新包的校驗(yàn)碼進(jìn)行一一匹配;
當(dāng)未匹配到與所述最新更新包的校驗(yàn)碼相同的校驗(yàn)碼時(shí),通過訪問所述最新更新包的下載地址獲取所述最新更新包;
響應(yīng)到用戶的更新檢查事件時(shí),則根據(jù)所述最新更新包對(duì)所述應(yīng)用程序進(jìn)行更新;
更改所述應(yīng)用程序的當(dāng)前版本號(hào)為所述最新更新包的版本號(hào)。
本優(yōu)選方案中,通過所述更新程序還可以對(duì)所述應(yīng)用程序進(jìn)行更新至最新版本,可以使所述應(yīng)用程序更優(yōu)化、更完善。
優(yōu)選的,當(dāng)所述服務(wù)器上存在所述第一修復(fù)包時(shí),所述第二信息還包含所述第一修復(fù)包的校驗(yàn)碼;
確定本地不存在所述第一修復(fù)包,具體為:
將所述第二信息中的所述第一修復(fù)包的校驗(yàn)碼與本地的所述應(yīng)用程序的修復(fù)包的校驗(yàn)碼進(jìn)行一一匹配;
當(dāng)未匹配到與所述第一修復(fù)包的校驗(yàn)碼相同的校驗(yàn)碼時(shí),則確定本地不存在所述第一修復(fù)包。
優(yōu)選的,當(dāng)根據(jù)所述第二信息確定所述服務(wù)器上存在所述第一修復(fù)包,且本地不存在所述第一修復(fù)包時(shí),所述第二信息還包含所述第一修復(fù)包的下載地址;
所述向所述服務(wù)器獲取所述第一修復(fù)包,具體為:
通過訪問所述第二信息中的所述第一修復(fù)包的下載地址,獲取所述第一修復(fù)包。
本發(fā)明還提供一種應(yīng)用程序的修復(fù)裝置,包括:
發(fā)送單元,用于確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行后,發(fā)送第一信息給服務(wù)器;其中,所述第一信息包含所述應(yīng)用程序的當(dāng)前版本號(hào)和用于指示所述服務(wù)器返回是否存在與所述應(yīng)用程序當(dāng)前版本對(duì)應(yīng)的第一修復(fù)包的信號(hào);
接收單元,用于接收所述服務(wù)器發(fā)送的第二信息;其中,所述第二信息包含用于指示所述服務(wù)器上是否存在所述第一修復(fù)包的信號(hào);
第一獲取單元,用于當(dāng)根據(jù)所述第二信息確定所述服務(wù)器上存在所述第一修復(fù)包,且本地不存在所述第一修復(fù)包時(shí),向所述服務(wù)器獲取所述第一修復(fù)包;
第一執(zhí)行單元,用于根據(jù)所述服務(wù)器返回的所述第一修復(fù)包對(duì)所述應(yīng)用程序進(jìn)行修復(fù)。
優(yōu)選的,所述應(yīng)用程序的修復(fù)裝置還包括:
第一監(jiān)控單元,用于在所述確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行之前,通過啟動(dòng)更新程序來監(jiān)控所述修復(fù)程序是否正常運(yùn)行;
第二獲取單元,用于當(dāng)監(jiān)控到所述修復(fù)程序運(yùn)行異常時(shí)向服務(wù)器發(fā)送第三信息,以使所述服務(wù)器返回與所述修復(fù)程序?qū)?yīng)的第二修復(fù)包;
第二執(zhí)行單元,用于根據(jù)所述服務(wù)器返回的所述第二修復(fù)包對(duì)所述修復(fù)程序進(jìn)行修復(fù)。
優(yōu)選的,所述應(yīng)用程序的修復(fù)裝置還包括:
第二監(jiān)控單元,用于在所述確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行之后,通過所述修復(fù)程序來監(jiān)控更新程序是否正常運(yùn)行;
第三獲取單元,用于當(dāng)監(jiān)控到所述更新程序運(yùn)行異常時(shí)向服務(wù)器發(fā)送第四信息,以使所述服務(wù)器返回與所述更新程序?qū)?yīng)的第三修復(fù)包;
第三執(zhí)行單元,用于根據(jù)所述服務(wù)器返回的所述第三修復(fù)包對(duì)所述更新程序進(jìn)行修復(fù)。
優(yōu)選的,所述應(yīng)用程序的修復(fù)裝置還包括:
第四獲取單元,用于向所述服務(wù)器獲取所述應(yīng)用程序的更新信息;其中,所述更新信息包含最新更新包的版本號(hào)、最新更新包的下載地址和最新更新包的校驗(yàn)碼;
匹配單元,用于在所述最新更新包的版本號(hào)大于所述應(yīng)用程序的當(dāng)前版本號(hào)時(shí),將所述最新更新包的校驗(yàn)碼與本地的所述應(yīng)用程序的更新包的校驗(yàn)碼進(jìn)行一一匹配;
第五獲取單元,用于當(dāng)未匹配到與所述最新更新包的校驗(yàn)碼相同的校驗(yàn)碼時(shí),通過訪問所述最新更新包的下載地址獲取所述最新更新包;
第四執(zhí)行單元,用于響應(yīng)到用戶的更新檢查事件時(shí),則根據(jù)所述最新更新包對(duì)所述應(yīng)用程序進(jìn)行更新;
第一版本更新單元,用于更改所述應(yīng)用程序的當(dāng)前版本號(hào)為所述最新更新包的版本號(hào)。
本發(fā)明提供的應(yīng)用程序的修復(fù)方法及裝置,具有如下有益效果:在應(yīng)用程序運(yùn)行之前,通過獨(dú)立于所述應(yīng)用程序的修復(fù)程序檢測(cè)服務(wù)器上是否存在所述應(yīng)用程序的第一修復(fù)包;在確定所述服務(wù)器上存在所述第一修復(fù)包,且本地不存在所述第一修復(fù)包時(shí),獲取所述第一修復(fù)包,并對(duì)所述應(yīng)用程序進(jìn)行修復(fù),因此,能夠?qū)σ恍]有檢測(cè)到的異常問題進(jìn)行及時(shí)修復(fù),提高了所述應(yīng)用程序的異常問題的修復(fù)的成功率,從而保證所述應(yīng)用程序的正常運(yùn)行,提升用戶體驗(yàn)。
附圖說明
為了更清楚地說明本發(fā)明的技術(shù)方案,下面將對(duì)實(shí)施方式中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明提供的應(yīng)用程序的修復(fù)方法的一個(gè)實(shí)施例的流程示意圖。
圖2是本發(fā)明實(shí)施例提供的應(yīng)用程序用戶端的結(jié)構(gòu)示意圖。
圖3是本發(fā)明提供的應(yīng)用程序的修復(fù)裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參閱圖1,是本發(fā)明提供的應(yīng)用程序的修復(fù)方法的一個(gè)實(shí)施例的流程示意圖。
本發(fā)明實(shí)施例提供一種應(yīng)用程序的修復(fù)方法,包括步驟S11~S14,具體如下:
S11,確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行后,發(fā)送第一信息給服務(wù)器;其中,所述第一信息包含所述應(yīng)用程序的當(dāng)前版本號(hào)和用于指示所述服務(wù)器返回是否存在與所述應(yīng)用程序當(dāng)前版本對(duì)應(yīng)的第一修復(fù)包的信號(hào)。
其中,獨(dú)立于應(yīng)用程序的修復(fù)程序,也就是說,當(dāng)所述應(yīng)用程序發(fā)生運(yùn)行故障而造成所述應(yīng)用程序結(jié)束執(zhí)行時(shí),所述修復(fù)程序不會(huì)受到影響,而可以繼續(xù)執(zhí)行,因此,所述修復(fù)程序?qū)⒖梢酝瓿尚迯?fù)所述應(yīng)用程序所產(chǎn)生的故障問題。
具體的,在所述應(yīng)用程序啟動(dòng)前或啟動(dòng)完成后,通過所述修復(fù)程序獲取所述應(yīng)用程序的當(dāng)前版本號(hào),并將所述應(yīng)用程序的當(dāng)前版本號(hào)隨同用于指示所述服務(wù)器返回是否存在與所述應(yīng)用程序當(dāng)前版本對(duì)應(yīng)的第一修復(fù)包的信號(hào)一同發(fā)送給所述服務(wù)器。其中,所述第一修復(fù)包可以為包含執(zhí)行所述應(yīng)用程序的所有文件,也可以只包含用來取代所述應(yīng)用程序中包含發(fā)生故障問題的子程序的文件,本發(fā)明不做具體限制。
需要說明的是,所述第一信息包含但不限于以上內(nèi)容,還可以包含所述應(yīng)用程序的標(biāo)識(shí)符、所述應(yīng)用程序的運(yùn)行平臺(tái)、所述應(yīng)用程序的MAC(Medium/Media Access Control,媒介訪問控制)地址等,本發(fā)明不做具體限制。其中,所述應(yīng)用程序的標(biāo)識(shí)符的生成方式有多種;優(yōu)選的,使用GUID(Globally Unique Identifier,全局唯一標(biāo)識(shí)符)生成算法來生成所述應(yīng)用程序的標(biāo)識(shí)符,以此來定位所述服務(wù)器上存儲(chǔ)所述應(yīng)用程序的修復(fù)包的文件夾;所述應(yīng)用程序的運(yùn)行平臺(tái)可以為Windows、Linux、Mac或Unix等,用于獲取與所述應(yīng)用程序的運(yùn)行平臺(tái)相對(duì)應(yīng)的修復(fù)包;所述應(yīng)用程序的MAC地址用于標(biāo)識(shí)接收所述服務(wù)器返回的修復(fù)包的設(shè)備的地址。
S12,接收所述服務(wù)器發(fā)送的第二信息;其中,所述第二信息包含用于指示所述服務(wù)器上是否存在所述第一修復(fù)包的信號(hào)。
S13,當(dāng)根據(jù)所述第二信息確定所述服務(wù)器上存在所述第一修復(fù)包,且本地不存在所述第一修復(fù)包時(shí),向所述服務(wù)器獲取所述第一修復(fù)包。
在具體實(shí)施中,所述第二信息還包含所述第一修復(fù)包的校驗(yàn)碼;
則確定本地不存在所述第一修復(fù)包,也就是,確定本地未下載或未完全下載所述第一修復(fù)包,具體為:
將所述第二信息中的所述第一修復(fù)包的校驗(yàn)碼與本地的所述應(yīng)用程序的修復(fù)包的校驗(yàn)碼進(jìn)行一一匹配;
當(dāng)未匹配到與所述第一修復(fù)包的校驗(yàn)碼相同的校驗(yàn)碼時(shí),則確定本地不存在所述第一修復(fù)包。
在具體實(shí)施中,對(duì)已經(jīng)下載的所述應(yīng)用程序的修復(fù)包存儲(chǔ)在本地中以所述應(yīng)用程序的標(biāo)識(shí)符命名的文件夾內(nèi),以此快速查詢所述應(yīng)用程序的修復(fù)包,提高匹配速度。
優(yōu)選的,所述第一修復(fù)包的校驗(yàn)碼的生成方式使用MD5(Message Digest Algorithm MD5,消息摘要算法第五版)算法;所述第一修復(fù)包的MD5值用以提供所述第一修復(fù)包的信息完整性保護(hù),也就是說,所述第一修復(fù)包的MD5值就像是所述第一修復(fù)包的獨(dú)一無二的“數(shù)字指紋”,如果對(duì)所述第一修復(fù)包做了任何改動(dòng),其MD5值也就是對(duì)應(yīng)的“數(shù)字指紋”就會(huì)發(fā)生變化。當(dāng)然,所述第一修復(fù)包的校驗(yàn)碼的生成方式還可以使用本領(lǐng)域技術(shù)人員公知的其他方法,這些均在本發(fā)明的保護(hù)范圍之內(nèi),在此不做限制。
在具體實(shí)施中,所述第二信息還包含所述第一修復(fù)包的下載地址;則所述向所述服務(wù)器獲取所述第一修復(fù)包,具體為:
通過訪問所述第二信息中的所述第一修復(fù)包的下載地址,獲取所述第一修復(fù)包。
需要說明的是,所述第二信息包含但不限于上述內(nèi)容,還可以包含所述第一修復(fù)包的大小、所述第一修復(fù)包的版本號(hào)等;其中,所述第一修復(fù)包的大小用以設(shè)置適當(dāng)?shù)谋4媛窂?;所述第一修?fù)包的版本號(hào)用以提供所述應(yīng)用程序修復(fù)后的更新版本號(hào)。
S14,根據(jù)所述服務(wù)器返回的所述第一修復(fù)包對(duì)所述應(yīng)用程序進(jìn)行修復(fù)。
具體的,在根據(jù)所述第一修復(fù)包對(duì)所述應(yīng)用程序進(jìn)行修復(fù)之后,還包括:
更改所述應(yīng)用程序的當(dāng)前版本號(hào)為所述第一修復(fù)包的版本號(hào)。
在本發(fā)明實(shí)施例中,在應(yīng)用程序運(yùn)行之前,通過獨(dú)立于所述應(yīng)用程序的修復(fù)程序檢測(cè)服務(wù)器上是否存在所述應(yīng)用程序的第一修復(fù)包;在確定所述服務(wù)器上存在所述第一修復(fù)包時(shí),獲取所述第一修復(fù)包,并對(duì)所述應(yīng)用程序進(jìn)行修復(fù),因此,能夠?qū)σ恍]有檢測(cè)到的異常問題進(jìn)行及時(shí)修復(fù),提高了所述應(yīng)用程序的異常問題的修復(fù)的成功率,從而保證所述應(yīng)用程序的正常運(yùn)行,提升用戶體驗(yàn);
請(qǐng)一并參閱圖2,具體的,所述應(yīng)用程序的修復(fù)裝置20還包括更新程序202,所述更新程序202同樣獨(dú)立于所述應(yīng)用程序10,其中,所述更新程序202和所述修復(fù)程序201可以為所述應(yīng)用程序用戶端的后臺(tái)程序,可進(jìn)行所述應(yīng)用程序用戶端與所述服務(wù)器之間的數(shù)據(jù)交換;而且,所述更新程序202與所述修復(fù)程序201之間又可互相為對(duì)方進(jìn)行更新修復(fù),保證兩者均可正常運(yùn)行,從而最大程度地保證所述應(yīng)用程序10的異常問題的修復(fù)成功率,提升用戶體驗(yàn)。
在本發(fā)明一個(gè)實(shí)施例中,在所述確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行之前,還包括:
通過啟動(dòng)更新程序來監(jiān)控所述修復(fù)程序是否正常運(yùn)行;
當(dāng)監(jiān)控到所述修復(fù)程序運(yùn)行異常時(shí)向服務(wù)器發(fā)送第三信息,以使所述服務(wù)器返回與所述修復(fù)程序?qū)?yīng)的第二修復(fù)包;
根據(jù)所述服務(wù)器返回的所述第二修復(fù)包對(duì)所述修復(fù)程序進(jìn)行修復(fù)。
其中,第三信息包含但不限于所述修復(fù)程序的當(dāng)前版本號(hào)、故障日志、操作系統(tǒng)位數(shù)和版本名稱、MAC/IP地址等。
具體的,當(dāng)所述修復(fù)程序運(yùn)行異常時(shí),生成故障日志,并將所述修復(fù)程序的當(dāng)前版本號(hào)、操作系統(tǒng)位數(shù)和版本名稱、MAC/IP地址等隨同所述故障日志發(fā)送給所述服務(wù)器;其中,所述故障日志至少包含所述修復(fù)程序的當(dāng)前執(zhí)行環(huán)境、所述應(yīng)用程序的配置信息、故障來源等,根據(jù)所述第三信息查詢所述服務(wù)器上是否存在相對(duì)應(yīng)的第二修復(fù)包;當(dāng)確定存在所述第二修復(fù)包時(shí),獲取所述第二修復(fù)包并進(jìn)行修復(fù)。
需要說明的是,所述服務(wù)器可以直接返回所述第二修復(fù)包給所述更新程序,也可以返回與所述第二修復(fù)包對(duì)應(yīng)的修復(fù)信息,使得所述更新程序可以依據(jù)所述服務(wù)器返回的修復(fù)信息,至所述服務(wù)器下載所述第二修復(fù)包。
可以理解的是,當(dāng)確定不存在所述第二修復(fù)包時(shí),所述服務(wù)器記錄下所述第三信息,以使開發(fā)人員根據(jù)所述第三信息檢測(cè)所述修復(fù)程序的異常問題,并進(jìn)行修復(fù),即有針對(duì)性地對(duì)所述修復(fù)程序的當(dāng)前某個(gè)存在異常問題的功能模塊的代碼進(jìn)行修復(fù),以及將所述第二修復(fù)包上傳至所述服務(wù)器,所述服務(wù)器接收并保存上傳的與所述修復(fù)程序?qū)?yīng)的所述第二修復(fù)包。
在本發(fā)明實(shí)施例中,所述更新程序同樣獨(dú)立于所述修復(fù)程序,通過啟動(dòng)所述更新程序來監(jiān)控并修復(fù)修復(fù)程序的運(yùn)行異常問題,可以保證所述修復(fù)程序的正常運(yùn)行,不致影響所述修復(fù)程序?qū)λ鰬?yīng)用程序的異常問題的修復(fù),從而提高所述應(yīng)用程序的異常問題的修復(fù)成功率。
在本發(fā)明一個(gè)實(shí)施例中,在所述確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行之后,還包括:
通過所述修復(fù)程序來監(jiān)控更新程序是否正常運(yùn)行;
當(dāng)監(jiān)控到所述更新程序運(yùn)行異常時(shí)向所述服務(wù)器發(fā)送第四信息,以使所述服務(wù)器返回與所述更新程序?qū)?yīng)的第三修復(fù)包;
根據(jù)所述服務(wù)器返回的所述第三修復(fù)包對(duì)所述更新程序進(jìn)行修復(fù)。
在本發(fā)明實(shí)施例中,通過所述修復(fù)程序來監(jiān)控并修復(fù)更新程序的運(yùn)行異常問題,可以保證所述更新程序的正常運(yùn)行,從而,又可以反過來通過所述更新程序監(jiān)控并修復(fù)所述修復(fù)程序的運(yùn)行異常問題,最大程度地保證所述應(yīng)用程序的運(yùn)行異常問題可以得到及時(shí)修復(fù),提升用戶體驗(yàn)。
在本發(fā)明另一個(gè)實(shí)施例中,在所述更新程序正常運(yùn)行之后,還包括:
向所述服務(wù)器獲取所述應(yīng)用程序的更新信息;其中,所述更新信息包含最新更新包的版本號(hào)、最新更新包的下載地址和最新更新包的校驗(yàn)碼;
優(yōu)選的,所述最新更新包的校驗(yàn)碼的生成方式使用MD5(Message Digest Algorithm MD5,消息摘要算法第五版)算法,當(dāng)然,所述第一修復(fù)包的校驗(yàn)碼的生成方式還可以使用本領(lǐng)域技術(shù)人員公知的其他方法,這些均在本發(fā)明的保護(hù)范圍之內(nèi),在此不做限制。
在所述最新更新包的版本號(hào)大于所述應(yīng)用程序的當(dāng)前版本號(hào)時(shí),將所述最新更新包的校驗(yàn)碼與本地的所述應(yīng)用程序的更新包的校驗(yàn)碼進(jìn)行一一匹配;
當(dāng)未匹配到與所述最新更新包的校驗(yàn)碼相同的校驗(yàn)碼時(shí),通過訪問所述最新更新包的下載地址獲取所述最新更新包;
響應(yīng)到用戶的更新檢查事件時(shí),則根據(jù)所述最新更新包對(duì)所述應(yīng)用程序進(jìn)行更新;
更改所述應(yīng)用程序的當(dāng)前版本號(hào)為所述最新更新包的版本號(hào)。
在本發(fā)明實(shí)施例中,通過所述更新程序還可以對(duì)所述應(yīng)用程序進(jìn)行更新至最新版本,可以使所述應(yīng)用程序更優(yōu)化、更完善。
進(jìn)一步地,本發(fā)明還提供一種應(yīng)用程序的修復(fù)裝置,可執(zhí)行上述應(yīng)用程序的修復(fù)裝置的所有流程。
請(qǐng)參閱圖3,是本發(fā)明提供的應(yīng)用程序的修復(fù)裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,包括發(fā)送單元21、接收單元22、第一獲取單元23及第一執(zhí)行單元24,具體如下:
所述發(fā)送單元21,用于確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行后,發(fā)送第一信息給服務(wù)器;其中,所述第一信息包含所述應(yīng)用程序的當(dāng)前版本號(hào)和用于指示所述服務(wù)器返回是否存在與所述應(yīng)用程序當(dāng)前版本對(duì)應(yīng)的第一修復(fù)包的信號(hào)。
所述接收單元22,用于接收所述服務(wù)器發(fā)送的第二信息;其中,所述第二信息包含用于指示所述服務(wù)器上是否存在所述第一修復(fù)包的信號(hào)。
所述第一獲取單元23,用于當(dāng)根據(jù)所述第二信息確定所述服務(wù)器上存在所述第一修復(fù)包,且本地不存在所述第一修復(fù)包時(shí),向所述服務(wù)器獲取所述第一修復(fù)包。
具體的,所述第二信息還包含所述第一修復(fù)包的校驗(yàn)碼;
則確定本地不存在所述第一修復(fù)包,也就是,確定本地未下載或未完全下載所述第一修復(fù)包,具體為:
將所述第二信息中的所述第一修復(fù)包的校驗(yàn)碼與本地的所述應(yīng)用程序的修復(fù)包的校驗(yàn)碼進(jìn)行一一匹配;
當(dāng)未匹配到與所述第一修復(fù)包的校驗(yàn)碼相同的校驗(yàn)碼時(shí),則確定本地不存在所述第一修復(fù)包。
具體的,所述第二信息還包含所述第一修復(fù)包的下載地址;則所述向所述服務(wù)器獲取所述第一修復(fù)包,具體為:
通過訪問所述第二信息中的所述第一修復(fù)包的下載地址,獲取所述第一修復(fù)包。
所述第一執(zhí)行單元24,用于根據(jù)所述服務(wù)器返回的所述第一修復(fù)包對(duì)所述應(yīng)用程序進(jìn)行修復(fù)。
具體的,所述應(yīng)用程序的修復(fù)裝置還包括:
第二版本更新單元,用于在根據(jù)所述第一修復(fù)包對(duì)所述應(yīng)用程序進(jìn)行修復(fù)之后,更改所述應(yīng)用程序的當(dāng)前版本號(hào)為所述第一修復(fù)包的版本號(hào)。
在本發(fā)明一個(gè)實(shí)施例中,所述應(yīng)用程序的修復(fù)裝置還包括:
第一監(jiān)控單元,用于在所述確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行之前,通過啟動(dòng)更新程序來監(jiān)控所述修復(fù)程序是否正常運(yùn)行;
第二獲取單元,用于當(dāng)監(jiān)控到所述修復(fù)程序運(yùn)行異常時(shí)向服務(wù)器發(fā)送第三信息,以使所述服務(wù)器返回與所述修復(fù)程序?qū)?yīng)的第二修復(fù)包;
第二執(zhí)行單元,用于根據(jù)所述服務(wù)器返回的所述第二修復(fù)包對(duì)所述修復(fù)程序進(jìn)行修復(fù)。
在本發(fā)明另一個(gè)實(shí)施例中,所述應(yīng)用程序的修復(fù)裝置還包括:
第二監(jiān)控單元,用于在所述確定獨(dú)立于應(yīng)用程序的修復(fù)程序正常運(yùn)行之后,通過所述修復(fù)程序來監(jiān)控更新程序是否正常運(yùn)行;
第三獲取單元,用于當(dāng)監(jiān)控到所述更新程序運(yùn)行異常時(shí)向服務(wù)器發(fā)送第四信息,以使所述服務(wù)器返回與所述更新程序?qū)?yīng)的第三修復(fù)包;
第三執(zhí)行單元,用于根據(jù)所述服務(wù)器返回的所述第三修復(fù)包對(duì)所述更新程序進(jìn)行修復(fù)。
在本發(fā)明另一個(gè)實(shí)施例中,所述應(yīng)用程序的修復(fù)裝置還包括:
第四獲取單元,用于向所述服務(wù)器獲取所述應(yīng)用程序的更新信息;其中,所述更新信息包含最新更新包的版本號(hào)、最新更新包的下載地址和最新更新包的校驗(yàn)碼;
匹配單元,用于在所述最新更新包的版本號(hào)大于所述應(yīng)用程序的當(dāng)前版本號(hào)時(shí),將所述最新更新包的校驗(yàn)碼與本地的所述應(yīng)用程序的更新包的校驗(yàn)碼進(jìn)行一一匹配;
第五獲取單元,用于當(dāng)未匹配到與所述最新更新包的校驗(yàn)碼相同的校驗(yàn)碼時(shí),通過訪問所述最新更新包的下載地址獲取所述最新更新包;
第四執(zhí)行單元,用于響應(yīng)到用戶的更新檢查事件時(shí),則根據(jù)所述最新更新包對(duì)所述應(yīng)用程序進(jìn)行更新;
第一版本更新單元,用于更改所述應(yīng)用程序的當(dāng)前版本號(hào)為所述最新更新包的版本號(hào)。
可以理解的是,本發(fā)明實(shí)施例中的應(yīng)用程序的修復(fù)裝置20的各功能單元的功能可根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過程可以參照上述方法實(shí)施例的相關(guān)描述,此處不再贅述。
本發(fā)明實(shí)施例提供的應(yīng)用程序的修復(fù)方法及裝置,具有如下有益效果:在應(yīng)用程序運(yùn)行之前,通過獨(dú)立于所述應(yīng)用程序的修復(fù)程序檢測(cè)服務(wù)器上是否存在所述應(yīng)用程序的第一修復(fù)包;在確定所述服務(wù)器上存在所述第一修復(fù)包,且本地不存在所述第一修復(fù)包時(shí),獲取所述第一修復(fù)包,并對(duì)所述應(yīng)用程序進(jìn)行修復(fù),因此,能夠?qū)σ恍]有檢測(cè)到的異常問題進(jìn)行及時(shí)修復(fù),提高了所述應(yīng)用程序的異常問題的修復(fù)的成功率,從而保證所述應(yīng)用程序的正常運(yùn)行,提升用戶體驗(yàn)
以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。