本公開涉及移動通信技術領域,特別涉及一種應用程序更新方法及裝置。
背景技術:
近年來,以平板電腦、智能手機為代表的終端設備,從購買時起便安裝有各種基于終端設備的操作系統(tǒng)運行的應用程序。在后續(xù)使用的過程中,許多應用程序為了達到增加新功能、修正缺陷或提升安全性的目的,會頻繁進行應用程序更新,也即將舊版本的應用程序更新為新版本的應用程序,以便為用戶提供更好地服務。
相關技術中,當應用程序需要更新時,終端設備所連接的服務器向終端提供可以下載更新安裝包的指定頁面,終端獲取指定頁面并生成更新提示,使得更新提示中攜帶有該指定頁面,并向用戶展示更新提示,以使用戶去往更新提示攜帶的指定頁面中確認更新應用程序。當用戶在指定頁面確認更新應用程序后,終端從服務器中下載相應的安裝包,基于舊版本的應用程序,將該安裝包進行安裝,完成對應用程序的更新。
技術實現(xiàn)要素:
為克服相關技術中存在的問題,本公開提供一種應用程序更新方法及裝置。
根據(jù)本公開實施例的第一方面,提供一種應用程序更新方法,所述方法包括:
基于待更新的第一頁面的頁面標識,在服務器中獲取所述頁面標識對應的第二頁面的第二頁面信息;
若所述第一頁面信息與所述第二頁面信息不一致,則基于所述第二頁面信息,下載所述第二頁面的頁面數(shù)據(jù);
加載所述第二頁面的頁面數(shù)據(jù),以完成所述應用程序更新。
本公開實施例提供的方法,獲取與第一頁面對應的第二頁面,基于第二頁面判斷第一頁面是否存在更新,若第一頁面存在更新,則下載并加載第二頁面的頁面數(shù)據(jù),完成應用程序的更新,使得用戶無需手動進行下載即可完成應用程序的更新,節(jié)省了大量的人力和物力,智能性較優(yōu)。
在另一個實施例中,所述基于所述第二頁面信息,下載所述第二頁面的頁面數(shù)據(jù)包括:
將所述第二頁面信息進行封裝,得到第一更新模塊;
基于所述第一頁面信息中的當前版本號,確定所述第一更新模塊的第一版本號;
基于所述第一版本號,下載與所述第一版本號匹配的第二更新模塊;
將所述第二更新模塊進行解壓,得到所述第二頁面的頁面數(shù)據(jù)。
本公開實施例提供的方法,通過將第二頁面信息封裝,得到第一更新模塊,并基于第一頁面信息的當前版本號,確定第一更新模塊的第一版本號,基于第一版本號下載第二更新模塊,使得下載的第二更新模塊滿足第一版本號的要求。
在另一個實施例中,所述基于所述第一版本號,下載與所述第一版本號匹配的第二更新模塊包括:
將所述第一更新模塊的第一版本號與服務器中至少一個第二更新模塊的第二版本號進行比對;
下載第二版本號高于所述第一版本號的第二更新模塊。
本公開實施例提供的方法,通過獲取服務器中至少一個第二更新模塊的第二版本號,獲取第二版本號高于第一版本號的第二更新模塊,保證下載的第二更新模塊的版本高于第一更新模塊,保證了應用程序更新的成功率。
在另一個實施例中,所述將所述第二更新模塊進行解壓,得到所述第二頁面的頁面數(shù)據(jù)之前,所述方法還包括:
下載所述第一更新模塊的配置信息,所述配置信息至少包括用于校驗所述第二更新模塊是否正確的第一校驗信息;
將所述配置信息中的第一校驗信息與所述第二更新模塊中的第二校驗信息進行比對,判斷所述第一校驗信息與所述第二校驗信息是否一致,所述第二校驗信息為已下載的第二更新模塊的校驗信息;
若所述第一校驗信息與所述第二校驗信息一致,則執(zhí)行解壓所述第二更新模塊得到所述第二頁面的頁面數(shù)據(jù)的步驟。
本公開實施例提供的方法,通過下載第一更新模塊的配置信息,將第一更新模塊的配置信息中的第一校驗信息與第二更新模塊的第二校驗信息進行比對,確定下載的第二更新模塊是否正確,保證正確更新應用程序。
在另一個實施例中,所述基于所述第一版本號,下載與所述第一版本號匹配的第二更新模塊之后,所述方法還包括:
當所述第二更新模塊開始下載,則啟動對所述第二更新模塊的下載監(jiān)聽;
當監(jiān)聽到所述第二更新模塊下載完成時,執(zhí)行解壓所述第二更新模塊得到所述第二頁面的頁面數(shù)據(jù)的步驟。
本公開實施例提供的方法,通過對第二更新模塊進行下載監(jiān)聽,使得當監(jiān)聽到第二更新模塊下載完成后,即可執(zhí)行解壓第二更新模塊得到第二頁面的頁面數(shù)據(jù)的步驟,提高了應用程序更新的更新效率。
根據(jù)本公開實施例的第二方面,提供一種應用程序更新裝置,所述裝置包括:
獲取模塊,被配置為基于待更新的第一頁面的頁面標識,在服務器中獲取所述頁面標識對應的第二頁面的第二頁面信息;
下載模塊,被配置為若所述第一頁面信息與所述第二頁面信息不一致,則基于所述第二頁面信息,下載所述第二頁面的頁面數(shù)據(jù);
加載模塊,被配置為加載所述第二頁面的頁面數(shù)據(jù),以完成所述應用程序更新。
本公開的實施例提供的技術方案可以包括以下有益效果:
通過獲取與第一頁面對應的第二頁面,基于第二頁面判斷第一頁面是否存在更新,若第一頁面存在更新,則下載并加載第二頁面的頁面數(shù)據(jù),完成應用程序的更新,使得用戶無需手動進行下載即可完成應用程序的更新,節(jié)省了大量的人力和物力,智能性較優(yōu)。
在另一個實施例中,所述下載模塊包括:
封裝子模塊,被配置為將所述第二頁面信息進行封裝,得到第一更新模塊;
確定子模塊,被配置為基于所述第一頁面信息中的當前版本號,確定所述第一更新模塊的第一版本號;
下載子模塊,被配置為基于所述確定子模塊確定的所述第一版本號,下載與所述第一版本號匹配的第二更新模塊;
解壓子模塊,被配置為將所述第二更新模塊進行解壓,得到所述第二頁面的頁面數(shù)據(jù)。
在另一個實施例中,所述下載子模塊,被配置為將所述第一更新模塊的第一版本號與服務器中至少一個第二更新模塊的第二版本號進行比對;下載第二版本號高于所述第一版本號的第二更新模塊。
在另一個實施例中,所述下載模塊還包括:
所述下載子模塊,還被配置為下載所述第一更新模塊的配置信息,所述配置信息至少包括用于校驗所述第二更新模塊是否正確的第一校驗信息;
比對子模塊,被配置為將所述配置信息中的第一校驗信息與所述第二更新模塊中的第二校驗信息進行比對,判斷所述第一校驗信息與所述第二校驗信息是否一致,所述第二校驗信息為已下載的第二更新模塊的校驗信息;
所述解壓子模塊,還被配置為若所述比對子模塊確定所述第一校驗信息與所述第二校驗信息一致,則執(zhí)行解壓所述第二更新模塊得到所述第二頁面的頁面數(shù)據(jù)的步驟。
在另一個實施例中,所述下載模塊還包括:
監(jiān)聽子模塊,被配置為當所述第二更新模塊開始下載,則啟動對所述第二更新模塊的下載監(jiān)聽;
所述下載子模塊,還被配置為當所述監(jiān)聽子模塊監(jiān)聽到所述第二更新模塊下載完成時,執(zhí)行解壓所述第二更新模塊得到所述第二頁面的頁面數(shù)據(jù)的步驟。
根據(jù)本公開實施例的第三方面,提供一種應用程序更新裝置,所述裝置包括:
處理器;
用于存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為:基于待更新的第一頁面的頁面標識,在服務器中獲取所述頁面標識對應的第二頁面的第二頁面信息;若所述第一頁面信息與所述第二頁面信息不一致,則基于所述第二頁面信息,下載所述第二頁面的頁面數(shù)據(jù);加載所述第二頁面的頁面數(shù)據(jù),以完成所述應用程序更新。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實施例示出的一種應用程序更新方法的流程圖。
圖2a是根據(jù)一示例性實施例示出的一種應用程序更新方法的流程圖。
圖2b是根據(jù)一示例性實施例示出的一種應用程序更新方法的示意圖。
圖2c是根據(jù)一示例性實施例示出的一種應用程序更新方法的示意圖。
圖2d是根據(jù)一示例性實施例示出的一種應用程序更新方法的示意圖。
圖3a是根據(jù)一示例性實施例示出的一種應用程序更新裝置的框圖。
圖3b是根據(jù)一示例性實施例示出的一種應用程序更新裝置的框圖。
圖3c是根據(jù)一示例性實施例示出的一種應用程序更新裝置的框圖。
圖3d是根據(jù)一示例性實施例示出的一種應用程序更新裝置的框圖。
圖4是根據(jù)一示例性實施例示出的一種應用程序更新裝置400的框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實施例示出的一種應用程序更新方法的流程圖,如圖1所示,該方法包括以下步驟:
在步驟101中,基于待更新的第一頁面的頁面標識,在服務器中獲取頁面標識對應的第二頁面的第二頁面信息。
在步驟102中,若第一頁面信息與第二頁面信息不一致,則基于第二頁面信息,下載第二頁面的頁面數(shù)據(jù)。
在步驟103中,加載第二頁面的頁面數(shù)據(jù),以完成應用程序更新。
本公開實施例提供的方法,通過獲取與第一頁面對應的第二頁面,基于第二頁面判斷第一頁面是否存在更新,若第一頁面存在更新,則下載并加載第二頁面的頁面數(shù)據(jù),完成應用程序的更新,使得用戶無需手動進行下載即可完成應用程序的更新,節(jié)省了大量的人力和物力,智能性較優(yōu)。
在另一個實施例中,基于第二頁面信息,下載第二頁面的頁面數(shù)據(jù)包括:
將第二頁面信息進行封裝,得到第一更新模塊;
基于第一頁面信息中的當前版本號,確定第一更新模塊的第一版本號;
基于第一版本號,下載與第一版本號匹配的第二更新模塊;
將第二更新模塊進行解壓,得到第二頁面的頁面數(shù)據(jù)。
在另一個實施例中,基于第一版本號,下載與第一版本號匹配的第二更新模塊包括:
將第一更新模塊的第一版本號與服務器中至少一個第二更新模塊的第二版本號進行比對;
下載第二版本號高于第一版本號的第二更新模塊。
在另一個實施例中,將第二更新模塊進行解壓,得到第二頁面的頁面數(shù)據(jù)之前,方法還包括:
下載第一更新模塊的配置信息,配置信息至少包括用于校驗第二更新模塊是否正確的第一校驗信息;
將配置信息中的第一校驗信息與第二更新模塊中的第二校驗信息進行比對,判斷第一校驗信息與第二校驗信息是否一致,第二校驗信息為已下載的第二更新模塊的校驗信息;
若第一校驗信息與第二校驗信息一致,則執(zhí)行解壓第二更新模塊得到第二頁面的頁面數(shù)據(jù)的步驟。
在另一個實施例中,基于第一版本號,下載與第一版本號匹配的第二更新模塊之后,方法還包括:
當?shù)诙履K開始下載,則啟動對第二更新模塊的下載監(jiān)聽;
當監(jiān)聽到第二更新模塊下載完成時,執(zhí)行解壓第二更新模塊得到第二頁面的頁面數(shù)據(jù)的步驟。
上述所有可選技術方案,可以采用任意結(jié)合形成本公開的可選實施例,在此不再一一贅述。
圖2a是根據(jù)一示例性實施例示出的一種應用程序更新方法的流程圖,如圖2a所示,該方法包括以下步驟:
在步驟201中,基于待更新的第一頁面的頁面標識,在服務器中獲取頁面標識對應的第二頁面的第二頁面信息。
為了增加新功能、修正缺陷或提升安全性,應用程序會頻繁進行更新。當應用程序需要進行更新時,新版的應用程序與舊版的應用程序中的頁面會存在不同,因此,在更新時可以僅更新這些不同的頁面,以降低更新時的數(shù)據(jù)傳輸量。而在確定待更新的第一頁面時,可以根據(jù)應用程序各個頁面的頁面標識等進行確定,例如,檢測各個頁面的頁面標識是否具有更新標識,如果服務器側(cè)某個頁面標識具有更新標識,則確定該頁面為第一頁面。當然,還可以利用如時間戳等信息來進行標膠,例如,對于各個頁面的頁面標識,檢測服務器上存儲的頁面標識的時間戳以及該頁面標識在終端側(cè)的時間戳,如果服務器側(cè)的時間戳晚于終端側(cè)的時間戳,則可以確定該頁面為第一頁面。其中,頁面標識可以為第一頁面的頁面名稱、頁面標簽等。在確定了待更新的第一頁面后,可以根據(jù)當前已經(jīng)下載的應用程序中的第一頁面的頁面標識,可以在服務器中獲取服務器當前所存儲版本的應用程序中的第二頁面的第二頁面信息。其中,第二頁面信息可為第二頁面的頁面地址url(uniformresourcelocator,統(tǒng)一資源定位符)等。
需要說明的是,該確定第一頁面的過程可以在應用程序啟動時進行,一旦應用程序啟動,則可以查詢該應用程序的版本號等來確定應用程序是否存在更新,進一步地可以確定應用程序中哪個頁面是第一頁面。當然,該確定第一頁面的過程還可以在應用程序啟動任一個頁面時基于該被啟動的頁面進行,例如,當應用程序啟動頁面a時,將頁面a的頁面標識和應用程序的應用標識發(fā)送至服務器,由服務器確定該應用程序的頁面a是否為第一頁面,本實施例對具體采取哪種方式進行第一頁面的確定不做限定。
對于一個應用程序,其自身包括至少一個頁面,至少一個頁面均具有與其對應的第一頁面信息,因此,在服務器中存儲有與至少一個頁面對應的第二頁面信息。當管理員對應用程序進行更新或是服務器檢測到更新的應用程序時,服務器可以將舊版本的應用程序的頁面信息刪除,將新版本的應用程序的頁面信息與應用程序的新版本號對應存儲,當然,對應于上述第一頁面的確認方式,服務器還可以將新舊版本之間進行對比,以便確定哪個頁面發(fā)生了更新,從而將發(fā)生了更新的頁面標識中添加更新標識,以便進行基于更新標識的第一頁面確定,還可以將更新了的頁面標識中添加更新時間戳,以便進行基于時間戳的第一頁面確定。
在步驟202中,判斷第二頁面信息與第一頁面的第一頁面信息是否一致,若第二頁面信息與第一頁面信息一致,則執(zhí)行下述步驟203;若第二頁面信息與第一頁面信息不一致,則執(zhí)行下述步驟204。
在本公開實施例中,若確定第二頁面信息與第一頁面信息一致,則代表當前頁面不存在更新,因此可以不再繼續(xù)執(zhí)行下述步驟204至步驟210,直接執(zhí)行下述步驟203即可;若確定第二頁面信息與第一頁面信息不一致,則代表當前頁面存在更新,這樣便需要將應用程序中的待更新的第一頁面進行更新,也即執(zhí)行下述步驟204至步驟210。
在判斷第二頁面信息與第一頁面信息是否一致時,應用程序根據(jù)自身的應用標識,在服務器中獲取其存儲的第二頁面信息,將第二頁面信息與自身當前的第一頁面信息進行比對。
例如,對于應用程序a,其包括頁面1、頁面2、頁面3和頁面4,若頁面1當前的第一頁面信息為www.wer.1,在服務器中獲取到的頁面1的第二頁面信息為www.wer.2;頁面2當前的第一頁面信息為www.wet.1,在服務器中獲取到的頁面2的第二頁面信息為www.wet.1;頁面3當前的第一頁面信息為www.wey.1,在服務器中獲取到的頁面3的第二頁面信息為www.wey.1;頁面4當前的第一頁面信息為www.weu.1,在服務器中獲取到的頁面4的第二頁面信息為www.weu.2,則頁面1和頁面4的第一頁面信息與第二頁面信息不同,表示對于應用程序a,其包括的頁面1和頁面4存在更新。
在步驟203中,若第二頁面信息與第一頁面信息一致,則將應用程序保持在當前版本,結(jié)束。
在本公開實施例中,對于一個應用程序,若其包括的全部頁面的第二頁面信息與第一頁面信息均一致,則代表當前的應用程序不存在更新,將應用程序保持在當前版本,結(jié)束即可。
在步驟204中,若第二頁面信息與第一頁面信息不一致,則將第二頁面信息進行封裝,得到第一更新模塊。
在本公開實施例中,為了避免在后續(xù)下載第二頁面的頁面數(shù)據(jù)時出現(xiàn)不匹配或下載錯誤的情況,因此可將第二頁面信息進行封裝,封裝為第一更新模塊,并基于第一更新模塊下載第二頁面的頁面數(shù)據(jù)。其中,第一更新模塊中包括如圖2b所示的manifest文件,在manifest文件中,module(模塊)表示了應用程序更新需要下載的第二更新模塊,由于服務器中存儲的第二頁面信息具有與其對應的版本號,因此第二更新模塊也具有與其對應的版本號,且第二頁面信息的版本號與和其匹配的第二更新模塊的版本號一致。由于對于當前版本的應用程序,其可能很久未進行更新,進而錯過多個版本的應用程序,因此應用程序在更新時需要先更新至下一版本,依次類推,直至更新至當前最新版本的應用程序,因此manifest文件中便設置有minlevel屬性,表示應用程序在更新時可以下載的高于應用程序當前的版本號的最低版本號。例如,對于應用程序a,當前版本為3.1,服務器中存儲有版本號分別為3.2、3.3和3.4的第二更新模塊,則在應用程序a的第一更新模塊的manifest文件中,minlevel屬性需設置為3.2。
由于應用程序中待更新的第一頁面可以為一個或多個,因此與第一頁面匹配的第二頁面的第二頁面信息也可為一個或多個。這樣,在將第二頁面信息進行封裝時,可以一個第二頁面信息封裝為一個第一更新模塊,得到多個第一更新模塊;也可以將與應用程序中多個待更新的第一頁面匹配的多個第二頁面信息封裝在一個第一更新模塊中。
在步驟205中,基于第一頁面信息中的當前版本號,確定第一更新模塊的第一版本號。
在本公開實施例中,應用程序的當前版本號即為第一頁面信息的當前版本號,這樣在確定第一更新模塊的版本號時當前版本號也即為第一版本號。
在步驟206中,將第一更新模塊的第一版本號與服務器中至少一個第二更新模塊的第二版本號進行比對,下載第二版本號高于第一版本號的第二更新模塊。
在本公開實施例中,對于當前版本的應用程序,服務器中可能存儲有至少一個第二更新模塊,則應用程序需要將第一更新模塊的第一版本號與至少一個第二更新模塊的第二版本號進行比對,獲取第二版本號高于第一版本號的第二更新模塊進行下載,保證下載的第二更新模塊中存在應用程序的更新內(nèi)容。其中,第二更新模塊中包括如圖2c所示的manifest文件,在manifest文件中,name代表了第二更新模塊的模塊名稱,modulecontent屬性為模塊中包括的內(nèi)容,dex代表第二更新模塊中包括java代碼;res代表第二更新模塊中包括頁面資源;lib代表第二更新模塊中包括native代碼。
為了保證應用程序更新的效率,使得第二更新模塊下載完成后即可執(zhí)行下述在步驟207,因此可在應用程序中執(zhí)行下述步驟一和步驟二,設置對第二更新模塊的下載監(jiān)聽。
步驟一、當?shù)诙履K開始下載,則啟動對第二更新模塊的下載監(jiān)聽。
其中,在啟動對第二更新模塊的下載監(jiān)聽時,應用程序可以基于圖2d所示的代碼向服務器傳入回調(diào)接口。當服務器檢測到第二更新模塊下載完畢后,便通過回調(diào)接口向應用程序發(fā)送完成消息,則應用程序可繼續(xù)執(zhí)行下述步驟二。
步驟二、當監(jiān)聽到第二更新模塊下載完成時,執(zhí)行下述步驟207。
在步驟207中,下載第一更新模塊的配置信息,將配置信息中的第一校驗信息與第二更新模塊中的第二校驗信息進行比對,判斷第一校驗信息與第二校驗信息是否一致,若第一校驗信息與第二校驗信息不一致,則執(zhí)行下述步驟208;若第一校驗信息與第二校驗信息一致,則執(zhí)行下述步驟209。
在下載時,可以根據(jù)第一更新模塊的模塊名稱進行下載,需要說明的是,在對第一更新模塊進行封裝時,可以獲取該第一更新模塊的模塊標識,從而在后續(xù)下載時可以基于模塊標識進行下載。該模塊標識可以為模塊名稱或其他用于唯一標識該模塊的信息。
在本公開實施例中,配置信息至少包括用于校驗第二更新模塊是否正確的第一校驗信息,第一校驗信息中包括第二更新模塊的下載地址、md5(messagedigestalgorithm,消息摘要算法第五版)值和應用程序簽名;第二校驗信息為已下載的第二更新模塊的校驗信息,第二校驗信息中也包括第二更新模塊的下載地址、md5值和應用程序簽名。
為了保證下載的第二更新模塊與第一更新模塊匹配且正確無誤,需要將配置信息中的第一校驗信息與第二更新模塊中包括的第二校驗信息進行比對,若第一校驗信息與第二校驗信息完全一致,才可以繼續(xù)進行步驟209和步驟210;若第一校驗信息與第二校驗信息存在差異,則執(zhí)行下述步驟207。在將第一校驗信息與第二校驗信息進行比對時,將第一校驗信息中包括的第二更新模塊的下載地址與第二校驗信息中包括的第二更新模塊的下載地址進行比對,若第一校驗信息中包括的第二更新模塊的下載地址與第二校驗信息中包括的第二更新模塊的下載地址不一致,則可確定下載的第二更新模塊與第一更新模塊不匹配或發(fā)生錯誤,也即直接執(zhí)行下述步驟208;若第一校驗信息中包括的第二更新模塊的下載地址與第二校驗信息中包括的第二更新模塊的下載地址一致,則將第一校驗信息中包括的md5值與第二校驗信息中包括的md5值進行比對,若第一校驗信息中包括的md5值與第二校驗信息中包括的md5值不一致,則可確定下載的第二更新模塊與第一更新模塊不匹配或發(fā)生錯誤,也即直接執(zhí)行下述步驟208;若第一校驗信息中包括的md5值與第二校驗信息中包括的md5值一致,則將第一校驗信息中包括的應用程序簽名與第二校驗信息中包括的應用程序簽名進行比對,若第一校驗信息中包括的應用程序簽名與第二校驗信息中包括的應用程序簽名不一致,則可確定下載的第二更新模塊與第一更新模塊不匹配或發(fā)生錯誤,也即直接執(zhí)行下述步驟208;若第一校驗信息中包括的應用程序簽名與第二校驗信息中包括的應用程序簽名一致,則確定下載的第二更新模塊正確無誤,可執(zhí)行下述步驟209和步驟210。
在步驟208中,若第一校驗信息與第二校驗信息不一致,則將第二更新模塊丟棄,并重新執(zhí)行上述步驟201至步驟207。
在本公開實施例中,若第一校驗信息與第二校驗信息存在差異,則表示下載的第二更新模塊可能與第一更新模塊不匹配或者下載時發(fā)生錯誤,因此需要重新確定第二頁面信息,并重新下載第二更新模塊,也即再次執(zhí)行上述步驟201至步驟207。
在步驟209中,若第一校驗信息與第二校驗信息一致,則將第二更新模塊進行解壓,得到第二頁面的頁面數(shù)據(jù)。
在本公開實施例中,若第一校驗信息與第二校驗信息一致,則表示下載的第二更新模塊與第一更新模塊匹配且正確無誤,則對第二更新模塊進行解壓,得到第二頁面的頁面數(shù)據(jù)。其中,頁面數(shù)據(jù)為顯示第二頁面所依賴的頁面代碼、頁面資源。
在步驟210中,加載第二頁面的頁面數(shù)據(jù),以完成應用程序更新。
在本公開實施例中,由于第二更新模塊中包括manifest文件,則通過manifest文件的modulecontent屬性可以加載第二頁面的頁面數(shù)據(jù),也即通過dex加載第二頁面的java代碼;通過res加載第二頁面的頁面資源;通過lib加載第二頁面的native代碼;當加載完畢后,則應用程序完成更新,這樣當用戶下次打開應用程序顯示頁面時,應用程序便顯示基于第二更新模塊加載的第二頁面的頁面數(shù)據(jù),保證顯示給用戶的頁面為當前的最新頁面。
本公開實施例提供的方法,獲取與第一頁面對應的第二頁面,基于第二頁面判斷第一頁面是否存在更新,若第一頁面存在更新,則下載并加載第二頁面的頁面數(shù)據(jù),完成應用程序的更新,使得用戶無需手動進行下載即可完成應用程序的更新,節(jié)省了大量的人力和物力,智能性較優(yōu)。
在另一個實施例中,通過將第二頁面信息封裝,得到第一更新模塊,并基于第一頁面信息的當前版本號,確定第一更新模塊的第一版本號,基于第一版本號下載第二更新模塊,使得下載的第二更新模塊滿足第一版本號的要求。
在另一個實施例中,通過獲取服務器中至少一個第二更新模塊的第二版本號,獲取第二版本號高于第一版本號的第二更新模塊,保證下載的第二更新模塊的版本高于第一更新模塊,保證了應用程序更新的成功率。
在另一個實施例中,通過下載第一更新模塊的配置信息,將第一更新模塊的配置信息中的第一校驗信息與第二更新模塊的第二校驗信息進行比對,確定下載的第二更新模塊是否正確,保證正確更新應用程序。
在另一個實施例中,通過對第二更新模塊進行下載監(jiān)聽,使得當監(jiān)聽到第二更新模塊下載完成后,即可執(zhí)行解壓第二更新模塊得到第二頁面的頁面數(shù)據(jù)的步驟,提高了應用程序更新的更新效率。
圖3a是根據(jù)一示例性實施例示出的一種應用程序更新裝置的框圖。參照圖3a,該裝置包括獲取模塊301,下載模塊302和加載模塊303。
該獲取模塊301,被配置為基于待更新的第一頁面的頁面標識,在服務器中獲取頁面標識對應的第二頁面的第二頁面信息。
該下載模塊302,被配置為若第一頁面信息與第二頁面信息不一致,則基于第二頁面信息,下載第二頁面的頁面數(shù)據(jù)。
該加載模塊303,被配置為加載第二頁面的頁面數(shù)據(jù),以完成應用程序更新。
本公開實施例提供的裝置,獲取與第一頁面對應的第二頁面,基于第二頁面判斷第一頁面是否存在更新,若第一頁面存在更新,則下載并加載第二頁面的頁面數(shù)據(jù),完成應用程序的更新,使得用戶無需手動進行下載即可完成應用程序的更新,節(jié)省了大量的人力和物力,智能性較優(yōu)。
在另一個實施例中,參見圖3b,該下載模塊302包括封裝子模塊3021,確定子模塊3022,下載子模塊3023和解壓子模塊3024。
該封裝子模塊3021,被配置為將第二頁面信息進行封裝,得到第一更新模塊;
該確定子模塊3022,被配置為基于第一頁面信息中的當前版本號,確定第一更新模塊的第一版本號;
該下載子模塊3023,被配置為基于確定子模塊確定的第一版本號,下載與第一版本號匹配的第二更新模塊;
該解壓子模塊3024,被配置為將第二更新模塊進行解壓,得到第二頁面的頁面數(shù)據(jù)。
在另一個實施例中,該下載子模塊3023,被配置為將第一更新模塊的第一版本號與服務器中至少一個第二更新模塊的第二版本號進行比對;下載第二版本號高于第一版本號的第二更新模塊。
在另一個實施例中,參見圖3c,該下載模塊302還包括比對子模塊3025。
該下載子模塊3023,還被配置為下載第一更新模塊的配置信息,配置信息至少包括用于校驗第二更新模塊是否正確的第一校驗信息;
該比對子模塊3025,被配置為將配置信息中的第一校驗信息與第二更新模塊中的第二校驗信息進行比對,判斷第一校驗信息與第二校驗信息是否一致,第二校驗信息為已下載的第二更新模塊的校驗信息;
該解壓子模塊3024,還被配置為若比對子模塊確定第一校驗信息與第二校驗信息一致,則執(zhí)行解壓第二更新模塊得到第二頁面的頁面數(shù)據(jù)的步驟。
在另一個實施例中,參見圖3d,該下載模塊302還包括監(jiān)聽子模塊3026。
該監(jiān)聽子模塊3026,被配置為當?shù)诙履K開始下載,則啟動對第二更新模塊的下載監(jiān)聽;
該下載子模塊3023,還被配置為當監(jiān)聽子模塊監(jiān)聽到第二更新模塊下載完成時,執(zhí)行解壓第二更新模塊得到第二頁面的頁面數(shù)據(jù)的步驟。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
圖4是根據(jù)一示例性實施例示出的一種應用程序更新裝置400的框圖。例如,裝置400可以是移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設備,游戲控制臺,平板設備,醫(yī)療設備,健身設備,個人數(shù)字助理等。
參照圖4,裝置400可以包括以下一個或多個組件:處理組件402,存儲器404,電源組件406,多媒體組件408,音頻組件410,i/o(input/output,輸入/輸出)的接口412,傳感器組件414,以及通信組件416。
處理組件402通??刂蒲b置400的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關聯(lián)的操作。處理組件402可以包括一個或多個處理器420來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件402可以包括一個或多個模塊,便于處理組件402和其他組件之間的交互。例如,處理組件402可以包括多媒體模塊,以方便多媒體組件408和處理組件402之間的交互。
存儲器404被配置為存儲各種類型的數(shù)據(jù)以支持在裝置400的操作。這些數(shù)據(jù)的示例包括用于在裝置400上操作的任何應用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器404可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現(xiàn),如sram(staticrandomaccessmemory,靜態(tài)隨機存取存儲器),eeprom(electrically-erasableprogrammableread-onlymemory,電可擦除可編程只讀存儲器),eprom(erasableprogrammablereadonlymemory,可擦除可編程只讀存儲器),prom(programmableread-onlymemory,可編程只讀存儲器),rom(read-onlymemory,只讀存儲器),磁存儲器,快閃存儲器,磁盤或光盤。
電源組件406為裝置400的各種組件提供電力。電源組件406可以包括電源管理系統(tǒng),一個或多個電源,及其他與為裝置400生成、管理和分配電力相關聯(lián)的組件。
多媒體組件408包括在所述裝置400和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括lcd(liquidcrystaldisplay,液晶顯示器)和tp(touchpanel,觸摸面板)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關的持續(xù)時間和壓力。在一些實施例中,多媒體組件408包括一個前置攝像頭和/或后置攝像頭。當裝置400處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學透鏡系統(tǒng)或具有焦距和光學變焦能力。
音頻組件410被配置為輸出和/或輸入音頻信號。例如,音頻組件410包括一個mic(microphone,麥克風),當裝置400處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器404或經(jīng)由通信組件416發(fā)送。在一些實施例中,音頻組件410還包括一個揚聲器,用于輸出音頻信號。
i/o接口412為處理組件402和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
傳感器組件414包括一個或多個傳感器,用于為裝置400提供各個方面的狀態(tài)評估。例如,傳感器組件414可以檢測到設備400的打開/關閉狀態(tài),組件的相對定位,例如組件為裝置400的顯示器和小鍵盤,傳感器組件414還可以檢測裝置400或裝置400一個組件的位置改變,用戶與裝置400接觸的存在或不存在,裝置400方位或加速/減速和裝置400的溫度變化。傳感器組件414可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件414還可以包括光傳感器,如cmos(complementarymetaloxidesemiconductor,互補金屬氧化物)或ccd(charge-coupleddevice,電荷耦合元件)圖像傳感器,用于在成像應用中使用。在一些實施例中,該傳感器組件414還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通信組件416被配置為便于裝置400和其他設備之間有線或無線方式的通信。裝置400可以接入基于通信標準的無線網(wǎng)絡,如wifi,2g或3g,或它們的組合。在一個示例性實施例中,通信組件416經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關信息。在一個示例性實施例中,所述通信組件416還包括nfc(nearfieldcommunication,近場通信)模塊,以促進短程通信。例如,在nfc模塊可基于rfid(radiofrequencyidentification,射頻識別)技術,irda(infra-reddataassociation,紅外數(shù)據(jù)協(xié)會)技術,uwb(ultrawideband,超寬帶)技術,bt(bluetooth,藍牙)技術和其他技術來實現(xiàn)。
在示例性實施例中,裝置400可以被一個或多個asic(applicationspecificintegratedcircuit,應用專用集成電路)、dsp(digitalsignalprocessor,數(shù)字信號處理器)、dspd(digitalsignalprocessordevice,數(shù)字信號處理設備)、pld(programmablelogicdevice,可編程邏輯器件)、fpga)(fieldprogrammablegatearray,現(xiàn)場可編程門陣列)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述應用程序更新方法。
在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器404,上述指令可由裝置400的處理器420執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質(zhì)可以是rom、ram(randomaccessmemory,隨機存取存儲器)、cd-rom(compactdiscread-onlymemory,光盤只讀存儲器)、磁帶、軟盤和光數(shù)據(jù)存儲設備等。
一種非臨時性計算機可讀存儲介質(zhì),當所述存儲介質(zhì)中的指令由應用程序更新裝置的處理器執(zhí)行時,使得應用程序更新裝置能夠執(zhí)行上述應用程序更新方法。
本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權利要求指出。
應當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權利要求來限制。