應(yīng)用程序的升級(jí)包檢測(cè)方法和服務(wù)器、升級(jí)方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種應(yīng)用程序的升級(jí)包檢測(cè)方法和服務(wù)器、升級(jí)方法和系統(tǒng),該方法包括服務(wù)器接收來(lái)自客戶端發(fā)送的應(yīng)用程序參數(shù)信息,應(yīng)用程序參數(shù)包括應(yīng)用程序的包名,根據(jù)接收到的包名獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)應(yīng)用程序ID從第三方應(yīng)用供應(yīng)商中獲取與應(yīng)用程序?qū)?yīng)的升級(jí)包,將獲取到的升級(jí)包反饋回給客戶端;通過(guò)本發(fā)明的實(shí)施,服務(wù)器通過(guò)接收客戶端發(fā)送的應(yīng)用程序的包名獲取應(yīng)用程序ID,根據(jù)應(yīng)用程序ID直接從第三方應(yīng)用供應(yīng)商中獲取升級(jí)包,實(shí)現(xiàn)了通過(guò)應(yīng)用程序的包名與第三方應(yīng)用供應(yīng)商建立連接關(guān)系進(jìn)行快速連接查詢,從而縮短了客戶端在更新應(yīng)用程序時(shí)的時(shí)間周期,也提高了查詢的效率和性能。
【專利說(shuō)明】
應(yīng)用程序的升級(jí)包檢測(cè)方法和服務(wù)器、升級(jí)方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及應(yīng)用程序領(lǐng)域,尤其涉及一種應(yīng)用程序的升級(jí)包檢測(cè)方法和服務(wù)器、升級(jí)方法和系統(tǒng)。
【背景技術(shù)】
[0002]應(yīng)用商店中的一個(gè)重要功能是對(duì)應(yīng)用程序的升級(jí)檢測(cè),由于每個(gè)用戶在客戶端上一般都安裝三位數(shù)以上的應(yīng)用程序,這時(shí),如果需要對(duì)這些應(yīng)用程序進(jìn)行升級(jí)時(shí),通過(guò)現(xiàn)有的服務(wù)器對(duì)客戶端上的應(yīng)用程序進(jìn)行升級(jí)包檢測(cè)會(huì)需要很長(zhǎng)的時(shí)間周期。
[0003]現(xiàn)有的升級(jí)應(yīng)用程序的方法是通過(guò)搜索引擎來(lái)進(jìn)行搜索檢測(cè),該搜索引擎檢索是需要根據(jù)用戶從客戶端上輸入對(duì)應(yīng)的應(yīng)用程序的信息或信息列表,搜索引擎在根據(jù)對(duì)應(yīng)的信息從為搜索引擎配置的數(shù)據(jù)庫(kù)中查詢到對(duì)應(yīng)的應(yīng)用程序的最新升級(jí)包,并下載反饋回去給客戶端。
[0004]但是通過(guò)該種方式進(jìn)行查詢更新時(shí),對(duì)于搜索引擎的數(shù)據(jù)庫(kù)中不存在最新的升級(jí)包時(shí),服務(wù)器需要等待數(shù)據(jù)庫(kù)從第三方應(yīng)用供應(yīng)商中獲取應(yīng)用程序的升級(jí)包對(duì)數(shù)據(jù)庫(kù)的應(yīng)用程序升級(jí)包進(jìn)行更新后才能獲取,而該數(shù)據(jù)庫(kù)的更新和采集的時(shí)間周期比較長(zhǎng),一般都幾十分鐘,甚至半個(gè)小時(shí)分鐘以上。
[0005]隨著用戶對(duì)客戶端的體驗(yàn)度越來(lái)越高,而現(xiàn)有的通過(guò)搜索引擎的更新方式已經(jīng)不能滿足用戶的要求了。例如,當(dāng)用戶需要更新升級(jí)一個(gè)應(yīng)用程序時(shí),搜索引擎需要在其數(shù)據(jù)庫(kù)更新完畢后,才能獲取到升級(jí)包并發(fā)送給客戶端,由于數(shù)據(jù)庫(kù)的更新周期過(guò)長(zhǎng),導(dǎo)致了部分應(yīng)用程序的升級(jí)包不能及時(shí)的被服務(wù)器獲取到,從使得用戶無(wú)法及時(shí)的獲取到應(yīng)用程序的升級(jí)信息。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的主要目的在于提出一種應(yīng)用程序的升級(jí)包檢測(cè)方法和服務(wù)器、升級(jí)方法和系統(tǒng),旨在解決通過(guò)現(xiàn)有的更新方式對(duì)客戶端的應(yīng)用程序進(jìn)行升級(jí)檢測(cè)的時(shí)間過(guò)長(zhǎng),用戶不能及時(shí)獲取客戶端上應(yīng)用程序的升級(jí)信息的技術(shù)問(wèn)題。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種服務(wù)器,包括:
[0008]接收模塊,用于接收客戶端發(fā)送的應(yīng)用程序參數(shù)信息,所述應(yīng)用程序參數(shù)包括應(yīng)用程序的包名;
[0009]獲取模塊,用于根據(jù)應(yīng)用程序的包名獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)所述應(yīng)用程序ID從第三方應(yīng)用供應(yīng)商中獲取與應(yīng)用程序?qū)?yīng)的升級(jí)包;
[0010]發(fā)送模塊,用于將升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。
[0011]在本發(fā)明的另一實(shí)施例中,應(yīng)用程序參數(shù)信息包括應(yīng)用程序的校驗(yàn)碼,獲取模塊包括:
[0012]查詢子模塊,用于根據(jù)應(yīng)用程序的包名到內(nèi)存哈希表中查詢是否存在與應(yīng)用程序的包名相對(duì)應(yīng)的應(yīng)用程序ID;若不存在,根據(jù)應(yīng)用程序的包名到數(shù)據(jù)庫(kù)中查詢是否存在與應(yīng)用程序的包名相對(duì)應(yīng)的應(yīng)用程序ID;以及用于根據(jù)應(yīng)用程序ID到數(shù)據(jù)庫(kù)哈希表中查詢應(yīng)用程序的新版本號(hào);
[0013]獲取子模塊用于根據(jù)新版本號(hào)以及校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取應(yīng)用程序的升級(jí)包。
[0014]在本發(fā)明的另一實(shí)施例中,服務(wù)器還包括:設(shè)置模塊,用于設(shè)置時(shí)間戳;時(shí)間戳用于從數(shù)據(jù)庫(kù)中獲取應(yīng)用程序ID更新內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系。
[0015]在本發(fā)明的另一實(shí)施例中,升級(jí)包包括差分升級(jí)包和完整升級(jí)包,差分升級(jí)包為應(yīng)用程序的當(dāng)前版本與新版本的差分升級(jí)包,服務(wù)器還包括:比較模塊,用于在查詢子模塊根據(jù)應(yīng)用程序ID到數(shù)據(jù)庫(kù)哈希表中查詢應(yīng)用程序的新版本號(hào)之后,將應(yīng)用程序的當(dāng)前版本號(hào)與新版本號(hào)進(jìn)行比較;
[0016]若所述新版本號(hào)比當(dāng)前版本號(hào)高時(shí),獲取子模塊根據(jù)應(yīng)用程序的當(dāng)前版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取差分升級(jí)包,通過(guò)發(fā)送模塊將差分升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理;
[0017]或者,獲取子模塊根據(jù)所述應(yīng)用程序的新版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取應(yīng)用程序最新的完整升級(jí)包,通過(guò)發(fā)送模塊將完整升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。
[0018]在本發(fā)明的另一實(shí)施例中,獲取模塊根據(jù)應(yīng)用程序ID從第三方應(yīng)用商店中獲取升級(jí)包之前,還用于判斷數(shù)據(jù)庫(kù)中對(duì)應(yīng)的應(yīng)用程序的版本號(hào)是否大于客戶端上對(duì)應(yīng)的應(yīng)用程序的當(dāng)前版本號(hào),若是,則直接從數(shù)據(jù)庫(kù)調(diào)用升級(jí)包對(duì)應(yīng)用程序進(jìn)行升級(jí)處理,若否,則從第三方應(yīng)用供應(yīng)商中獲取升級(jí)包對(duì)應(yīng)用程序進(jìn)行升級(jí)處理。
[0019]為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種應(yīng)用程序的升級(jí)系統(tǒng),包括至少一個(gè)客戶端和如上所述的服務(wù)器,服務(wù)器用于檢測(cè)查詢升級(jí)包;
[0020]服務(wù)器用于接收所述至少一個(gè)客戶端發(fā)送的至少一個(gè)應(yīng)用程序參數(shù)信息,所述應(yīng)用程序參數(shù)信息包括應(yīng)用程序的包名;根據(jù)接收到的至少一個(gè)應(yīng)用程序的包名作為一個(gè)集合獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)所述應(yīng)用功能程序ID從第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)的應(yīng)用程序的升級(jí)包;所述服務(wù)器將所述升級(jí)包發(fā)送至對(duì)應(yīng)的客戶端;
[0021]所述客戶端用于接收所述升級(jí)包,并將對(duì)應(yīng)的應(yīng)用程序進(jìn)行升級(jí)處理。
[0022]此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種應(yīng)用程序的升級(jí)包檢測(cè)方法,包括以下步驟:
[0023]服務(wù)器接收客戶端發(fā)送的應(yīng)用程序參數(shù)信息,應(yīng)用程序參數(shù)包括應(yīng)用程序的包名;
[0024]根據(jù)應(yīng)用程序的包名獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)應(yīng)用程序ID從第三方應(yīng)用供應(yīng)商中獲取與應(yīng)用程序?qū)?yīng)的升級(jí)包;
[0025]將升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。
[0026]在本發(fā)明的另一實(shí)施例中,應(yīng)用程序參數(shù)信息包括應(yīng)用程序的包名及其校驗(yàn)碼;
[0027]根據(jù)應(yīng)用程序的包名到內(nèi)存哈希表中查詢是否存在與應(yīng)用程序的包名相對(duì)應(yīng)的應(yīng)用程序ID;
[0028]若內(nèi)存哈希表中不存在,根據(jù)應(yīng)用程序的包名到數(shù)據(jù)庫(kù)中查詢是否存在與應(yīng)用程序的包名相對(duì)應(yīng)的應(yīng)用程序ID;
[0029]根據(jù)應(yīng)用程序ID到數(shù)據(jù)庫(kù)哈希表中查詢應(yīng)用程序的新版本號(hào);
[0030]根據(jù)新版本號(hào)以及校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取應(yīng)用程序的升級(jí)包。
[0031]在本發(fā)明的另一實(shí)施例中,所述方法還包括設(shè)置時(shí)間戳;時(shí)間戳用于從數(shù)據(jù)庫(kù)中獲取應(yīng)用程序ID更新內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系。
[0032]在本發(fā)明的另一實(shí)施例中,升級(jí)包包括差分升級(jí)包和完整升級(jí)包,差分升級(jí)包為應(yīng)用程序的當(dāng)前版本與新版本的差分升級(jí)包;
[0033]在根據(jù)應(yīng)用程序ID到數(shù)據(jù)庫(kù)哈希表中查詢應(yīng)用程序的新版本號(hào)之后,還包括將應(yīng)用程序的當(dāng)前版本號(hào)與新版本號(hào)進(jìn)行比較;
[0034]若新版本號(hào)比當(dāng)前版本號(hào)高時(shí),根據(jù)應(yīng)用程序的當(dāng)前版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取差分升級(jí)包,將差分升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理;
[0035]或者,根據(jù)應(yīng)用程序的新版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商獲取應(yīng)用程序最新的完整升級(jí)包,將完整升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。
[0036]在本發(fā)明的另一實(shí)施例中,在根據(jù)所述應(yīng)用程序ID從所述第三方應(yīng)用商店中獲取升級(jí)包之前,還用于判斷數(shù)據(jù)庫(kù)中對(duì)應(yīng)的應(yīng)用程序的版本號(hào)是否大于客戶端上對(duì)應(yīng)的應(yīng)用程序的當(dāng)前版本號(hào),若是,則直接從數(shù)據(jù)庫(kù)調(diào)用升級(jí)包對(duì)應(yīng)用程序進(jìn)行升級(jí)處理,若否,則從所述第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)用程序進(jìn)行升級(jí)處理。
[0037]為實(shí)現(xiàn)上述目的,本發(fā)明還提出應(yīng)用程序的升級(jí)方法,包括:
[0038]服務(wù)器接收至少一個(gè)客戶端發(fā)送的至少一個(gè)應(yīng)用程序參數(shù)信息,應(yīng)用程序參數(shù)信息包括應(yīng)用程序的包名;根據(jù)接收到的至少一個(gè)應(yīng)用程序的包名作為一個(gè)集合獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)應(yīng)用功能程序ID從第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)的應(yīng)用程序的升級(jí)包;將所述升級(jí)包發(fā)送至對(duì)應(yīng)的客戶端;
[0039]客戶端接收所述升級(jí)包,并將對(duì)應(yīng)的應(yīng)用程序進(jìn)行升級(jí)處理。
[0040]本發(fā)明所提出的一種應(yīng)用程序的升級(jí)包檢測(cè)方法和服務(wù)器、升級(jí)方法和系統(tǒng),該服務(wù)器包括接收模塊接收客戶端發(fā)送過(guò)來(lái)的應(yīng)用程序參數(shù)信息,獲取模塊根據(jù)接收模塊接收到的應(yīng)用程序參數(shù)信息獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)所述應(yīng)用程序ID從第三方應(yīng)用供應(yīng)商中獲取與應(yīng)用程序相對(duì)應(yīng)的升級(jí)包,發(fā)送模塊將獲取模塊獲取到的升級(jí)包發(fā)送至客戶端;通過(guò)本發(fā)明提供的檢測(cè)方法檢測(cè)升級(jí)包,服務(wù)器通過(guò)應(yīng)用程序參數(shù)信息中的包名與第三方應(yīng)用供應(yīng)商建立快速查詢路徑,使得在檢測(cè)需要升級(jí)的應(yīng)用程序的最新升級(jí)包時(shí),能快速準(zhǔn)確地獲取到應(yīng)用程序的升級(jí)包,實(shí)現(xiàn)了客戶端能及時(shí)獲取到應(yīng)用程序的升級(jí)信息,通過(guò)客戶端上的應(yīng)用程序自身的信息獲取升級(jí)包,縮短了客戶端對(duì)應(yīng)用程序升級(jí)時(shí)的時(shí)間周期,也提高了對(duì)應(yīng)用程序升級(jí)信息的查詢效率和查詢的正確性。
[0041]進(jìn)一步的,通過(guò)應(yīng)用程序的包名從服務(wù)器的內(nèi)存哈希表中查詢應(yīng)用程序ID,根據(jù)應(yīng)用程序ID從數(shù)據(jù)庫(kù)哈希表中查詢與應(yīng)用程序?qū)?yīng)的新版本號(hào),根據(jù)新版本號(hào)和校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取升級(jí)包,使得客戶端通過(guò)應(yīng)用程序ID實(shí)現(xiàn)了與服務(wù)器中的內(nèi)存哈希表以及第三方應(yīng)用供應(yīng)商之間的快速連接查詢,從而縮短了客戶端在更新應(yīng)用程序時(shí)的時(shí)間周期,也提高了查詢的效率和性能;另外,本發(fā)明還設(shè)置了時(shí)間戳對(duì)哈希表中應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系進(jìn)行更新,進(jìn)一步提高了查詢性能和正確性。
【附圖說(shuō)明】
[0042]圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的客戶端一個(gè)可選的硬件結(jié)構(gòu)示意圖;
[0043]圖2為如圖1所示的客戶端的無(wú)線通信系統(tǒng)示意圖;
[0044]圖3為本發(fā)明第一實(shí)施例提供的服務(wù)器的模塊示意圖;
[0045]圖4為本發(fā)明第二實(shí)施例提供的服務(wù)器的模塊示意圖;
[0046]圖5為本發(fā)明第三實(shí)施例提供的應(yīng)用程序的升級(jí)包檢測(cè)方法流程圖;
[0047]圖6為本發(fā)明第四實(shí)施例提供的應(yīng)用程序的升級(jí)包檢測(cè)方法流程圖;
[0048]圖7為本發(fā)明提供的更新內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID的對(duì)應(yīng)關(guān)系的流程圖;
[0049]圖8為本發(fā)明提供的對(duì)于多個(gè)應(yīng)用程序同時(shí)進(jìn)行升級(jí)包檢測(cè)的處理流程圖;
[0050]圖9為本發(fā)明第五實(shí)施例提供的應(yīng)用程序的升級(jí)系統(tǒng)的模塊示意圖。
[0051 ]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
【具體實(shí)施方式】
[0052]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0053]現(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的客戶端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說(shuō)明,其本身并沒(méi)有特定的意義。因此,“模塊”與“部件”可以混合地使用。
[0054]客戶端可以以各種形式來(lái)實(shí)施。例如,本發(fā)明中描述的客戶端可以包括諸如移動(dòng)電話、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個(gè)人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導(dǎo)航裝置等等的客戶端以及諸如數(shù)字TV、臺(tái)式計(jì)算機(jī)等等的固定終端。下面,假設(shè)客戶端是移動(dòng)終端。然而,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動(dòng)目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類型的客戶端。
[0055]圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的客戶端一個(gè)可選的硬件結(jié)構(gòu)示意圖。
[0056]客戶端100可以包括無(wú)線通信單元110、用戶輸入單元120、輸出單元130、存儲(chǔ)器140、接口單元150、控制器160和電源單元170等等。圖1示出了具有各種組件的客戶端,但是應(yīng)理解的是,并不要求實(shí)施所有示出的組件??梢蕴娲貙?shí)施更多或更少的組件。將在下面詳細(xì)描述客戶端的元件。
[0057]無(wú)線通信單元110通常包括一個(gè)或多個(gè)組件,其允許客戶端100與無(wú)線通信系統(tǒng)或網(wǎng)絡(luò)之間的無(wú)線電通信,將客戶端100中需要升級(jí)的應(yīng)用程序參數(shù)信息發(fā)送出去。例如,無(wú)線通信單元110可以包括移動(dòng)通信模塊111、無(wú)線互聯(lián)網(wǎng)模塊112、短程通信模塊113中的至少一個(gè),客戶端通過(guò)無(wú)線通信單元110將客戶端100上需要進(jìn)行升級(jí)處理的應(yīng)用程序的相關(guān)信息以無(wú)線信號(hào)的形式發(fā)送至服務(wù)器上,再有服務(wù)器根據(jù)客戶端發(fā)送的內(nèi)容進(jìn)行查詢處理,獲取升級(jí)包。
[0058]所述客戶端100具體通過(guò)無(wú)線通信單元110中的移動(dòng)通信模塊111將客戶端上的應(yīng)用程序參數(shù)信息轉(zhuǎn)換成無(wú)線電信號(hào)發(fā)送到服務(wù)器基站、外部網(wǎng)絡(luò)接入終端以及服務(wù)器中的至少一個(gè)無(wú)線電信號(hào)的接收終端,所述服務(wù)器基站可以為移動(dòng)通信互聯(lián)網(wǎng)系統(tǒng)中的某個(gè)接入點(diǎn)、節(jié)點(diǎn)B等等。這樣的無(wú)線電信號(hào)可以包括應(yīng)用程序參數(shù)轉(zhuǎn)換成的語(yǔ)音信號(hào)、文本消息等等各種類型的數(shù)據(jù)信號(hào)。
[0059]無(wú)線互聯(lián)網(wǎng)模塊112支持客戶端的無(wú)線互聯(lián)網(wǎng)接入。該模塊可以內(nèi)部或外部地耦接到終端。該模塊所涉及的無(wú)線互聯(lián)網(wǎng)接入技術(shù)可以包括WLAN(無(wú)線LAN) (W1-Fi)、Wibro(無(wú)線寬帶)、Wimax(全球微波互聯(lián)接入)、HSDPA(高速下行鏈路分組接入)等等。客戶端100在將應(yīng)用程序參數(shù)信息發(fā)送給服務(wù)器時(shí),可以直接通過(guò)無(wú)線互聯(lián)網(wǎng)模塊112與服務(wù)器實(shí)現(xiàn)網(wǎng)絡(luò)傳輸連接,然后在將應(yīng)用程序參數(shù)信息通過(guò)互聯(lián)網(wǎng)傳輸至服務(wù)器。
[0060]短程通信模塊113是用于支持短程通信的模塊。短程通信技術(shù)的一些示例包括藍(lán)牙?、射頻識(shí)別(RFID)、紅外數(shù)據(jù)協(xié)會(huì)(IrDA)、超寬帶(UWB)、紫蜂?等等。當(dāng)客戶端與服務(wù)器之間是通過(guò)藍(lán)牙、射頻等通信方式進(jìn)行通信時(shí),客戶端將通過(guò)短程通信模塊113將應(yīng)用程序參數(shù)轉(zhuǎn)換成無(wú)線射頻信號(hào),然后在由短程通信模塊113將其無(wú)線射頻信號(hào)發(fā)送至服務(wù)器上。
[0061]在客戶端將應(yīng)用程序參數(shù)信息發(fā)送出去之前,所述客戶端需要通過(guò)用戶輸入單元120根據(jù)用戶輸入的命令生成對(duì)應(yīng)格式的輸入數(shù)據(jù)以控制客戶端的各種操作。用戶輸入單元120允許用戶輸入各種類型的信息,并且可以包括鍵盤(pán)、鍋?zhàn)衅⒂|摸板(例如,檢測(cè)由于被接觸而導(dǎo)致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。特別地,當(dāng)觸摸板以層的形式疊加在顯示單元131上時(shí),可以形成觸摸屏??蛇x的,在本發(fā)明中,用戶通過(guò)用戶輸入單元120將需要升級(jí)的應(yīng)用程序信息輸入到客戶端中,客戶端根據(jù)輸入的應(yīng)用程序信息檢測(cè)客戶端上對(duì)應(yīng)的版本號(hào)和校驗(yàn)碼等等的參數(shù)信息。
[0062]接口單元150用作至少一個(gè)外部裝置與客戶端100連接可以通過(guò)的接口。例如,夕卜部裝置可以包括有線或無(wú)線數(shù)據(jù)端口、存儲(chǔ)卡端口、用于連接具有識(shí)別模塊的裝置的端口等等。識(shí)別模塊可以是存儲(chǔ)用于驗(yàn)證用戶使用客戶端100的各種信息并且可以包括用戶識(shí)別模塊(ΙΠΜ)、客戶識(shí)別模塊(SIM)、通用客戶識(shí)別模塊(USIM)等等。另外,具有識(shí)別模塊的裝置(下面稱為“識(shí)別裝置”)可以采取智能卡的形式,因此,識(shí)別裝置可以經(jīng)由端口或其它連接裝置與客戶端100連接。接口單元150可以用于接收來(lái)自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)娇蛻舳?00內(nèi)的一個(gè)或多個(gè)元件或者可以用于在客戶端和外部裝置之間傳輸數(shù)據(jù),例如,本發(fā)明中的當(dāng)服務(wù)器查詢獲取到對(duì)應(yīng)的應(yīng)用程序的升級(jí)包后,需要通過(guò)與客戶端連接的外部裝置或接口將所述升級(jí)包發(fā)送回給客戶端,客戶端再根據(jù)升級(jí)包升級(jí)對(duì)應(yīng)的應(yīng)用程序。
[0063]另外,當(dāng)客戶端100與外部底座連接時(shí),接口單元150可以用作允許通過(guò)其將電力從底座提供到客戶端100的路徑或者可以用作允許從底座輸入的各種命令信號(hào)通過(guò)其傳輸?shù)娇蛻舳说穆窂健牡鬃斎氲母鞣N命令信號(hào)或電力可以用作用于識(shí)別客戶端是否準(zhǔn)確地安裝在底座上的信號(hào)。輸出單元150被構(gòu)造為以視覺(jué)、音頻和/或觸覺(jué)方式提供輸出信號(hào)(例如,音頻信號(hào)、視頻信號(hào)、警報(bào)信號(hào)、振動(dòng)信號(hào)等等)。輸出單元130可以包括顯示單元131等等。
[0064]顯示單元131可以顯示在客戶端100中處理的信息。例如,當(dāng)客戶端100處于升級(jí)應(yīng)用程序時(shí),顯示單元131可以顯示進(jìn)行應(yīng)用程序升級(jí)的相關(guān)的用戶界面(UI)或圖形用戶界面(⑶I)。
[0065]同時(shí),當(dāng)顯示單元131和觸摸板以層的形式彼此疊加以形成觸摸屏?xí)r,顯示單元131可以用作輸入裝置和輸出裝置,通過(guò)輸入裝置將客戶端100中需要進(jìn)行升級(jí)的應(yīng)用程序信息輸入客戶端中,客戶端再檢測(cè)查詢更詳細(xì)的參數(shù)信息通過(guò)輸出裝置輸出給服務(wù)器。顯示單元131可以包括液晶顯示器(IXD)、柔性顯示器、三維(3D)顯示器等等中的至少一種。這些顯示器中的一些可以被構(gòu)造為透明狀以允許用戶從外部觀看,這可以稱為透明顯示器,典型的透明顯示器可以例如為T(mén)OLED(透明有機(jī)發(fā)光二極管)顯示器等等。根據(jù)特定想要的實(shí)施方式,客戶端100可以包括兩個(gè)或更多顯示單元(或其它顯示裝置),例如,客戶端可以包括外部顯示單元(未示出)和內(nèi)部顯示單元(未示出)。觸摸屏可用于檢測(cè)觸摸輸入壓力以及觸摸輸入位置和觸摸輸入面積來(lái)將相關(guān)的信息輸入到客戶端中。
[0066]存儲(chǔ)器140可以存儲(chǔ)由控制器160執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時(shí)地存儲(chǔ)己經(jīng)輸出或?qū)⒁敵龅臄?shù)據(jù)(例如,電話簿、消息、靜態(tài)圖像、視頻等等)。
[0067]存儲(chǔ)器140可以包括至少一種類型的存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)包括閃存、硬盤(pán)、多媒體卡、卡型存儲(chǔ)器(例如,SD或DX存儲(chǔ)器等等)、隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SRAM)、只讀存儲(chǔ)器(R0M)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、可編程只讀存儲(chǔ)器(PR0M)、磁性存儲(chǔ)器、磁盤(pán)、光盤(pán)等等。而且,客戶端100可以與通過(guò)網(wǎng)絡(luò)連接執(zhí)行存儲(chǔ)器140的存儲(chǔ)功能的網(wǎng)絡(luò)存儲(chǔ)裝置協(xié)作,在本發(fā)明中,客戶端可以通過(guò)存儲(chǔ)器140將客戶端上安裝的應(yīng)用程序的參數(shù)信息存儲(chǔ)在存儲(chǔ)器140中,若客戶端需要對(duì)應(yīng)用程序進(jìn)行升級(jí)時(shí),客戶端可以直接從存儲(chǔ)器140中查詢獲取到對(duì)應(yīng)的應(yīng)用程序的參數(shù)信息,將其發(fā)送至服務(wù)器中檢測(cè)升級(jí)包。
[0068]控制器160通??刂瓶蛻舳说目傮w操作。例如,控制器160執(zhí)行數(shù)據(jù)通信、視頻通話等等相關(guān)的控制和處理??刂破?60可以執(zhí)行模式識(shí)別處理,以將在觸摸屏上執(zhí)行的手寫(xiě)輸入或者圖片繪制輸入識(shí)別為字符或圖像,同時(shí)根據(jù)輸入的信息將客戶端上需要升級(jí)的應(yīng)用程序的參數(shù)信息查詢出來(lái)。
[0069]電源單元170在控制器160的控制下接收外部電力或內(nèi)部電力并且提供操作各元件和組件所需的適當(dāng)?shù)碾娏Α?br>[0070]這里描述的各種實(shí)施方式可以以使用例如計(jì)算機(jī)軟件、硬件或其任何組合的計(jì)算機(jī)可讀介質(zhì)來(lái)實(shí)施。對(duì)于硬件實(shí)施,這里描述的實(shí)施方式可以通過(guò)使用特定用途集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設(shè)計(jì)為執(zhí)行這里描述的功能的電子單元中的至少一種來(lái)實(shí)施,在一些情況下,這樣的實(shí)施方式可以在控制器160中實(shí)施。對(duì)于軟件實(shí)施,諸如過(guò)程或功能的實(shí)施方式可以與允許執(zhí)行至少一種功能或操作的單獨(dú)的軟件模塊來(lái)實(shí)施。軟件代碼可以由以任何適當(dāng)?shù)木幊陶Z(yǔ)言編寫(xiě)的軟件應(yīng)用程序(或程序)來(lái)實(shí)施,軟件代碼可以存儲(chǔ)在存儲(chǔ)器140中并且由控制器160執(zhí)行,也可以通過(guò)客戶端將應(yīng)用程序的相關(guān)信息存儲(chǔ)在存儲(chǔ)器140中,再由控制器160控制客戶端讀取對(duì)應(yīng)的應(yīng)用程序的參數(shù)信息。
[0071]至此,己經(jīng)按照其功能描述了客戶端。下面,為了簡(jiǎn)要起見(jiàn),將描述諸如折疊型、直板型、擺動(dòng)型、滑動(dòng)型客戶端等等的各種類型的客戶端,其中以滑動(dòng)型客戶端作為示例。但是本發(fā)明能夠應(yīng)用于任何類型的客戶端,并且不限于滑動(dòng)型客戶端。
[0072]如圖1中所示的客戶端100可以被構(gòu)造為利用經(jīng)由幀或分組發(fā)送數(shù)據(jù)的諸如有線和無(wú)線通信系統(tǒng)以及基于衛(wèi)星的通信系統(tǒng)來(lái)操作。
[0073]請(qǐng)參考圖2,圖2描述的是根據(jù)本發(fā)明的客戶端能夠操作的通信系統(tǒng)。
[0074]這樣的通信系統(tǒng)可以使用不同的空中接口和/或物理層。例如,由通信系統(tǒng)使用的空中接口包括例如頻分多址(FDMA)、時(shí)分多址(TDMA)、碼分多址(CDMA)和通用移動(dòng)通信系統(tǒng)(UMTS)(特別地,長(zhǎng)期演進(jìn)(LTE))、全球移動(dòng)通信系統(tǒng)(GSM)等等。作為非限制性示例,下面的描述涉及CDMA通信系統(tǒng),但是這樣的教導(dǎo)同樣適用于其它類型的系統(tǒng)。
[0075]如圖2所示,CDMA無(wú)線通信系統(tǒng)可以包括多個(gè)客戶端100、多個(gè)基站(BS)270、基站控制器(BSC)275和移動(dòng)交換中心(MSCUSOJSCSSO被構(gòu)造為與公共電話交換網(wǎng)絡(luò)(PSTN)290形成接口。MSC280還被構(gòu)造為與可以經(jīng)由回程線路耦接到基站270的BSC275形成接口?;爻叹€路可以根據(jù)若干己知的接口中的任一種來(lái)構(gòu)造,所述接口包括例如E1/T1、ATM,IP、PPP、幀中繼、HDSL、ADSL或xDSL。將理解的是,如圖2中所示的系統(tǒng)可以包括多個(gè)BSC275。
[0076]每個(gè)BS270可以服務(wù)一個(gè)或多個(gè)分區(qū)(或區(qū)域),由多向天線或指向特定方向的天線覆蓋的每個(gè)分區(qū)放射狀地遠(yuǎn)離BS270。或者,每個(gè)分區(qū)可以由用于分集接收的兩個(gè)或更多天線覆蓋。每個(gè)BS270可以被構(gòu)造為支持多個(gè)頻率分配,并且每個(gè)頻率分配具有特定頻譜(例如,1.25MHz,5MHz 等等)。
[0077]分區(qū)與頻率分配的交叉可以被稱為CDMA信道。BS270也可以被稱為基站收發(fā)器子系統(tǒng)(BTS)或者其它等效術(shù)語(yǔ)。在這樣的情況下,術(shù)語(yǔ)"基站"可以用于籠統(tǒng)地表示單個(gè)BSC275和至少一個(gè)BS270?;疽部梢员环Q為〃蜂窩站〃?;蛘?,特定BS270的各分區(qū)可以被稱為多個(gè)蜂窩站。
[0078]如圖2中所示,射頻發(fā)射器(RF)295將射頻無(wú)線信號(hào)發(fā)送給在系統(tǒng)內(nèi)操作的客戶端100。如圖1中所示的移動(dòng)通信模塊111被設(shè)置在客戶端100處以接收由RF295發(fā)送的射頻無(wú)線信號(hào)。在圖2中,示出了幾個(gè)全球定位系統(tǒng)(GPS)衛(wèi)星300。衛(wèi)星300幫助定位多個(gè)客戶端100中的至少一個(gè)。
[0079]在圖2中,描繪了多個(gè)衛(wèi)星300,但是理解的是,可以利用任何數(shù)目的衛(wèi)星獲得有用的定位信息。假如圖1中所示的客戶端設(shè)置有GPS模塊時(shí),可以與衛(wèi)星300配合以獲得用戶想要或者目前所處的位置信息。也可以使用該衛(wèi)星300跟蹤客戶端的位置。另外,至少一個(gè)GPS衛(wèi)星300可以選擇性地或者額外地處理衛(wèi)星DMB傳輸。
[0080]作為無(wú)線通信系統(tǒng)的一個(gè)典型操作,BS270接收來(lái)自各種客戶端100的反向鏈路信號(hào)??蛻舳?00通常參與消息收發(fā)和其它類型的通信。特定基站270接收的每個(gè)反向鏈路信號(hào)被在特定BS270內(nèi)進(jìn)行處理。獲得的數(shù)據(jù)被轉(zhuǎn)發(fā)給相關(guān)的BSC275 ASC提供通話資源分配和包括BS270之間的軟切換過(guò)程的協(xié)調(diào)的移動(dòng)管理功能。BSC275還將接收到的數(shù)據(jù)路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務(wù)。類似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應(yīng)地控制BS270以將正向鏈路信號(hào)發(fā)送到客戶端 100。
[0081]基于上述移動(dòng)終端的硬件結(jié)構(gòu),提出本發(fā)明的服務(wù)器,該服務(wù)器包括接收模塊接收客戶端發(fā)送的應(yīng)用程序的參數(shù)信息,獲取模塊根據(jù)該參數(shù)信息獲取對(duì)應(yīng)的升級(jí)包,最后通過(guò)發(fā)送模塊將升級(jí)包發(fā)送給客戶端進(jìn)行升級(jí)處理,實(shí)現(xiàn)了應(yīng)用程序的升級(jí)檢測(cè),使得所述服務(wù)器在檢測(cè)需要升級(jí)的應(yīng)用程序的最新升級(jí)包時(shí),能快速準(zhǔn)確地獲取到所述應(yīng)用程序的升級(jí)包,實(shí)現(xiàn)了客戶端能及時(shí)獲取到應(yīng)用程序的升級(jí)信息,通過(guò)客戶端上的應(yīng)用程序自身的信息獲取升級(jí)包,既提高了對(duì)應(yīng)用程序升級(jí)信息的查詢效率,又保證了查詢的正確性。
[0082]基于上述客戶端硬件結(jié)構(gòu)以及通信系統(tǒng),提出本發(fā)明方法和裝置的各個(gè)實(shí)施例。
[0083]第一實(shí)施例:
[0084]如圖3所示,本發(fā)明第一實(shí)施例提出一種服務(wù)器的模塊示意圖,所述服務(wù)器用于為客戶端提供應(yīng)用程序升級(jí)服務(wù)的服務(wù)器,所述服務(wù)器30包括依次連接的接收模塊301、獲取模塊302和發(fā)送模塊303,其中:
[0085]接收模塊301,用于接收客戶端發(fā)送的應(yīng)用程序參數(shù)信息。
[0086]在本實(shí)施例中,當(dāng)所述客戶端觸發(fā)發(fā)送應(yīng)用程序的參數(shù)信息后,所述服務(wù)器中的接收模塊301開(kāi)始接收來(lái)自與所述客戶端發(fā)送過(guò)來(lái)的應(yīng)用程序參數(shù)信息,所述參數(shù)信息包括有所述應(yīng)用程序的包名、所述客戶端當(dāng)前的應(yīng)用程序的版本號(hào)或者所述客戶端所有安裝的應(yīng)用程序的版本號(hào)和所述應(yīng)用程序?qū)?yīng)的校驗(yàn)碼。可以理解的是,本發(fā)明各個(gè)實(shí)施例中的數(shù)據(jù)庫(kù)可以為Redis緩存數(shù)據(jù)庫(kù),數(shù)據(jù)表可以為對(duì)應(yīng)的Redis哈希表,第三方應(yīng)用供應(yīng)商也可是Redis緩存數(shù)據(jù)庫(kù)。
[0087]可選的,客戶端100從自身的存儲(chǔ)器140中獲取到需要升級(jí)的應(yīng)用程序的參數(shù)信息,并通過(guò)自身的無(wú)線通信單元110將需要升級(jí)的應(yīng)用程序參數(shù)信息發(fā)送給服務(wù)器30的接收模塊301,所述接收模塊301接收到客戶端100發(fā)送過(guò)來(lái)的參數(shù)信息后,觸發(fā)服務(wù)器30進(jìn)行查詢等操作。
[0088]獲取模塊302,用于根據(jù)所述應(yīng)用程序的包名獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)所述應(yīng)用程序ID從第三方應(yīng)用供應(yīng)商中獲取與所述應(yīng)用程序?qū)?yīng)的升級(jí)包。
[0089]在本實(shí)施例中,所述獲取模塊302在接收模塊301獲取到應(yīng)用程序的參數(shù)信息后,所述獲取模塊302具體的根據(jù)所述應(yīng)用程序的包名到內(nèi)存哈希表中查詢與所述應(yīng)用程序?qū)?yīng)的應(yīng)用程序ID,然后根據(jù)所述應(yīng)用程序ID在數(shù)據(jù)庫(kù)哈希表中查詢對(duì)應(yīng)的應(yīng)用程序的版本號(hào),最后,根據(jù)所述查詢到的版本號(hào)以及校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取最新版本的應(yīng)用程序的升級(jí)包;在數(shù)據(jù)庫(kù)哈希表中查詢的過(guò)程中,若查詢到對(duì)應(yīng)的版本號(hào)比所述應(yīng)用程序當(dāng)前版本號(hào)高的,則說(shuō)明查詢到的該應(yīng)用程序的版本號(hào)是最新的版本號(hào),反之則說(shuō)明該應(yīng)用程序在當(dāng)前時(shí)間段并不需要更新或者查詢不到新的版本??衫斫獾氖牵鲜龅墨@取模塊302具體是通過(guò)應(yīng)用程序ID從Redis哈希表中查詢版本號(hào),根據(jù)所述版本號(hào)以及校驗(yàn)碼到Redis緩存數(shù)據(jù)庫(kù)中獲取升級(jí)包。
[0090]在本實(shí)施例中,除了可以直接從第三方應(yīng)用供應(yīng)商中獲取升級(jí)包之外,還可以直接從數(shù)據(jù)庫(kù)中獲取升級(jí)包,該數(shù)據(jù)庫(kù)實(shí)現(xiàn)有的memcached數(shù)據(jù)庫(kù),但是由于從數(shù)據(jù)庫(kù)中獲取不存在的升級(jí)包時(shí),需要進(jìn)行等待數(shù)據(jù)庫(kù)的自動(dòng)刷新,為了解決該問(wèn)題,本實(shí)施例通過(guò)所述獲取模塊302判斷數(shù)據(jù)庫(kù)中對(duì)應(yīng)的應(yīng)用程序的版本號(hào)是否大于客戶端上對(duì)應(yīng)的應(yīng)用程序的當(dāng)前版本號(hào),若是,則直接從數(shù)據(jù)庫(kù)調(diào)用升級(jí)包對(duì)應(yīng)用程序進(jìn)行升級(jí)處理,若否,則從第三方應(yīng)用供應(yīng)商中獲取升級(jí)包對(duì)應(yīng)用程序進(jìn)行升級(jí)處理;當(dāng)數(shù)據(jù)庫(kù)中存在新版本的升級(jí)包時(shí),可以直接從數(shù)據(jù)庫(kù)中獲取,這時(shí)可以理解的是,第三方應(yīng)用供應(yīng)商就是Redis緩存數(shù)據(jù)庫(kù),使得服務(wù)器可以選擇的先從數(shù)據(jù)庫(kù)中獲取還是直接從第三方應(yīng)用供應(yīng)商中獲取,從而提高了對(duì)應(yīng)用程序升級(jí)查詢時(shí)的查詢性能以及效率。
[0091]發(fā)送模塊303,用于將所述升級(jí)包發(fā)送至所述開(kāi)戶端進(jìn)行升級(jí)處理??蛇x的,所述發(fā)送模塊303與客戶端100的無(wú)線通信單元110建立無(wú)線通信或者互聯(lián)網(wǎng)通信,所述發(fā)送模塊303將所述升級(jí)包通過(guò)無(wú)線通信信道或者互聯(lián)網(wǎng)發(fā)送至庫(kù)護(hù)短100的無(wú)線通信單元110上。
[0092]第二實(shí)施例:
[0093]如圖4所示,為本發(fā)明實(shí)施例提供的服務(wù)器的模塊示意圖,在本實(shí)施例中,所述獲取模塊302包括查詢子模塊3021和獲取子模塊3022;
[0094]查詢子模塊3021用于根據(jù)所述應(yīng)用程序的包名查詢所述應(yīng)用程序ID,其中,在本實(shí)施例中,在查詢應(yīng)用程序ID時(shí),具體的是所述查詢子模塊3021是從內(nèi)存哈表中查詢,所述內(nèi)存哈希表是用于存儲(chǔ)有應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系的關(guān)系表,在實(shí)際的開(kāi)發(fā)過(guò)程中,通過(guò)哈希表記錄查詢應(yīng)用程序ID是完全可以的,因?yàn)槠湔加玫膬?nèi)存是服務(wù)器或者客戶端存儲(chǔ)器完全可以接受的,并且在內(nèi)存哈希表中的存儲(chǔ)的對(duì)應(yīng)關(guān)系可以認(rèn)為是固定的在該哈希表中其應(yīng)用程序的包名與應(yīng)用程序ID的關(guān)系唯一的;進(jìn)一步的,在查詢到應(yīng)用程序ID后,再根據(jù)應(yīng)用程序ID在數(shù)據(jù)庫(kù)哈希表(即是Redis哈希表)中查詢是否存在與所述應(yīng)用程序?qū)?yīng)的新版本號(hào),若存在,所述獲取子模塊3022根據(jù)所述新版本號(hào)和校驗(yàn)碼到第三方應(yīng)用供應(yīng)商中獲取升級(jí)包,可選的,具體的是從Redis緩存數(shù)據(jù)庫(kù)中獲取所述應(yīng)用程序的升級(jí)包。
[0095]在本實(shí)施例中,所述查詢子模塊3021具體用于根據(jù)所述應(yīng)用程序的包名查詢存于所述服務(wù)器30上的內(nèi)存哈希表中是否存在與所述包名對(duì)應(yīng)的應(yīng)用程序ID;若不存在,則所述查詢子模塊3021繼續(xù)從數(shù)據(jù)庫(kù)中查詢,若存在,則獲取所述應(yīng)用程序ID。
[0096]為了實(shí)現(xiàn)內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID之間對(duì)應(yīng)關(guān)系能實(shí)時(shí)更新,因?yàn)閮?nèi)存哈希表中存儲(chǔ)的內(nèi)容是有限的,對(duì)于不常用的或者不用的應(yīng)用程序的信息會(huì)進(jìn)行適當(dāng)?shù)那宄?,空出空間存儲(chǔ)一些常用的應(yīng)用程序的信息,因此,本實(shí)施例提供的服務(wù)器30還設(shè)置了設(shè)置模塊305,所述設(shè)置模塊305用于設(shè)置時(shí)間戳;所述時(shí)間戳用于從所述數(shù)據(jù)庫(kù)中獲取應(yīng)用程序ID更新內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系。值得說(shuō)明的是設(shè)置時(shí)間戳就是為了能定時(shí)自動(dòng)更新內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID的對(duì)應(yīng)關(guān)系。
[0097]在本實(shí)施例中,在所述查詢子模塊3021查詢內(nèi)存哈希表中存在與所述包名對(duì)應(yīng)的應(yīng)用程序ID之后,還可以對(duì)所述應(yīng)用程序ID進(jìn)行判斷,判斷所述應(yīng)用程序ID是否大于O;若否,通過(guò)判斷所述時(shí)間戳的到來(lái)進(jìn)行自動(dòng)更新所述應(yīng)用程序的包名對(duì)應(yīng)的應(yīng)用程序ID的值。
[0098]若所述查詢子模塊3021查詢數(shù)據(jù)庫(kù)中不存在與所述包名對(duì)應(yīng)的應(yīng)用程序ID,所述設(shè)置模塊305將所述應(yīng)用程序ID置為0,所述設(shè)置模塊305設(shè)置所述時(shí)間戳用于更新所述應(yīng)用程序ID。另外設(shè)置所述時(shí)間戳也方便了在下次進(jìn)行應(yīng)用程序ID查詢時(shí),通過(guò)判斷該時(shí)間戳是否超時(shí),若超時(shí),則直接到數(shù)據(jù)庫(kù)中查詢即可,避免了通過(guò)等待第一時(shí)間戳自動(dòng)更新會(huì)造成時(shí)間過(guò)長(zhǎng)的情況
[0099]在本實(shí)施例中,所述升級(jí)包包括所述應(yīng)用程序的當(dāng)前版本與新版本的差分升級(jí)包和完整升級(jí)包;所述比較模塊304將所述應(yīng)用程序的當(dāng)前版本號(hào)與所述新版本號(hào)進(jìn)行比較時(shí),若所述新版本號(hào)比所述當(dāng)前版本號(hào)高時(shí),所述獲取子模塊根據(jù)所述應(yīng)用程序的當(dāng)前版本號(hào)以及校驗(yàn)碼從第三方應(yīng)用供應(yīng)商(即是Redis數(shù)據(jù)庫(kù))中獲取所述應(yīng)用程序的所述差分升級(jí)包的信息,通過(guò)所述發(fā)送模塊將所述差分升級(jí)包發(fā)送至所述客戶端進(jìn)行升級(jí)處理;或者,所述獲取子模塊根據(jù)所述應(yīng)用程序的新版本號(hào)以及校驗(yàn)碼獲取所述應(yīng)用程序最新的完整升級(jí)包的信息,通過(guò)所述發(fā)送模塊將所述最新的完整升級(jí)包發(fā)送至所述客戶端進(jìn)行升級(jí)處理。
[0100]在本實(shí)施例中,當(dāng)所述客戶端存在多個(gè)應(yīng)用程序需要同時(shí)進(jìn)行升級(jí)處理時(shí),所述客戶端將多個(gè)應(yīng)用程序的參數(shù)信息發(fā)送至所述服務(wù)器30,所述接收模塊301接收多個(gè)應(yīng)用程序參數(shù)信息,所述查詢子模塊3021根據(jù)接收的多個(gè)應(yīng)用程序ID和版本號(hào)依次在內(nèi)存哈希表和Redis緩存數(shù)據(jù)庫(kù)中查詢,然后根據(jù)查詢的結(jié)果以及多個(gè)應(yīng)用程序的校驗(yàn)碼獲取各應(yīng)用程序?qū)?yīng)的所述升級(jí)包,若所述比較校驗(yàn)碼一致,則獲取所述升級(jí)包發(fā)送至所述客戶端進(jìn)行升級(jí)處理。這樣,既能保證查詢的性能,又能保證查詢的正確性。
[0101]在本實(shí)施例中,所述查詢子模塊3021還可以將多個(gè)應(yīng)用程序ID和版本號(hào)作為一個(gè)集合進(jìn)行查詢,具體的在獲取差分升級(jí)包時(shí),將多個(gè)應(yīng)用程序ID與版本號(hào)作為一個(gè)集合進(jìn)行查詢,在獲取差分升級(jí)包時(shí)也一起同時(shí)獲取多個(gè),這樣可以通過(guò)減少網(wǎng)絡(luò)的請(qǐng)求次數(shù)來(lái)提高查詢的性能,也即是實(shí)現(xiàn)Redis哈希表的多鍵查詢功能。
[0102]第三實(shí)施例:
[0103]參照?qǐng)D5,圖5為本實(shí)施例提供的應(yīng)用程序升級(jí)包檢測(cè)方法流程圖,該方法包括以下步驟:
[0104]S501,服務(wù)器接收客戶端發(fā)送的應(yīng)用程序參數(shù)信息;
[0105]在本實(shí)施例中,服務(wù)器檢測(cè)應(yīng)用程序的升級(jí)信息時(shí),客戶端傳給服務(wù)器的參數(shù)信息包括應(yīng)用程序的包名、當(dāng)前安裝應(yīng)用程序的版本號(hào)與其校驗(yàn)碼。
[0106]值得說(shuō)明的是,這里的參數(shù)信息可以是通過(guò)一個(gè)存儲(chǔ)器進(jìn)行統(tǒng)一的存儲(chǔ),也可以分開(kāi)存儲(chǔ),在本實(shí)施例中,參數(shù)信息均可存儲(chǔ)在客戶端上的存儲(chǔ)器中,然后客戶端在從存儲(chǔ)器中查詢出對(duì)應(yīng)的應(yīng)用程序的參數(shù)信息發(fā)送至服務(wù)器。
[0107]S502,根據(jù)應(yīng)用程序的包名獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)應(yīng)用程序ID從第三方應(yīng)用供應(yīng)商中獲取與應(yīng)用程序?qū)?yīng)的升級(jí)包;
[0108]在本實(shí)施例中,服務(wù)器首先要根據(jù)應(yīng)用程序的包名獲取應(yīng)用程序ID,然后再去獲取該應(yīng)用程序下最新版本的版本號(hào),如果版本號(hào)比客戶端傳入的版本號(hào)高,則表示有更新版本。這時(shí)候,再用當(dāng)前安裝版本的版本號(hào)及檢驗(yàn)碼等信息去查詢差分升級(jí)包的信息;如果差分升級(jí)包不存在,則去獲取應(yīng)用最新完整包的信息。
[0109]具體的,根據(jù)應(yīng)用程序的包名到內(nèi)存哈希表中查詢是否存在與應(yīng)用程序的包名相對(duì)應(yīng)的應(yīng)用程序ID;若內(nèi)存哈希表中不存在,根據(jù)應(yīng)用程序的包名到數(shù)據(jù)庫(kù)中查詢是否存在與應(yīng)用程序的包名相對(duì)應(yīng)的應(yīng)用程序ID;根據(jù)應(yīng)用程序ID到數(shù)據(jù)庫(kù)哈希表中查詢應(yīng)用程序的新版本號(hào);根據(jù)新版本號(hào)以及校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取應(yīng)用程序的升級(jí)包。
[0110]進(jìn)一步的,在本實(shí)施例中,應(yīng)用程序ID通過(guò)內(nèi)存哈希表來(lái)查詢獲取,在內(nèi)存哈希表中存儲(chǔ)有應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系,通過(guò)查詢?cè)搶?duì)應(yīng)關(guān)系即可獲取到應(yīng)用程序?qū)?yīng)的應(yīng)用程序ID。
[0111]在本實(shí)施例中,方法還包括:設(shè)置時(shí)間戳;時(shí)間戳用于從數(shù)據(jù)庫(kù)中獲取應(yīng)用程序ID更新內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系。內(nèi)存哈希表是用于存儲(chǔ)有應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系的關(guān)系表,在實(shí)際的開(kāi)發(fā)過(guò)程中,通過(guò)哈希表記錄查詢應(yīng)用程序ID是完全可以的,因?yàn)槠湔加玫膬?nèi)存是服務(wù)器或者客戶端存儲(chǔ)器完全可以接受的,并且在內(nèi)存哈希表中的存儲(chǔ)的對(duì)應(yīng)關(guān)系可以認(rèn)為是固定的在該哈希表中其應(yīng)用程序的包名與應(yīng)用程序ID的關(guān)系唯一的;因此,通過(guò)設(shè)置時(shí)間戳來(lái)實(shí)時(shí)更新獲取客戶端應(yīng)用程序的包名與應(yīng)用程序ID的對(duì)應(yīng)關(guān)系,使得在進(jìn)行升級(jí)查詢時(shí),能快速地準(zhǔn)確查詢到對(duì)應(yīng)的應(yīng)用程序升級(jí)包信息。
[0112]S503,將升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。
[0113]在本實(shí)施例提供的升級(jí)包檢測(cè)方法中,獲取的升級(jí)包具體包括兩種類型的升級(jí)包,一種是差分升級(jí)包,該差分升級(jí)包指的是由應(yīng)用程序的當(dāng)前版本與獲取到的最新版本之間的差異部分所組成的升級(jí)包;另一種是完整的升級(jí)包;服務(wù)器在獲取升級(jí)包之前還包括:將應(yīng)用程序的當(dāng)前版本號(hào)與所述新版本號(hào)進(jìn)行比較。
[0114]若新版本號(hào)比當(dāng)前版本號(hào)高時(shí),根據(jù)應(yīng)用程序的當(dāng)前版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取所述差分升級(jí)包,將差分升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。
[0115]此外,服務(wù)器還可以根據(jù)應(yīng)用程序的新版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取應(yīng)用程序最新的完整升級(jí)包,將完整升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。
[0116]在本實(shí)施例中,方法還包括:在從第三方應(yīng)用商店中獲取升級(jí)包之前,判斷數(shù)據(jù)庫(kù)中對(duì)應(yīng)的應(yīng)用程序的版本號(hào)是否大于客戶端上對(duì)應(yīng)的應(yīng)用程序的當(dāng)前版本號(hào),若是,則直接從數(shù)據(jù)庫(kù)調(diào)用升級(jí)包對(duì)應(yīng)用程序進(jìn)行升級(jí)處理,若否,則從第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)用程序進(jìn)行升級(jí)處理。
[0117]第四實(shí)施例:
[0118]如圖6所示,為本實(shí)施例提供的應(yīng)用程序升級(jí)包檢測(cè)方法流程圖,其包括如下步驟:
[0119]S601,檢測(cè)客戶端發(fā)送的應(yīng)用程序參數(shù)信息;參數(shù)信息包括應(yīng)用程序的包名、當(dāng)前安裝應(yīng)用程序的版本號(hào)與其校驗(yàn)碼等。
[0120]S602,對(duì)應(yīng)用程序參數(shù)信息進(jìn)行解析,得到應(yīng)用程序的包名、版本號(hào)和校驗(yàn)碼;
[0121 ] S603,根據(jù)應(yīng)用程序的包名獲取對(duì)應(yīng)的應(yīng)用程序ID;
[0122]S604,根據(jù)應(yīng)用程序ID獲取應(yīng)用程序的最新版本號(hào);
[0123]S605,判斷最新版本號(hào)是否大于客戶端輸入的應(yīng)用程序的當(dāng)前版本號(hào);若是,則執(zhí)行步驟S606,否則,查詢結(jié)束;
[0124]S606,根據(jù)應(yīng)用程序的最新版本號(hào)、ID和校驗(yàn)碼獲取對(duì)應(yīng)的差分升級(jí)包;
[0125]S607,判斷差分升級(jí)包是否存在,若不存在,執(zhí)行步驟S608;反之,執(zhí)行步驟S609;
[0126]在本實(shí)施例中,升級(jí)包具體包括應(yīng)用程序的當(dāng)前版本與新版本的差分升級(jí)包和完整升級(jí)包;差分升級(jí)包為應(yīng)用程序的當(dāng)前版本與新版本之間的差異的功能部分所組成的升級(jí)安裝包。
[0127]若查詢Redis哈希表中存在應(yīng)用程序的新版本號(hào)時(shí),將應(yīng)用程序的當(dāng)前版本號(hào)與新版本號(hào)進(jìn)行比較;
[0128]若新版本號(hào)比當(dāng)前版本號(hào)高時(shí),根據(jù)應(yīng)用程序的當(dāng)前版本號(hào)以及校驗(yàn)碼從Redis數(shù)據(jù)庫(kù)中獲取應(yīng)用程序的差分升級(jí)包的信息,將差分升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理;否則,執(zhí)行步驟S608。
[0129]S608,返回獲取完整的最新升級(jí)包信息;
[0130]在本步驟中,在判斷Redis數(shù)據(jù)庫(kù)中不存在差分升級(jí)包時(shí),則執(zhí)行獲取完整升級(jí)包,具體根據(jù)應(yīng)用程序的新版本號(hào)以及校驗(yàn)碼獲取應(yīng)用程序最新完整升級(jí)包的信息,將最新完整升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。
[0131]S609,返回獲取差分升級(jí)包信息;差分升級(jí)包具體為應(yīng)用程序當(dāng)前版本的功能與最新版本之間的差異的功能部分所組成的升級(jí)安裝包。
[0132]S610,更新檢測(cè)結(jié)束。
[0133]在本實(shí)施例中,應(yīng)用程序參數(shù)信息包括應(yīng)用程序的包名、應(yīng)用程序的當(dāng)前版本號(hào)和校驗(yàn)碼;服務(wù)器根據(jù)應(yīng)用程序的包名在內(nèi)存哈希表中查詢是否存在應(yīng)用程序ID,若存在,在判斷應(yīng)用ID是否大于0,若大于,則獲取應(yīng)用程序ID;若小于,則等待判斷時(shí)間戳的到來(lái)進(jìn)行自動(dòng)更新內(nèi)存哈希表中的應(yīng)用程序的包名與應(yīng)用程序ID的對(duì)應(yīng)關(guān)系。
[0134]若服務(wù)器根據(jù)包名查詢內(nèi)存哈希表中不存在對(duì)應(yīng)的應(yīng)用程序ID時(shí),則執(zhí)行從數(shù)據(jù)庫(kù)中查詢,若數(shù)據(jù)庫(kù)中存在,則直接獲取應(yīng)用程序ID,并將應(yīng)用程序ID寫(xiě)入內(nèi)存哈希表與包名對(duì)應(yīng)的應(yīng)用程序ID中;若數(shù)據(jù)庫(kù)中也不存在,則將該應(yīng)用程序ID置為0,并設(shè)置時(shí)間戳來(lái)進(jìn)行更新應(yīng)用程序ID,同時(shí)也為下次查詢時(shí),可以通過(guò)判斷該時(shí)間戳是否超時(shí),若超時(shí),則直接到數(shù)據(jù)庫(kù)中再次查詢。
[0135]如圖7所示,為本實(shí)施例提供的更新內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID的對(duì)應(yīng)關(guān)系的流程圖,其具體步驟包括:
[0136]S701,獲取應(yīng)用程序的包名對(duì)應(yīng)的應(yīng)用程序ID;
[0137]S702,根據(jù)應(yīng)用程序的包名去內(nèi)存哈希表中獲取應(yīng)用程序ID;
[0138]在一些實(shí)施例中,內(nèi)存哈希表存儲(chǔ)的是客戶端中應(yīng)用程序的包名與應(yīng)用程序ID的對(duì)應(yīng)關(guān)系,該對(duì)應(yīng)關(guān)系是唯一的,因?yàn)槊總€(gè)應(yīng)用程序在客戶端中的應(yīng)用程序ID是相同的,不管是版本有多高,例如:內(nèi)存哈希表中存儲(chǔ)有5個(gè)應(yīng)用程序的相關(guān)信息,其中,“QQ”對(duì)應(yīng)的應(yīng)用程序ID是1、“微信”對(duì)應(yīng)的應(yīng)用程序ID是2、“微博”對(duì)應(yīng)的應(yīng)用程序ID是3、“騰訊視頻”對(duì)應(yīng)的應(yīng)用程序ID是4、“搜狐新聞”對(duì)應(yīng)的應(yīng)用程序ID是0,因此,根據(jù)接收到客戶端發(fā)送的包名查詢對(duì)應(yīng)的ID,如,接收的應(yīng)用程序的包名是“QQ”,則到內(nèi)存哈希表中查詢到“QQ”后,根據(jù)其對(duì)應(yīng)關(guān)系直接獲取到“QQ”的應(yīng)用程序ID是I;如果在內(nèi)存哈希表中查詢不到,則到數(shù)據(jù)庫(kù)中查詢,在數(shù)據(jù)庫(kù)中查詢對(duì)應(yīng)的應(yīng)用程序ID的方式與在內(nèi)存哈希表中查詢的方式是一樣的,這里就不在列舉贅述了。
[0139]S703,判斷內(nèi)存哈希表中是否存在應(yīng)用程序ID,若是則執(zhí)行S704,反之,執(zhí)行S707;例如:客戶端發(fā)送的應(yīng)用程序的包名是“土豆視頻”,而通過(guò)查詢內(nèi)存哈希表,其中,并沒(méi)有“土豆視頻”的信息,則表明內(nèi)存哈希表中不存在應(yīng)用程序的包名為“土豆視頻”的應(yīng)用程序ID0
[0140]S704,判斷應(yīng)用程序ID是否大于0,若是,則執(zhí)行S705,否則,執(zhí)行S706;
[0141]可選的,在內(nèi)存哈希表中存儲(chǔ)有應(yīng)用程序包名與應(yīng)用程序ID的對(duì)應(yīng)關(guān)系,但是其可能并沒(méi)有對(duì)應(yīng)的應(yīng)用功能程序ID,例如:在內(nèi)存哈希表中存有“搜狐新聞”的對(duì)應(yīng)關(guān)系,但是其對(duì)應(yīng)的應(yīng)用程序ID是0,其表示的是雖然有對(duì)應(yīng)的關(guān)系但是其應(yīng)用程序ID小于等于O的,這時(shí),則需要等待通過(guò)時(shí)間戳來(lái)進(jìn)行更新,或者直接到數(shù)據(jù)庫(kù)中查詢獲取,即是執(zhí)行步驟S707。
[0142]S705,返回應(yīng)用程序ID并獲?。?br>[0143]S706,判斷時(shí)間戳是否超時(shí)需要刷新應(yīng)用程序ID,若是,則執(zhí)行S707,反之,執(zhí)行S705;進(jìn)一步的,在步驟S704中查詢的“搜狐新聞”對(duì)應(yīng)的應(yīng)用程序ID是O,這時(shí)可以有兩種方式獲取到對(duì)應(yīng)的應(yīng)用程序ID,一是等待時(shí)間戳的到來(lái),服務(wù)器自動(dòng)更新應(yīng)用程序ID,但是若時(shí)間戳超過(guò)了仍然沒(méi)有更新,則執(zhí)行S707,到數(shù)據(jù)庫(kù)中查詢獲取。
[0144]S707,從數(shù)據(jù)庫(kù)中根據(jù)應(yīng)用程序的包名獲取應(yīng)用程序ID;
[0145]S708,判斷是否存在應(yīng)用程序ID,若是,則執(zhí)行S709,反之,執(zhí)行S710;
[0146]S709,將包名作為鍵,應(yīng)用程序ID作為值寫(xiě)入內(nèi)存哈希表中;在內(nèi)存哈希表中查詢不到“土豆視頻”的應(yīng)用程序ID,則跳轉(zhuǎn)到數(shù)據(jù)庫(kù)中查詢,而數(shù)據(jù)庫(kù)中查詢到其對(duì)應(yīng)的應(yīng)用程序ID為5,這時(shí)為了方便下次再次查詢更新升級(jí),將其查詢到的信息寫(xiě)入到內(nèi)存哈希表中。
[0147]S710,將包名作為鍵,應(yīng)用程序ID標(biāo)記為0,并設(shè)置時(shí)間戳;若在數(shù)據(jù)庫(kù)中也查詢不到“土豆視頻”的應(yīng)用程序ID,則說(shuō)明“土豆視頻”這應(yīng)用程序部需要更新升級(jí),這時(shí)將“土豆視頻”的對(duì)應(yīng)關(guān)系寫(xiě)入到內(nèi)存哈希表中,但是其應(yīng)用程序ID為0,同時(shí)設(shè)置一個(gè)時(shí)間戳,通過(guò)時(shí)間戳來(lái)進(jìn)行自動(dòng)更新或者在下次繼續(xù)查詢升級(jí)包時(shí),可以通過(guò)該時(shí)間戳來(lái)實(shí)現(xiàn)快速查詢。
[0148]S711,應(yīng)用程序ID獲取、更新結(jié)束。
[0149]在本實(shí)施例中,當(dāng)客戶端存在多個(gè)應(yīng)用程序需要同時(shí)進(jìn)行升級(jí)處理時(shí),客戶端將多個(gè)應(yīng)用程序的參數(shù)信息發(fā)送至服務(wù)器30,服務(wù)器接收多個(gè)應(yīng)用程序參數(shù)信息,根據(jù)接收的多個(gè)應(yīng)用程序ID和版本號(hào)依次在內(nèi)存哈希表和Redis數(shù)據(jù)庫(kù)中查詢,然后根據(jù)查詢的結(jié)果以及多個(gè)應(yīng)用程序的校驗(yàn)碼獲取各應(yīng)用程序?qū)?yīng)的升級(jí)包,若比較校驗(yàn)碼一致,則獲取升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。這樣,既能保證查詢的性能,又能保證查詢的正確性。
[0150]在本實(shí)施例中,服務(wù)器還可以將多個(gè)應(yīng)用程序ID和版本號(hào)作為一個(gè)集合進(jìn)行查詢,具體的在獲取差分升級(jí)包時(shí),將多個(gè)應(yīng)用程序ID與版本號(hào)作為一個(gè)集合進(jìn)行查詢,在獲取差分升級(jí)包時(shí)也一起同時(shí)獲取多個(gè),這樣可以通過(guò)減少網(wǎng)絡(luò)的請(qǐng)求次數(shù)來(lái)提高查詢的性能,也即是實(shí)現(xiàn)Redis哈希表的多鍵查詢功能。具體處理步驟如圖8所示。
[0151]S801,查詢應(yīng)用程序的差分升級(jí)包信息;差分升級(jí)包具體為應(yīng)用程序當(dāng)前版本的功能與最新版本之間的差異的功能部分所組成的升級(jí)安裝包。
[0152]S802,根據(jù)應(yīng)用程序最新版本號(hào)和應(yīng)用程序ID作為一個(gè)集合;可選的,當(dāng)客戶端存在多個(gè)應(yīng)用程序同時(shí)需要進(jìn)行升級(jí)處理時(shí),客戶端將多個(gè)應(yīng)用程序的參數(shù)信息同時(shí)發(fā)送至服務(wù)器,服務(wù)器在將接收到的多個(gè)應(yīng)用程序的參數(shù)信息處理為一個(gè)集合,需要說(shuō)明的是,該集合可以是以數(shù)據(jù)包的形式存在,例如:客戶端有三個(gè)應(yīng)用程序需要升級(jí),分別為“QQ”、“微信”和“微博”,客戶端將該三個(gè)應(yīng)用程序的參數(shù)信息發(fā)送服務(wù)器,然后服務(wù)器將接收到的參數(shù)信息到打包成一個(gè)數(shù)據(jù)包,通過(guò)該數(shù)據(jù)包進(jìn)行查詢。
[0153]S803,根據(jù)集合從Redis哈希表中查詢差分升級(jí)包信息;
[0154]S804,判斷是否存在差分升級(jí)包信息;
[0155]S805,若是,將差分升級(jí)包的校驗(yàn)碼與客戶端發(fā)送的應(yīng)用程序的校驗(yàn)碼進(jìn)行比較;
[0156]S806,判斷校驗(yàn)碼是否相同;
[0157]S807,若是,則返回獲取差分升級(jí)包信息;
[0158]S808,查詢結(jié)束。
[0159]具體的,當(dāng)客戶端需要對(duì)三個(gè)應(yīng)用程序同時(shí)查詢升級(jí)時(shí),客戶端將這三個(gè)應(yīng)用程序的參數(shù)信息發(fā)送給服務(wù)器,服務(wù)器接收到后,根據(jù)這三個(gè)應(yīng)用程序的包名分別查詢出對(duì)應(yīng)的應(yīng)用程序ID,然后將三個(gè)應(yīng)用程序ID進(jìn)行集合處理,一次發(fā)送到內(nèi)存哈希表上進(jìn)行查詢,獲取到版本號(hào)后再統(tǒng)一下載通過(guò)校驗(yàn)碼一起進(jìn)行驗(yàn)證,這樣的查詢方式避免了一次一次的反復(fù)查詢,減少了查詢時(shí)的網(wǎng)絡(luò)請(qǐng)求次數(shù),也提高了查詢的效率,縮短了升級(jí)查詢的時(shí)間周期。
[0160]第五實(shí)施例:
[0161]請(qǐng)參考圖9,為本實(shí)施例提供的應(yīng)用程序的升級(jí)系統(tǒng)的模塊示意圖,該系統(tǒng)包括至少一個(gè)客戶端40和服務(wù)器30,服務(wù)器30具體可以為第一實(shí)施例中提供的服務(wù)器,服務(wù)器30通過(guò)接收至少一個(gè)客戶端40發(fā)送的至少一個(gè)應(yīng)用程序參數(shù)信息,服務(wù)器30根據(jù)接收到的至少一個(gè)應(yīng)用程序參數(shù)信息作為一個(gè)集合獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)應(yīng)用功能程序ID從第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)的應(yīng)用程序的升級(jí)包;服務(wù)器30將升級(jí)包發(fā)送至對(duì)應(yīng)的客戶端。
[0162]客戶端接收服務(wù)器發(fā)送的升級(jí)包,根據(jù)接收到的升級(jí)包對(duì)客戶端上對(duì)應(yīng)的應(yīng)用程序進(jìn)行升級(jí)處理。
[0163]在本實(shí)施例中,應(yīng)用程序參數(shù)信息包括應(yīng)用程序的包名、應(yīng)用程序的當(dāng)前版本號(hào)及其校驗(yàn)碼,服務(wù)器30根據(jù)應(yīng)用程序的包名到內(nèi)存哈希表中獲取對(duì)應(yīng)的應(yīng)用功能程序ID,根據(jù)應(yīng)用功能程序ID到Redis哈希表中獲取應(yīng)用程序的新版本號(hào),最后再根據(jù)新版本號(hào)以及校驗(yàn)碼從Redis緩存數(shù)據(jù)庫(kù)中獲取對(duì)應(yīng)的應(yīng)用程序的升級(jí)包,并將升級(jí)包發(fā)送至對(duì)應(yīng)的客戶端進(jìn)行升級(jí)處理。
[0164]在一些實(shí)施例中,服務(wù)器30還可以同時(shí)對(duì)多個(gè)客戶端40或者一個(gè)客戶端40的多個(gè)應(yīng)用程序進(jìn)行升級(jí)處理,其具體的升級(jí)包檢測(cè)過(guò)程與升級(jí)一個(gè)應(yīng)用程序的方法是一樣的,這里就不再重復(fù)贅述了。
[0165]應(yīng)用程序的升級(jí)系統(tǒng)通過(guò)采用本發(fā)明提供的服務(wù)器實(shí)現(xiàn)了應(yīng)用程序的升級(jí)檢測(cè),使得系統(tǒng)在檢測(cè)需要升級(jí)的應(yīng)用程序的最新升級(jí)包時(shí),能快速準(zhǔn)確地獲取到應(yīng)用程序的升級(jí)包,實(shí)現(xiàn)了客戶端能及時(shí)獲取到應(yīng)用程序的升級(jí)信息,通過(guò)客戶端上的應(yīng)用程序自身的信息獲取升級(jí)包,既提高了對(duì)應(yīng)用程序升級(jí)信息的查詢效率,又保證了查詢的正確性。
[0166]第六實(shí)施例:
[0167]在本發(fā)明中還提供了一種與應(yīng)用程序的升級(jí)系統(tǒng)對(duì)應(yīng)的應(yīng)用程序升級(jí)方法,包括:服務(wù)器根據(jù)本發(fā)明提供的應(yīng)用程序的升級(jí)包檢測(cè)方法獲取至少一個(gè)應(yīng)用程序的升級(jí)包;具體的,服務(wù)器接收至少一個(gè)客戶端發(fā)送過(guò)來(lái)的至少一個(gè)應(yīng)用程序參數(shù)信息,該應(yīng)用程序參數(shù)信息包括應(yīng)用程序的包名;根據(jù)接收到的至少一個(gè)應(yīng)用程序的包名作為一個(gè)集合獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)應(yīng)用功能程序ID從第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)的應(yīng)用程序的升級(jí)包;將所述升級(jí)包發(fā)送至對(duì)應(yīng)的客戶端;
[0168]客戶端接收所述升級(jí)包,并將對(duì)應(yīng)的應(yīng)用程序進(jìn)行升級(jí)處理。
[0169]在本實(shí)施例中,通過(guò)應(yīng)用程序的升級(jí)包檢測(cè)方法獲取的升級(jí)包,因此,也可以實(shí)現(xiàn)縮短了客戶端在更新應(yīng)用程序時(shí)的時(shí)間周期,也提高了查詢的效率和性能。
[0170]在本實(shí)施例中,客戶端將所需要進(jìn)行升級(jí)處理的應(yīng)用程序參數(shù)信息發(fā)送至服務(wù)器上,應(yīng)用程序參數(shù)包括應(yīng)用程序的包名、當(dāng)前版本號(hào)以及校驗(yàn)碼,服務(wù)器根據(jù)應(yīng)用程序的包名到內(nèi)存哈希表中獲取對(duì)應(yīng)的應(yīng)用程序ID,根據(jù)應(yīng)用程序ID從數(shù)據(jù)庫(kù)哈希表中獲取對(duì)應(yīng)的版本號(hào),判斷該新版本號(hào)是否大于應(yīng)用程序的當(dāng)前版本號(hào),若是,則直接從該數(shù)據(jù)庫(kù)中獲取與新版本號(hào)對(duì)應(yīng)的升級(jí)包;若不是,則從第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)的升級(jí)包。
[0171]在本實(shí)施例中,升級(jí)方法還包括同時(shí)接收多個(gè)客戶端發(fā)送的應(yīng)用程序參數(shù)信息或者一個(gè)客戶端發(fā)送的多個(gè)應(yīng)用程序參數(shù)信息,將該參數(shù)信息進(jìn)行整合處理,例如,整合成一個(gè)數(shù)據(jù)包,再發(fā)送至數(shù)據(jù)庫(kù)中查詢對(duì)應(yīng)的程序的升級(jí)包,或者直接到第三方應(yīng)用供應(yīng)商中獲取升級(jí)包??衫斫獾氖?,可以到Redis緩存數(shù)據(jù)庫(kù)中獲取。
[0172]綜上,本發(fā)明提供的服務(wù)器和應(yīng)用程序的升級(jí)包檢測(cè)方法和服務(wù)器、升級(jí)方法和系統(tǒng),通過(guò)接收客戶端發(fā)送過(guò)來(lái)的應(yīng)用程序參數(shù)信息中的應(yīng)用程序的包名,根據(jù)接收模塊接收到的應(yīng)用程序的包名獲取對(duì)應(yīng)的應(yīng)用程序ID,并且從第三方應(yīng)用供應(yīng)商中獲取與應(yīng)用程序相對(duì)應(yīng)的升級(jí)包,將獲取模塊獲取到的升級(jí)包發(fā)送至客戶端;通過(guò)客戶端上的應(yīng)用程序參數(shù)信息實(shí)現(xiàn)與第三方應(yīng)用供應(yīng)商之間的快速查詢連接,使得客戶端能及時(shí)獲取應(yīng)用程序的升級(jí)信息,能快速準(zhǔn)確地獲取到應(yīng)用程序的升級(jí)包,從而縮短了客戶端在更新應(yīng)用程序時(shí)的時(shí)間周期,也提高了查詢的效率和性能。
[0173]需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者裝置不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者裝置所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者裝置中還存在另外的相同要素。
[0174]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0175]通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如R0M/RAM、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),月艮務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0176]以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種服務(wù)器,其特征在于,包括: 接收模塊,用于接收客戶端發(fā)送的應(yīng)用程序參數(shù)信息,所述應(yīng)用程序參數(shù)包括應(yīng)用程序的包名; 獲取模塊,用于根據(jù)所述應(yīng)用程序的包名獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)所述應(yīng)用程序ID從第三方應(yīng)用供應(yīng)商中獲取與應(yīng)用程序?qū)?yīng)的升級(jí)包; 發(fā)送模塊,用于將所述升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。2.根據(jù)權(quán)利要求1所述的服務(wù)器,其特征在于,應(yīng)用程序參數(shù)信息還包括應(yīng)用程序的校驗(yàn)碼,所述獲取模塊包括: 查詢子模塊,用于根據(jù)所述應(yīng)用程序的包名到內(nèi)存哈希表中查詢是否存在與所述應(yīng)用程序的包名相對(duì)應(yīng)的應(yīng)用程序ID;若不存在,根據(jù)所述應(yīng)用程序的包名到數(shù)據(jù)庫(kù)中查詢是否存在與所述應(yīng)用程序的包名相對(duì)應(yīng)的應(yīng)用程序ID;以及用于根據(jù)所述應(yīng)用程序ID到數(shù)據(jù)庫(kù)表中查詢所述應(yīng)用程序的新版本號(hào); 獲取子模塊用于根據(jù)所述新版本號(hào)以及所述校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取所述應(yīng)用程序的升級(jí)包。3.根據(jù)權(quán)利要求2所述的服務(wù)器,其特征在于,所述服務(wù)器還包括:設(shè)置模塊,用于設(shè)置時(shí)間戳;所述時(shí)間戳用于從所述數(shù)據(jù)庫(kù)中獲取應(yīng)用程序ID更新內(nèi)存哈希表中應(yīng)用程序的包名與應(yīng)用程序ID之間的對(duì)應(yīng)關(guān)系。4.根據(jù)權(quán)利要求1所述的服務(wù)器,其特征在于,所述升級(jí)包包括差分升級(jí)包和完整升級(jí)包,所述差分升級(jí)包為應(yīng)用程序的當(dāng)前版本與新版本的差分升級(jí)包,所述服務(wù)器還包括:比較模塊,用于在所述查詢子模塊根據(jù)所述應(yīng)用程序ID到數(shù)據(jù)庫(kù)表中查詢所述應(yīng)用程序的新版本號(hào)之后,將應(yīng)用程序的當(dāng)前版本號(hào)與所述新版本號(hào)進(jìn)行比較; 若所述新版本號(hào)比當(dāng)前版本號(hào)高時(shí),所述獲取子模塊根據(jù)所述應(yīng)用程序的當(dāng)前版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取所述差分升級(jí)包,通過(guò)所述發(fā)送模塊將所述差分升級(jí)包發(fā)送至所述客戶端進(jìn)行升級(jí)處理; 或者,所述獲取子模塊根據(jù)所述應(yīng)用程序的新版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取應(yīng)用程序最新的完整升級(jí)包,通過(guò)所述發(fā)送模塊將所述完整升級(jí)包發(fā)送至所述客戶端進(jìn)行升級(jí)處理。5.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的服務(wù)器,其特征在于,所述獲取模塊根據(jù)所述應(yīng)用程序ID從所述第三方應(yīng)用商店中獲取升級(jí)包之前,還用于判斷數(shù)據(jù)庫(kù)中對(duì)應(yīng)的應(yīng)用程序的版本號(hào)是否大于客戶端上對(duì)應(yīng)的應(yīng)用程序的當(dāng)前版本號(hào),若是,則直接從數(shù)據(jù)庫(kù)調(diào)用升級(jí)包對(duì)應(yīng)用程序進(jìn)行升級(jí)處理,若否,則從所述第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)用程序進(jìn)行升級(jí)處理。6.—種應(yīng)用程序的升級(jí)系統(tǒng),其特征在于,包括至少一個(gè)客戶端和如權(quán)利要求1-5任一項(xiàng)所述的服務(wù)器,所述服務(wù)器用于檢測(cè)查詢升級(jí)包; 所述服務(wù)器用于接收所述至少一個(gè)客戶端發(fā)送的至少一個(gè)應(yīng)用程序參數(shù)信息,所述應(yīng)用程序參數(shù)信息包括應(yīng)用程序的包名;根據(jù)接收到的至少一個(gè)應(yīng)用程序的包名作為一個(gè)集合獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)所述應(yīng)用功能程序ID從第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)的應(yīng)用程序的升級(jí)包;所述服務(wù)器將所述升級(jí)包發(fā)送至對(duì)應(yīng)的客戶端; 所述客戶端用于接收所述升級(jí)包,并將對(duì)應(yīng)的應(yīng)用程序進(jìn)行升級(jí)處理。7.—種應(yīng)用程序的升級(jí)包檢測(cè)方法,其特征在于,包括以下步驟: 服務(wù)器接收客戶端發(fā)送的應(yīng)用程序參數(shù)信息,所述應(yīng)用程序參數(shù)包括應(yīng)用程序的包名; 根據(jù)所述應(yīng)用程序參數(shù)的包名獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)所述應(yīng)用程序ID從第三方應(yīng)用供應(yīng)商中獲取與應(yīng)用程序?qū)?yīng)的升級(jí)包; 將所述升級(jí)包發(fā)送至客戶端進(jìn)行升級(jí)處理。8.根據(jù)權(quán)利要求7所述的應(yīng)用程序的升級(jí)包檢測(cè)方法,其特征在于,所述升級(jí)包包括差分升級(jí)包和完整升級(jí)包,所述差分升級(jí)包為應(yīng)用程序的當(dāng)前版本與新版本的差分升級(jí)包; 在根據(jù)所述應(yīng)用程序ID到數(shù)據(jù)庫(kù)表中查詢所述應(yīng)用程序的新版本號(hào)之后,還包括將應(yīng)用程序的當(dāng)前版本號(hào)與所述新版本號(hào)進(jìn)行比較; 若所述新版本號(hào)比當(dāng)前版本號(hào)高時(shí),根據(jù)所述應(yīng)用程序的當(dāng)前版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取所述差分升級(jí)包,將所述差分升級(jí)包發(fā)送至所述客戶端進(jìn)行升級(jí)處理; 或者,根據(jù)所述應(yīng)用程序的新版本號(hào)以及其校驗(yàn)碼從第三方應(yīng)用供應(yīng)商中獲取應(yīng)用程序最新的完整升級(jí)包,將所述完整升級(jí)包發(fā)送至所述客戶端進(jìn)行升級(jí)處理。9.根據(jù)權(quán)利要求7或8所述的應(yīng)用程序的升級(jí)包檢測(cè)方法,其特征在于,在根據(jù)所述應(yīng)用程序ID從所述第三方應(yīng)用商店中獲取升級(jí)包之前,還用于判斷數(shù)據(jù)庫(kù)中對(duì)應(yīng)的應(yīng)用程序的版本號(hào)是否大于客戶端上對(duì)應(yīng)的應(yīng)用程序的當(dāng)前版本號(hào),若是,則直接從數(shù)據(jù)庫(kù)調(diào)用升級(jí)包對(duì)應(yīng)用程序進(jìn)行升級(jí)處理,若否,則從所述第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)用程序進(jìn)行升級(jí)處理。10.一種應(yīng)用程序的升級(jí)方法,其特征在于,包括: 服務(wù)器接收至少一個(gè)客戶端發(fā)送的至少一個(gè)應(yīng)用程序參數(shù)信息,所述應(yīng)用程序參數(shù)信息包括應(yīng)用程序的包名;根據(jù)接收到的至少一個(gè)應(yīng)用程序的包名作為一個(gè)集合獲取對(duì)應(yīng)的應(yīng)用程序ID,以及根據(jù)所述應(yīng)用功能程序ID從第三方應(yīng)用供應(yīng)商中獲取對(duì)應(yīng)的應(yīng)用程序的升級(jí)包;將所述升級(jí)包發(fā)送至對(duì)應(yīng)的客戶端; 所述客戶端接收所述升級(jí)包,并將對(duì)應(yīng)的應(yīng)用程序進(jìn)行升級(jí)處理。
【文檔編號(hào)】H04L12/24GK105871600SQ201610184391
【公開(kāi)日】2016年8月17日
【申請(qǐng)日】2016年3月28日
【發(fā)明人】倪秉炬
【申請(qǐng)人】努比亞技術(shù)有限公司