一種應(yīng)用程序的升級方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例公開了一種應(yīng)用程序的升級方法,包括:接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,所述應(yīng)用程序包括N個子程序包,N和M為正整數(shù),N>M,M>0;根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包;將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。本發(fā)明實施例還公開了一種應(yīng)用程序的升級裝置及系統(tǒng)。采用本發(fā)明實施例,可以節(jié)省用戶給應(yīng)用程序進(jìn)行升級時所耗費的流量和時間。
【專利說明】一種應(yīng)用程序的升級方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全【技術(shù)領(lǐng)域】,尤其涉及一種應(yīng)用程序的升級方法、裝置及系統(tǒng)?!颈尘凹夹g(shù)】
[0002]通常,應(yīng)用程序發(fā)布后,開發(fā)者會根據(jù)應(yīng)用程序本身存在的某些缺陷或用戶的實際需求,對應(yīng)用程序進(jìn)行進(jìn)一步的優(yōu)化或添加某些功能后再次發(fā)布。為區(qū)分或標(biāo)記不同時候發(fā)布的同一個應(yīng)用程序,開發(fā)者會對修改后的應(yīng)用程序設(shè)置一個新的版本號。因此,用戶在使用應(yīng)用程序時,會經(jīng)常碰到應(yīng)用程序的頻繁升級情況。
[0003]現(xiàn)有技術(shù)中常采用的應(yīng)用程序升級方法是在服務(wù)器中將新版本的應(yīng)用程序中包含的所有組成文件做成整個安裝文件供客戶端下載,客戶端在與服務(wù)器端進(jìn)行版本對比后下載并運行整個安裝程序,然后利用新版本應(yīng)用程序中的所有組成文件對客戶端的舊版本應(yīng)用程序中的所有組成文件進(jìn)行替換。然而,該方法對于一個需要頻繁發(fā)布升級的應(yīng)用程序來說,每次都需要發(fā)布一個完整的安裝文件,且用戶每次都需要下載這個完整的安裝文件才能進(jìn)行升級,這種升級方式不僅會耗費用戶大量的流量,而且從服務(wù)器端下載整個安裝文件需要花費大量的時間,同時,升級版本的覆蓋過程也比較緩慢。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了一種應(yīng)用程序的升級方法、裝置及系統(tǒng),可以節(jié)省用戶給應(yīng)用程序進(jìn)行升級時所耗費的流量和時間。
[0005]本發(fā)明實施例提供一種應(yīng)用程序的升級方法,包括:
[0006]接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,所述應(yīng)用程序包括N個子程序包,N和M為正整數(shù),N>M, M>0 ;
[0007]根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包;
[0008]將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。
[0009]其中,所述接收服務(wù)器發(fā)送過來的升級通知之前,所述方法還包括:
[0010]向所述服務(wù)器發(fā)送升級所述應(yīng)用程序的查詢指令,所述查詢指令攜帶有所述應(yīng)用程序中所有子程序包的版本信息,以使所述服務(wù)器根據(jù)所述查詢指令確定所述應(yīng)用程序是否需要升級,若是,則給所述應(yīng)用程序發(fā)送所述升級通知。
[0011]其中,所述根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包,包括:
[0012]若接收到確認(rèn)升級的操作指令,執(zhí)行所述根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包的步驟。
[0013]其中,所述接收服務(wù)器發(fā)送過來的升級通知之后,所述方法還包括:
[0014]基于WebView瀏覽器控件顯示所述升級通知,并加載所述升級通知中所攜帶的網(wǎng)絡(luò)地址。[0015]其中,所述將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包,包括:
[0016]獲取所述用于升級的M個子程序包的標(biāo)識符;
[0017]根據(jù)所述用于升級的M個子程序包的標(biāo)識符,獲取所有本地子程序包中與所述標(biāo)識符相同的M個本地子程序包;
[0018]將所述M個本地子程序包替換為所述用于升級的M個子程序包。
[0019]其中,所述將所述M個本地子程序包替換為所述用于升級的M個子程序包之前,所述方法還包括:
[0020]對所述M個本地子程序包進(jìn)行備份。
[0021]其中,所述方法還包括:
[0022]確定所述應(yīng)用程序是否成功將所述M個本地子程序包替換為所述用于升級的M個子程序包,若是,表示升級成功;若否,表示升級失敗,根據(jù)已備份的M個本地子程序包將所述應(yīng)用程序恢復(fù)到未進(jìn)行升級前的狀態(tài)。
[0023]其中,所述方法還包括:
[0024]輸出所述應(yīng)用程序的升級信息,所述升級信息包括升級結(jié)果和所述應(yīng)用程序升級后所具有的新屬性。
[0025]相應(yīng)的,本發(fā)明實施例還提供一種應(yīng)用程序的升級裝置,包括:
[0026]接收模塊,用于接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,所述應(yīng)用程序包括N個子程序包,N和M為正整數(shù),N>M,M>0 ;
[0027]下載模塊,用于根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包;
[0028]替換模塊,用于將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。
[0029]其中,所述裝置還包括:
[0030]發(fā)送模塊,用于向所述服務(wù)器發(fā)送升級所述應(yīng)用程序的查詢指令,所述查詢指令攜帶有所述應(yīng)用程序中所有子程序包的版本信息,以使所述服務(wù)器根據(jù)所述查詢指令確定所述應(yīng)用程序是否需要升級,若是,則給所述應(yīng)用程序發(fā)送所述升級通知。
[0031]其中,所述下載模塊還用于:
[0032]若接收到確認(rèn)升級的操作指令,執(zhí)行所述根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包的步驟。
[0033]其中,所述裝置還包括:
[0034]顯示模塊,用于基于WebView瀏覽器控件顯示所述升級通知,并加載所述升級通知中所攜帶的網(wǎng)絡(luò)地址。
[0035]其中,所述替換模塊包括:
[0036]第一獲取單元,用于獲取所述用于升級的M個子程序包的標(biāo)識符;
[0037]第二獲取單元,用于根據(jù)所述用于升級的M個子程序包的標(biāo)識符,獲取所有本地子程序包中與所述標(biāo)識符相同的M個本地子程序包;
[0038]替換單元,用于將所述M個本地子程序包替換為所述用于升級的M個子程序包。
[0039]其中,所述替換模塊還包括:[0040]備份單元,用于對所述M個本地子程序包進(jìn)行備份。
[0041]其中,所述裝置還包括:
[0042]確定模塊,用于確定所述應(yīng)用程序是否成功將所述M個本地子程序包替換為所述用于升級的M個子程序包,若是,表示升級成功;若否,表示升級失敗,根據(jù)已備份的M個本地子程序包將所述應(yīng)用程序恢復(fù)到未進(jìn)行升級前的狀態(tài)。
[0043]其中,所述裝置還包括:
[0044]輸出模塊,用于輸出所述應(yīng)用程序的升級信息,所述升級信息包括升級結(jié)果和所述應(yīng)用程序升級后所具有的新屬性。
[0045]相應(yīng)的,本發(fā)明實施例還提供一種應(yīng)用程序的升級系統(tǒng),包括服務(wù)器和終端,所述終端上安裝了包括如上所述裝置的應(yīng)用程序,所述服務(wù)器用于向所述終端發(fā)送升級通知,以使所述終端上的應(yīng)用程序根據(jù)所述升級通知進(jìn)行升級。
[0046]實施本發(fā)明實施例,具有如下的有益效果:
[0047]應(yīng)用程序接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有服務(wù)器提供給應(yīng)用程序用于升級的M個子程序包的網(wǎng)絡(luò)地址;根據(jù)所述網(wǎng)絡(luò)地址下載用于升級的M個子程序包;將與用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包,其中,M個子程序包不是應(yīng)用程序的所有子程序包,從而通過更新部分子程序包即可實現(xiàn)應(yīng)用程序的升級。采用本發(fā)明實施例,可以節(jié)省用戶給應(yīng)用程序進(jìn)行升級時所耗費的流量和時間。
【專利附圖】
【附圖說明】
[0048]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0049]圖1是本發(fā)明實施例提供的一種應(yīng)用程序的升級方法的流程示意圖;
[0050]圖2是本發(fā)明實施例提供的一種應(yīng)用程序的升級方法的另一流程示意圖;
[0051]圖3是本發(fā)明實施例提供的一種應(yīng)用程序的升級裝置的結(jié)構(gòu)示意圖;
[0052]圖4是本發(fā)明實施例提供的一種應(yīng)用程序的升級裝置的另一結(jié)構(gòu)示意圖;
[0053]圖5是圖4提供的其中一種替換模塊的結(jié)構(gòu)示意圖;
[0054]圖6是本發(fā)明實施例提供的一種應(yīng)用程序的升級系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0055]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0056]請參見圖1,圖1是本發(fā)明實施例提供的一種應(yīng)用程序的升級方法的流程示意圖,在本發(fā)明實施例中,該方法包括以下步驟。
[0057]SlOl:接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,所述應(yīng)用程序包括N個子程序包,N和M為正整數(shù),Ν>Μ,Μ>0。
[0058]作為本發(fā)明的一種實施方式,所述應(yīng)用程序可以是已模塊化的應(yīng)用程序,整個安裝文件包括N個獨立組件,每個組件對應(yīng)一個子程序包,例如:JAVA子程序包,其中,N>1。換句話說,開發(fā)者在設(shè)計應(yīng)用程序時,可以對整個應(yīng)用程序進(jìn)行模塊化設(shè)計,每個模塊對應(yīng)一個組件,每個組件對應(yīng)一個子程序包,應(yīng)用程序包括多個獨立組件,這些獨立的組件通過各自提供的API接口(ApplicationProgramming Interface,應(yīng)用程序編程接口 )與其它組件進(jìn)行數(shù)據(jù)交互。例如:按照程序邏輯,可以將應(yīng)用程序拆分出多個“功能模塊”,如“注冊”、“管理”等;按照游戲或社區(qū)類程序的關(guān)卡或場景,可以拆分出不同的“場景模塊”,在需要時,應(yīng)用程序可加載這些模塊,模塊間通過調(diào)用各自的API接口進(jìn)行數(shù)據(jù)通信。
[0059]可以理解的,每個子程序包具有獨一無二的組件名稱及版本號,如果其中某個子程序包有新版本發(fā)布了,則在服務(wù)器上該子程序包會有一個比原有版本號大的新版本號。例如:版本號可按字典順序排列,如1.34.1、1.35.1或2.0。
[0060]當(dāng)服務(wù)器存在至少一個子程序包的更新版本時,可以是服務(wù)器基于消息推送服務(wù)機(jī)制向安裝有該應(yīng)用程序的終端發(fā)送升級通知,提示用戶是否需要升級應(yīng)用程序。也可以是在終端上啟動該應(yīng)用程序時,應(yīng)用程序自動獲取本地所有子程序包的版本信息后,向服務(wù)器發(fā)送升級所述應(yīng)用程序的查詢指令,該查詢指令包括應(yīng)用程序在本地獲取到的所有子程序包的版本信息,其中,版本信息包括子程序包的名稱和版本號。以使服務(wù)器接收到該終端上的應(yīng)用程序發(fā)送過來的查詢指令后,根據(jù)查詢指令中攜帶的版本信息與服務(wù)器中保存的所有子程序包的最新版本信息進(jìn)行比對,若存在至少一個子程序包的版本號比版本信息中提供的對應(yīng)的子程序包的版本號高,即存在至少一個子程序包可以升級,則向該應(yīng)用程序發(fā)送升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的子程序包,提示用戶是否需要升級應(yīng)用程序。為方便說明,假設(shè)存在M個子程序包可以升級,于是,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,N>M, M>0,N和M都為正整數(shù)。應(yīng)用程序接收服務(wù)器發(fā)送過來的升級通知,接收到的升級通知中包括服務(wù)器提供給該應(yīng)用程序用于升級的M個子程序包的網(wǎng)絡(luò)地址。進(jìn)一步的,服務(wù)器端在對子程序包進(jìn)行任意修改時,均在預(yù)設(shè)的文本中記錄相關(guān)修改信息,包括服務(wù)器端未對子程序包內(nèi)容進(jìn)行修改,但卻更改了該子程序包的版本號的情況,因此,服務(wù)器端接收到應(yīng)用程序發(fā)送過來的查詢指令時,根據(jù)版本信息和該預(yù)設(shè)的文本共同確定應(yīng)用程序是否需要升級,若判斷出確實存在至少一個子程序包可以升級,則向該應(yīng)用程序發(fā)送升級通知。
[0061]S102:根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包。
[0062]具體的,可以是應(yīng)用程序接收到升級通知后,不顯示該升級通知,直接根據(jù)升級通知中攜帶的網(wǎng)絡(luò)地址自動去下載用于升級的M個子程序包,無需用戶進(jìn)行確認(rèn),應(yīng)用程序自動進(jìn)行升級。
[0063]但作為一種優(yōu)選的實施方式,應(yīng)用程序接收到升級通知后,基于WebView瀏覽器控件顯示所述升級通知,并加載所述升級通知中所攜帶的網(wǎng)絡(luò)地址,進(jìn)入下載界面。進(jìn)入下載界面后,可以是應(yīng)用程序自動去下載用于升級的子程序包,無需用戶進(jìn)行確認(rèn);也可以是用戶點擊確認(rèn)升級按鈕,向應(yīng)用程序發(fā)出確認(rèn)升級的操作指令后,再去下載所述用于升級的子程序包。[0064]S103:將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。
[0065]具體的,應(yīng)用程序從服務(wù)器上下載完所有用于升級的M個子程序包后,獲取這些用于升級的M個子程序包的標(biāo)識符,例如:子程序包的名稱或ID信息;將獲取到的標(biāo)識符與本地應(yīng)用程序中的每個子程序包對應(yīng)的標(biāo)識符進(jìn)行比對,得到所有本地子程序包中分別與所述用于升級的M個子程序包的標(biāo)識符相同的M個本地子程序包;然后將本地得到的M個本地子程序包替換為從服務(wù)器上下載過來的對應(yīng)的用于升級的M個子程序包,完成應(yīng)用程序的升級。該應(yīng)用程序的升級過程中,無需下載整個安裝文件,只需對需要升級的部分子程序包進(jìn)行下載并更新即可,不僅節(jié)省流量,而且縮短了應(yīng)用程序進(jìn)行升級時所耗費的時間。
[0066]在本發(fā)明實施例所描述的應(yīng)用程序的升級方法中,應(yīng)用程序接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有服務(wù)器提供給應(yīng)用程序用于升級的M個子程序包的網(wǎng)絡(luò)地址;根據(jù)所述網(wǎng)絡(luò)地址下載用于升級的M個子程序包;將與用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包,其中,M個子程序包不是應(yīng)用程序的全部子程序包,從而通過更新部分子程序包即可實現(xiàn)應(yīng)用程序的升級。采用本發(fā)明實施例,可以節(jié)省用戶給應(yīng)用程序進(jìn)行升級時所耗費的流量和時間。
[0067]請參見圖2,圖2是本發(fā)明實施例提供的一種應(yīng)用程序的升級方法的另一流程示意圖,在本發(fā)明實施例中,該方法包括以下步驟。
[0068]S201:應(yīng)用程序向服務(wù)器發(fā)送升級應(yīng)用程序的查詢指令,所述查詢指令攜帶有所述應(yīng)用程序中所有子程序包的版本信息,所述版本信息包括子程序包的名稱和版本號。
[0069]作為本發(fā)明的一種實施方式,所述應(yīng)用程序可以是已模塊化的應(yīng)用程序,整個安裝文件包括N個獨立組件,每個組件對應(yīng)一個子程序包。例如:JAVA子程序包,其中,N>1。換句話說,開發(fā)者在設(shè)計應(yīng)用程序時,對整個應(yīng)用程序進(jìn)行模塊化設(shè)計,每個模塊對應(yīng)一個組件,每個組件對應(yīng)一個子程序包,應(yīng)用程序包括多個獨立組件,這些獨立的組件通過各自提供的API接口(Application Programming Interface,應(yīng)用程序編程接口 )與其它組件進(jìn)行數(shù)據(jù)交互。
[0070]具體的,開啟應(yīng)用程序時,應(yīng)用程序自動獲取本地所有子程序包的版本信息,并向服務(wù)器發(fā)送升級所述應(yīng)用程序的查詢指令,該查詢指令包括應(yīng)用程序在本地獲取到的所有子程序包的版本信息,其中,版本信息包括子程序包的名稱和版本號。以使服務(wù)器接收到該終端上的應(yīng)用程序發(fā)送過來的查詢指令后,根據(jù)查詢指令中攜帶的版本信息與服務(wù)器中保存的所有子程序包的最新版本信息進(jìn)行比對,若存在至少一個子程序包可以升級,則向該應(yīng)用程序發(fā)送升級通知,提示用戶是否需要升級應(yīng)用程序,其中,升級通知中包括至少一個用于升級的子程序包的網(wǎng)絡(luò)下載地址。為方便說明,假設(shè)存在M個子程序包可以升級,于是,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,N>M,M>0,N和M都為正整數(shù)。
[0071]S202:接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包。
[0072]S203:基于WebView瀏覽器控件顯示所述升級通知,并加載所述升級通知中所攜帶的網(wǎng)絡(luò)地址。
[0073]S204:若接收到確認(rèn)升級的操作指令,根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包。
[0074]例如:用戶點擊確認(rèn)升級按鈕,從而向應(yīng)用程序發(fā)出確認(rèn)升級的操作指令,則所述應(yīng)用程序根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包。
[0075]S205:將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。
[0076]具體的,應(yīng)用程序從服務(wù)器上下載完所有用于升級的M個子程序包后,獲取這些用于升級的M個子程序包的標(biāo)識符,例如:子程序包的名稱或ID信息。將獲取到的標(biāo)識符與本地應(yīng)用程序中的每個子程序包對應(yīng)的標(biāo)識符進(jìn)行比對,得到本地應(yīng)用程序中與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包。然后將本地得到的M個子程序包替換為從服務(wù)器上下載過來的用于升級的M個子程序包。
[0077]優(yōu)選的,對從所述應(yīng)用程序中獲取到的與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包進(jìn)行備份,若應(yīng)用程序升級失敗,可以通過該備份的子程序包恢復(fù)到升級前的狀態(tài)。
[0078]作為一種可能的實施方式,確定所述應(yīng)用程序是否成功將所述M個本地子程序包替換為所述用于升級的M個子程序包,若是,表示升級成功;若否,表示升級失敗。若升級失敗,應(yīng)用程序根據(jù)已備份的M個本地子程序包將所述應(yīng)用程序恢復(fù)到未進(jìn)行升級前的狀態(tài)。
[0079]S206:輸出應(yīng)用程序的升級信息,所述升級信息包括升級結(jié)果和所述應(yīng)用程序升級后所具有的新屬性。
[0080]具體的,若升級成功,則輸出升級成功的信息,并展示升級后的應(yīng)用程序所具有的新屬性,例如:新增加的功能或?qū)υ泄δ苓M(jìn)行的某些優(yōu)化等。該應(yīng)用程序的升級過程中,無需下載整個安裝文件,只需對需要更新的部分子程序包進(jìn)行下載并更新即可,不僅節(jié)省流量,而且縮短了應(yīng)用程序進(jìn)行升級時所耗費的時間。
[0081]在本發(fā)明實施例所描述的應(yīng)用程序的升級方法中,應(yīng)用程序接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有服務(wù)器提供給應(yīng)用程序用于升級的M個子程序包的網(wǎng)絡(luò)地址;根據(jù)所述網(wǎng)絡(luò)地址下載用于升級的M個子程序包;將與用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包,其中,M個子程序包不是應(yīng)用程序的全部子程序包,從而通過更新部分子程序包即可實現(xiàn)應(yīng)用程序的升級。采用本發(fā)明實施例,可以節(jié)省用戶給應(yīng)用程序進(jìn)行升級時所耗費的流量和時間。
[0082]請參見圖3,圖3是本發(fā)明實施例提供的一種應(yīng)用程序的升級裝置的結(jié)構(gòu)示意圖,在本發(fā)明實施例中,該裝置包括:接收模塊301、下載模塊302和替換模塊303。
[0083]接收模塊301,用于接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,所述應(yīng)用程序包括N個子程序包,N和M為正整數(shù),N>M, M>0。
[0084]作為本發(fā)明的一種實施方式,所述應(yīng)用程序可以是已模塊化的應(yīng)用程序,整個安裝文件包括N個獨立組件,每個組件對應(yīng)一個子程序包,例如:JAVA子程序包,其中,N>1。換句話說,開發(fā)者在設(shè)計應(yīng)用程序時,對整個應(yīng)用程序進(jìn)行模塊化設(shè)計,每個模塊對應(yīng)一個組件,每個組件對應(yīng)一個子程序包,應(yīng)用程序包括多個獨立組件,這些獨立的組件通過提供API (Application Programming Interface,應(yīng)用程序編程接口 )與其它組件進(jìn)行數(shù)據(jù)交互。服務(wù)器發(fā)送過來的升級通知中加載有用于升級的M個子程序包的網(wǎng)絡(luò)地址,其中,N和M為正整數(shù),Μ〈Ν,Μ>0。
[0085]下載模塊302,用于根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包。
[0086]替換模塊303,用于將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。
[0087]在本發(fā)明實施例所描述的應(yīng)用程序的升級裝置中,應(yīng)用程序接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有服務(wù)器提供給應(yīng)用程序用于升級的M個子程序包的網(wǎng)絡(luò)地址;根據(jù)所述網(wǎng)絡(luò)地址下載用于升級的M個子程序包;將與用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包,其中,M個子程序包不是應(yīng)用程序的全部子程序包,從而通過更新部分子程序包即可實現(xiàn)應(yīng)用程序的升級。采用本發(fā)明實施例,可以節(jié)省用戶給應(yīng)用程序進(jìn)行升級時所耗費的流量和時間。
[0088]請參見圖4,圖4是本發(fā)明實施例提供的一種應(yīng)用程序的升級裝置的另一結(jié)構(gòu)示意圖,在本發(fā)明實施例中,該裝置包括:接收模塊401、下載模塊402、替換模塊403、發(fā)送模塊404、顯示模塊405、確定模塊406和輸出模塊407。
[0089]接收模塊401,用于接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,所述應(yīng)用程序包括N個子程序包,N和M為正整數(shù),N>M, M>0。
[0090]下載模塊402,用于根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包。
[0091]具體的,可以是應(yīng)用程序接收到升級通知后,不顯示該升級通知,下載模塊402直接根據(jù)升級通知中攜帶的網(wǎng)絡(luò)地址自動去下載用于升級的M個子程序包,無需用戶進(jìn)行確認(rèn),應(yīng)用程序自動進(jìn)行升級。
[0092]替換模塊403,用于將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。
[0093]發(fā)送模塊404,用于向所述服務(wù)器發(fā)送升級所述應(yīng)用程序的查詢指令,所述查詢指令攜帶有所述應(yīng)用程序中所有子程序包的版本信息,以使所述服務(wù)器根據(jù)所述查詢指令確定所述應(yīng)用程序是否需要升級,若是,則給所述應(yīng)用程序發(fā)送所述升級通知。
[0094]顯示模塊405,用于基于WebView瀏覽器控件顯示所述升級通知,并加載所述升級通知中所攜帶的網(wǎng)絡(luò)地址。
[0095]具體的,可以是應(yīng)用程序接收到升級通知后,顯示模塊405基于WebView瀏覽器控件顯示所述升級通知,并加載所述升級通知中所攜帶的網(wǎng)絡(luò)地址,進(jìn)入下載界面。進(jìn)入下載界面后,可以是下載模塊402自動去下載用于升級的子程序包,無需用戶進(jìn)行確認(rèn);也可以是用戶點擊確認(rèn)升級按鈕,向應(yīng)用程序發(fā)出確認(rèn)升級的操作指令后,下載模塊402再去下載所述用于升級的M個子程序包。
[0096]確定模塊406,用于確定所述應(yīng)用程序是否成功將所述M個本地子程序包替換為所述用于升級的M個子程序包,若是,表示升級成功;若否,表示升級失敗,根據(jù)已備份的M個本地子程序包將所述應(yīng)用程序恢復(fù)到未進(jìn)行升級前的狀態(tài)。
[0097]輸出模塊407,用于輸出所述應(yīng)用程序的升級信息,所述升級信息包括升級結(jié)果和所述應(yīng)用程序升級后所具有的新屬性。
[0098]作為一種優(yōu)選的實施方式,替換模塊403包括:第一獲取單元4031、第二獲取單元4032、備份單元4033和替換單元4034。如圖5所示,圖5是圖4提供的其中一種替換模塊的結(jié)構(gòu)示意圖。
[0099]第一獲取單元4031,用于獲取所述用于升級的M個子程序包的標(biāo)識符。
[0100]第二獲取單元4032,用于根據(jù)所述用于升級的M個子程序包的標(biāo)識符,獲取所有本地子程序包中與所述標(biāo)識符相同的M個本地子程序包。
[0101]備份單元4033,用于對所述M個本地子程序包進(jìn)行備份。
[0102]替換單元4034,用于將所述M個本地子程序包替換為所述用于升級的M個子程序包。
[0103]在本發(fā)明實施例所描述的應(yīng)用程序的升級裝置中,應(yīng)用程序接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有服務(wù)器提供給應(yīng)用程序用于升級的M個子程序包的網(wǎng)絡(luò)地址;根據(jù)所述網(wǎng)絡(luò)地址下載用于升級的M個子程序包;將與用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包,其中,M個子程序包不是應(yīng)用程序的全部子程序包,從而通過更新部分子程序包即可實現(xiàn)應(yīng)用程序的升級。采用本發(fā)明實施例,可以節(jié)省用戶給應(yīng)用程序進(jìn)行升級時所耗費的流量和時間。
[0104]請參見圖6,圖6是本發(fā)明實施例提供的一種應(yīng)用程序的升級系統(tǒng)的結(jié)構(gòu)示意圖,在本發(fā)明實施例中,該系統(tǒng)包括:終端100和服務(wù)器200。終端100內(nèi)安裝有包括如上所述升級裝置的應(yīng)用程序,服務(wù)器200用于向終端100發(fā)送升級通知,以使終端上的應(yīng)用程序根據(jù)所述升級通知進(jìn)行升級。
[0105]作為本發(fā)明的一種實施方式,可以是服務(wù)器200獲取終端100內(nèi)該應(yīng)用程序的所有子程序包的版本信息,服務(wù)器200根據(jù)終端100上獲取到的版本信息和本地服務(wù)器中保存的該應(yīng)用程序的最新版本信息確定終端100上的該應(yīng)用程序是否有待升級的子程序包,若有,則服務(wù)器200向安裝了該應(yīng)用程序的終端100發(fā)送升級通知,提示用戶是否需要升級應(yīng)用程序,其中,升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,M為大于零的正整數(shù)。假設(shè)該應(yīng)用程序包括N個子程序包,N為正整數(shù),則N>M。終端100內(nèi)的應(yīng)用程序接收到服務(wù)器200發(fā)送過來的升級通知后,根據(jù)升級通知中攜帶的網(wǎng)絡(luò)地址去下載用于升級的M個子程序包,下載完所有用于升級的子程序包后,將本地對應(yīng)的M個子程序包替換為從服務(wù)器200上下載過來的所述用于升級的M個子程序包,完成應(yīng)用程序的升級。該應(yīng)用程序的升級過程中,無需下載整個安裝文件,只需對需要升級的部分子程序包進(jìn)行下載并更新即可,不僅節(jié)省流量,而且縮短了應(yīng)用程序進(jìn)行升級時所耗費的時間。
[0106]在本發(fā)明實施例所描述的應(yīng)用程序的升級系統(tǒng)中,終端上的應(yīng)用程序接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有服務(wù)器提供給應(yīng)用程序用于升級的M個子程序包的網(wǎng)絡(luò)地址;根據(jù)所述網(wǎng)絡(luò)地址下載用于升級的M個子程序包;將與用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包,其中,M個子程序包不是應(yīng)用程序的全部子程序包,從而通過更新部分子程序包即可實現(xiàn)應(yīng)用程序的升級。采用本發(fā)明實施例,可以節(jié)省用戶給應(yīng)用程序進(jìn)行升級時所耗費的流量和時間。
[0107]本發(fā)明實施例方法中的步驟可以根據(jù)實際需要進(jìn)行順序調(diào)整、合并和刪減。
[0108]本發(fā)明實施例裝置中的模塊或單元可以根據(jù)實際需要進(jìn)行合并、劃分和刪減。
[0109]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機(jī)存儲記憶體(Random AccessMemory, RAM)等。
[0110]以上所揭露的僅為本發(fā)明較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種應(yīng)用程序的升級方法,其特征在于,包括: 接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,所述應(yīng)用程序包括N個子程序包,N和M為正整數(shù),N>M, M>0 ; 根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包; 將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。
2.如權(quán)利要求1所述的方法,其特征在于,所述接收服務(wù)器發(fā)送過來的升級通知之前,所述方法還包括: 向所述服務(wù)器發(fā)送升級所述應(yīng)用程序的查詢指令,所述查詢指令攜帶有所述應(yīng)用程序中所有子程 序包的版本信息,以使所述服務(wù)器根據(jù)所述查詢指令確定所述應(yīng)用程序是否需要升級,若是,則給所述應(yīng)用程序發(fā)送所述升級通知。
3.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包,包括: 若接收到確認(rèn)升級的操作指令,執(zhí)行所述根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包的步驟。
4.如權(quán)利要求1所述的方法,其特征在于,所述接收服務(wù)器發(fā)送過來的升級通知之后,所述方法還包括: 基于WebView瀏覽器控件顯示所述升級通知,并加載所述升級通知中所攜帶的網(wǎng)絡(luò)地址。
5.如權(quán)利要求1-4任一項所述的方法,其特征在于,所述將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包,包括: 獲取所述用于升級的M個子程序包的標(biāo)識符; 根據(jù)所述用于升級的M個子程序包的標(biāo)識符,獲取所有本地子程序包中與所述標(biāo)識符相同的M個本地子程序包; 將所述M個本地子程序包替換為所述用于升級的M個子程序包。
6.如權(quán)利要求5所述的方法,其特征在于,所述將所述M個本地子程序包替換為所述用于升級的M個子程序包之前,所述方法還包括: 對所述M個本地子程序包進(jìn)行備份。
7.如權(quán)利要求6所述的方法,其特征在于,所述方法還包括: 確定所述應(yīng)用程序是否成功將所述M個本地子程序包替換為所述用于升級的M個子程序包,若是,表示升級成功;若否,表示升級失敗,根據(jù)已備份的M個本地子程序包將所述應(yīng)用程序恢復(fù)到未進(jìn)行升級前的狀態(tài)。
8.如權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 輸出所述應(yīng)用程序的升級信息,所述升級信息包括升級結(jié)果和所述應(yīng)用程序升級后所具有的新屬性。
9.一種應(yīng)用程序的升級裝置,其特征在于,包括: 接收模塊,用于接收服務(wù)器發(fā)送過來的升級通知,所述升級通知中攜帶有網(wǎng)絡(luò)地址,所述網(wǎng)絡(luò)地址加載有用于升級的M個子程序包,其中,所述應(yīng)用程序包括N個子程序包,N和M為正整數(shù),Ν>Μ,Μ>0 ; 下載模塊,用于根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包; 替換模塊,用于將與所述用于升級的M個子程序包相對應(yīng)的M個本地子程序包替換為所述用于升級的M個子程序包。
10.如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 發(fā)送模塊,用于向所述服務(wù)器發(fā)送升級所述應(yīng)用程序的查詢指令,所述查詢指令攜帶有所述應(yīng)用程序中所有子程序包的版本信息,以使所述服務(wù)器根據(jù)所述查詢指令確定所述應(yīng)用程序是否需要升級,若是,則給所述應(yīng)用程序發(fā)送所述升級通知。
11.如權(quán)利要求9所述的裝置,其特征在于,所述下載模塊還用于: 若接收到確認(rèn)升級的操作指令,執(zhí)行所述根據(jù)所述網(wǎng)絡(luò)地址下載所述用于升級的M個子程序包的步驟。
12.如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 顯示模塊,用于基于WebView瀏覽器控件顯示所述升級通知,并加載所述升級通知中所攜帶的網(wǎng)絡(luò)地址。
13.如權(quán)利要求9-12任一項所述的裝置,其特征在于,所述替換模塊包括: 第一獲取單元,用于獲取所述用于升級的M個子程序包的標(biāo)識符; 第二獲取單元,用于根據(jù)所述用于升級的M個子程序包的標(biāo)識符,獲取所有本地子程序包中與所述標(biāo)識符相同的M個本地子程序包; 替換單元,用于將所述M個本地子程序包替換為所述用于升級的M個子程序包。
14.如權(quán)利要求13所述的裝置,其特征在于,所述替換模塊還包括: 備份單元,用于對所述M個本地子程序包進(jìn)行備份。
15.如權(quán)利要求14所述的裝置,其特征在于,所述裝置還包括: 確定模塊,用于確定所述應(yīng)用程序是否成功將所述M個本地子程序包替換為所述用于升級的M個子程序包,若是,表示升級成功;若否,表示升級失敗,根據(jù)已備份的M個本地子程序包將所述應(yīng)用程序恢復(fù)到未進(jìn)行升級前的狀態(tài)。
16.如權(quán)利要求15所述的裝置,其特征在于,所述裝置還包括: 輸出模塊,用于輸出所述應(yīng)用程序的升級信息,所述升級信息包括升級結(jié)果和所述應(yīng)用程序升級后所具有的新屬性。
17.一種應(yīng)用程序的升級系統(tǒng),其特征在于,包括服務(wù)器和終端,所述終端上安裝了包括如權(quán)利要求9-16任一項所述裝置的應(yīng)用程序,所述服務(wù)器用于向所述終端發(fā)送升級通知,以使所述終端上的應(yīng)用程序根據(jù)所述升級通知進(jìn)行升級。
【文檔編號】G06F9/445GK103995721SQ201410220067
【公開日】2014年8月20日 申請日期:2014年5月22日 優(yōu)先權(quán)日:2014年5月22日
【發(fā)明者】余鵬程, 趙書香, 鄺銳強(qiáng) 申請人:廣州金山網(wǎng)絡(luò)科技有限公司