新四季網

一種升級安卓軟體的方法、設備和系統的製作方法

2023-06-12 00:38:41 1

一種升級安卓軟體的方法、設備和系統的製作方法
【專利摘要】本發明實施例涉及移動通信領域,尤其涉及一種升級安卓軟體的方法、設備和系統,用以解決現有技術中存在的安裝包體積太大的問題。本發明實施例公開的升級安卓軟體的方法包括:客戶端向伺服器發送升級請求;所述客戶端接收所述伺服器返回的JAR包信息,並根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包;所述客戶端根據下載的JAR包進行軟體升級。由於JAR包中僅包含代碼,不包含其他的資源文件,因此使用JAR包升級安卓軟體的安裝包體積比APK安裝包小。
【專利說明】一種升級安卓軟體的方法、設備和系統

【技術領域】
[0001]本發明涉及移動通信領域,尤其涉及一種升級安卓軟體的方法、設備和系統。

【背景技術】
[0002]目前有兩種方式對安卓軟體進行升級。
[0003]方式一:升級整個安卓軟體APK (Android Package,安卓軟體安裝文件)。
[0004]首先將升級後的應用APK下載到本地,打開APK文件時,安卓系統會自動調用安裝程序。生成APK有成熟的工具和編譯腳本,更新代碼的同時更新資源,比如圖片、音頻、視頻文件、資料庫文件。因此,APK安裝包含了除代碼外的其他的資源。導致下載的APK安裝包體積太大,尤其是使用用戶流量的情況,會帶來額外的費用。
[0005]方式二:下載安裝並調用增量APK。
[0006]下載安裝並調用新的APK。如果新增了功能,原APK程序會下載一個增量APK並安裝。雖然增量APK比原APK體積小,但是增量APK仍然包含除代碼外的其他的資源,下載的增量APK安裝包體積仍然太大。
[0007]綜上所述,目前升級安卓軟體的方法均存在安裝包體積太大的問題。


【發明內容】

[0008]本發明實施例提供一種升級安卓軟體的方法、設備和系統,用以解決現有技術中存在安裝包體積太大的問題。
[0009]本發明實施例提供的一種升級安卓軟體的方法,包括:
[0010]客戶端向伺服器發送升級請求;
[0011 ] 所述客戶端接收所述伺服器返回的JAVA歸檔文件JAR包信息,並根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包;
[0012]所述客戶端根據下載的JAR包進行軟體升級。
[0013]本發明實施例採用JAR包升級安卓軟體,因為JAR包中僅包含代碼,不包含其他的資源文件,因此使用JAR包升級安卓軟體的安裝包體積比APK安裝包小,且升級時間短。
[0014]優選地,所述客戶端根據下載的JAR包進行軟體升級,包括:
[0015]所述客戶端根據所述JAR包信息中包括的JAR包對應的籤名信息進行驗證,對在下載完的JAR包進行驗證,並在驗證通過後根據下載的JAR包進行軟體升級。
[0016]本發明實施例對下載完的JAR包進行驗證通過後再進行軟體升級,從而可以提高升級的成功率。
[0017]優選地,所述客戶端根據下列方式確定需要升級的JAR包的JAR包名稱:
[0018]所述客戶端從所述JAR包信息包括的所有JAR包名稱中,確定第一特定JAR包名稱和第二特定JAR包名稱;
[0019]所述客戶端將所述第一特定JAR包名稱和第二特定JAR包名稱對應的JAR包作為需要升級的JAR包;
[0020]其中,所述第一特定JAR包名稱為所述客戶端的安裝目錄下沒有相同名稱的JAR包名稱;
[0021]所述第二特定JAR包名稱為所述客戶端的安裝目錄下有相同名稱,但所述JAR包信息包括的對應的版本號高於所述客戶端的安裝目錄下相同名稱對應的版本號的JAR包名稱。
[0022]本發明實施例分為增加和更新軟體兩種情況,從而既可以升級軟體的某項功能,也可以增加原軟體沒有的功能。
[0023]優選地,所述客戶端根據下載的JAR包進行軟體升級,包括:
[0024]所述客戶端將下載的所述第一特定JAR包名稱對應的JAR包保存到所述客戶端的安裝目錄下;
[0025]所述客戶端將下載的所述第二特定JAR包名稱對應的JAR包替換所述客戶端的安裝目錄下與下載的JAR包的名稱相同的JAR包。
[0026]本發明實施例升級安卓軟體的方法下載後不需要安裝,將JAR包保存在安裝目錄下即可。除JAR包本身外不佔用其他的存儲空間和系統資源,且不需要用戶確認安裝,用戶升級過程更流暢平滑。
[0027]優選地,所述客戶端通過下列方式確定所述客戶端的安裝目錄下相同名稱對應的版本號:
[0028]所述客戶端通過調用第一類中的接口,確定所述客戶端的安裝目錄下相同名稱對應的版本號。
[0029]本發明實施例通過自定義的類和接口獲取版本號,從而可以有效地避免程序出錯。
[0030]優選地,所述客戶端接收所述伺服器返回的JAR包信息之後,還包括:
[0031]若所述JAR包信息中包括需要下載的JAR包對應的圖標下載地址,所述客戶端根據所述圖標下載地址下載圖標;
[0032]所述客戶端根據下載的JAR包進行軟體升級,包括:
[0033]所述客戶端下載的圖標保存到所述客戶端的安裝目錄下。
[0034]本發明實施例在增加原軟體沒有的功能時下載圖標並保存在安裝目錄文件下,供用戶使用。
[0035]優選地,該方法還包括:
[0036]所述客戶端在需要調用JAR包時,將所述JAR包加載到內存中;
[0037]所述客戶端通過JAVA的反射機制,獲取加載到內存中的JAR包的名稱;
[0038]所述客戶端根據所述JAR包的名稱,調用JAR包中的第二類,以實現調用JAR包。
[0039]本發明實施例JAR包通過JAR包的名稱來加載JAR包,從而可以避免加載JAR包代碼時出錯錯誤。
[0040]本發明實施例提供的一種升級安卓軟體的方法,包括:
[0041]伺服器接收客戶端發送的升級請求;
[0042]所述伺服器向所述客戶端發送JAVA歸檔文件JAR包信息,以使所述客戶端根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
[0043]本發明實施例採用JAR包升級安卓軟體,因為JAR包中僅包含代碼,不包含其他的資源文件,因此使用JAR包升級安卓軟體的安裝包體積比APK安裝包小。
[0044]優選地,所述伺服器向所述客戶端發送JAR包信息,包括:
[0045]所述伺服器接收所述客戶端發送包含客戶端程序名稱和客戶端程序版本的升級請求;
[0046]所述伺服器向所述客戶端發送JAR包信息,包括:
[0047]所述伺服器確定所述升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信息;
[0048]所述伺服器向所述客戶端返回確定的所述JAR包信息。
[0049]本發明實施例伺服器確定所述升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信息,從而可以保證客戶端程序可以下載客戶端程序版本對應的JAR包信息,避免下載出錯。
[0050]本發明實施例提供的一種升級安卓軟體的設備,包括:
[0051]發送單元,用於向伺服器發送升級請求;
[0052]接收單元,用於接收所述伺服器返回的JAVA歸檔文件JAR包信息,並根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包;
[0053]升級單元,用於根據下載的JAR包進行軟體升級。
[0054]本發明實施例採用JAR包升級安卓軟體,因為JAR包中僅包含代碼,不包含其他的資源文件,因此使用JAR包升級安卓軟體的安裝包體積比APK安裝包小,且升級時間短。
[0055]優選地,所述升級單元具體用於:
[0056]根據所述JAR包信息中包括的JAR包對應的籤名信息進行驗證,對在下載完的JAR包進行驗證,並在驗證通過後根據下載的JAR包進行軟體升級。
[0057]本發明實施例對下載完的JAR包進行驗證通過後再進行軟體升級,從而可以提高升級的成功率。
[0058]優選地,所述接收單元還用於,根據下列方式確定需要升級的JAR包的JAR包名稱:
[0059]從所述JAR包信息包括的所有JAR包名稱中,確定第一特定JAR包名稱和第二特定JAR包名稱;將所述第一特定JAR包名稱和第二特定JAR包名稱對應的JAR包作為需要升級的JAR包;
[0060]其中,所述第一特定JAR包名稱為所述客戶端的安裝目錄下沒有相同名稱的JAR包名稱;所述第二特定JAR包名稱為所述客戶端的安裝目錄下有相同名稱,但所述JAR包信息包括的對應的版本號高於所述客戶端的安裝目錄下相同名稱對應的版本號的JAR包名稱。
[0061]本發明實施例分為增加和更新軟體兩種情況,從而既可以升級軟體的某項功能,也可以增加原軟體沒有的功能。
[0062]優選地,所述升級單元具體用於:
[0063]將下載的所述第一特定JAR包名稱對應的JAR包保存到所述客戶端的安裝目錄下;將下載的所述第二特定JAR包名稱對應的JAR包替換所述客戶端的安裝目錄下與下載的JAR包的名稱相同的JAR包。
[0064]本發明實施例升級安卓軟體的方法下載後不需要安裝,將JAR包保存在安裝目錄下即可。除JAR包本身外不佔用其他的存儲空間和系統資源,且不需要用戶確認安裝,用戶升級過程更流暢平滑。
[0065]優選地,所述接收單元具體用於:
[0066]通過調用第一類中的接口,確定所述客戶端的安裝目錄下相同名稱對應的版本號。
[0067]本發明實施例通過自定義的類和接口獲取版本號,從而可以有效地避免程序出錯。
[0068]優選地,所述接收單元還用於:
[0069]若所述JAR包信息中包括需要下載的JAR包對應的圖標下載地址,根據所述圖標下載地址下載圖標;
[0070]所述升級單元還用於,將下載的圖標保存到所述客戶端的安裝目錄下。
[0071]本發明實施例在增加原軟體沒有的功能時下載圖標並保存在安裝目錄文件下,供用戶使用。
[0072]優選地,所述升級單元還用於:
[0073]在需要調用JAR包時,將所述JAR包加載到內存中;通過JAVA的反射機制,獲取加載到內存中的JAR包的名稱;根據所述JAR包的名稱,調用JAR包中的第二類,以實現調用JAR 包。
[0074]本發明實施例JAR包通過JAR包的名稱來加載JAR包,從而可以避免加載JAR包代碼時出錯錯誤。
[0075]本發明實施例提供的一種升級安卓軟體的設備,包括:
[0076]請求接收單元,用於接收客戶端發送的升級請求;
[0077]信息發送單元,用於向所述客戶端發送JAVA歸檔文件JAR包信息,以使所述客戶端根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
[0078]本發明實施例採用JAR包升級安卓軟體,因為JAR包中僅包含代碼,不包含其他的資源文件,因此使用JAR包升級安卓軟體的安裝包體積比APK安裝包小。
[0079]優選地,所述請求接收單元具體用於:
[0080]接收所述客戶端發送包含客戶端程序名稱和客戶端程序版本的升級請求;
[0081 ] 所述信息發送單元具體用於:
[0082]確定所述升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信息;返回確定的所述JAR包信息。
[0083]本發明實施例伺服器確定所述升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信息,從而可以保證客戶端程序可以下載客戶端程序版本對應的JAR包信息,避免下載出錯。
[0084]本發明實施例提供的一種升級安卓軟體的系統,包括客戶端和伺服器;
[0085]所述客戶端,用於向伺服器發送升級請求;接收所述伺服器返回的JAVA歸檔文件JAR包信息,並根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包;根據下載的JAR包進行軟體升級;
[0086]所述伺服器,用於接收客戶端發送的升級請求;向所述客戶端發送JAR包信息,以使所述客戶端根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
[0087]本發明實施例採用JAR包升級安卓軟體,因為JAR包中僅包含代碼,不包含其他的資源文件,因此使用JAR包升級安卓軟體的安裝包體積比APK安裝包小,且升級時間短。

【專利附圖】

【附圖說明】
[0088]圖1為本發明實施例一提供的一種升級安卓軟體的方法;
[0089]圖2為本發明實施例二提供的一種升級安卓軟體的方法;
[0090]圖3為本發明實施例三提供的一種升級安卓軟體的設備;
[0091]圖4為本發明實施例四提供的一種升級安卓軟體的設備;
[0092]圖5為本發明實施例五提供的一種升級安卓軟體的系統;
[0093]圖6為本發明實施例六提供的一種升級安卓軟體的方法。

【具體實施方式】
[0094]本發明實施例客戶端向伺服器發送升級請求,根據伺服器返回的JAR包信息中的下載地址下載JAR包,並在下載完成將JAR放在安裝目錄文件下完成升級。通過下載JAR (JAVA Archive,JAVA歸檔文件)包進行安卓軟體的升級,因為JAR包體積較小,從而可以有效減小安裝包的體積。
[0095]為了使本發明所解決的技術問題、技術方案以及有效果更加清楚明白,以下結合附圖及實施例,對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0096]如圖1所示,本發明實施例一提供的一種升級安卓軟體的方法,該方法包括:
[0097]步驟101、客戶端向伺服器發送升級請求。
[0098]步驟102、客戶端接收伺服器返回的JAVA歸檔文件JAR包信息,並根據JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包。
[0099]步驟103、客戶端根據下載的JAR包進行軟體升級。
[0100]步驟101中,本發明實施例中客戶端程序啟動後,會自動向伺服器發送軟體升級的請求。升級的請求包含客戶端程序名稱和客戶端程序版本等信息的升級請求,以使伺服器確定升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信息。
[0101]步驟102中,客戶端接收伺服器返回的JAR包信息,其中JAR包信息包括由各個JAR包名稱組成的JAR包列表或JAR包序列。每個JAR包名稱又對應籤名信息、下載地址、JAR包版本號、圖標下載地址等信息。
[0102]優選地,客戶端根據下列方式確定需要升級的JAR包的JAR包名稱:
[0103]客戶端從JAR包信息包括的所有JAR包名稱中,確定第一特定JAR包名稱和第二特定JAR包名稱。
[0104]客戶端將第一特定JAR包名稱和第二特定JAR包名稱對應的JAR包作為需要升級的JAR包。
[0105]其中,第一特定JAR包名稱為客戶端的安裝目錄下沒有相同名稱的JAR包名稱。
[0106]第二特定JAR包名稱為客戶端的安裝目錄下有相同名稱,但JAR包信息包括的對應的版本號高於客戶端的安裝目錄下相同名稱對應的版本號的JAR包名稱。
[0107]本發明實施例中,第一特定JAR包名稱對應的模塊功能為客戶端程序新增加的功能,若需要升級的JAR包為第一特定JAR包名稱對應JAR包,則需要下載該JAR包。若第二特定JAR包名稱對應的模塊功能在客戶端程序中已經存在,需要升級的功能所的JAR包,則需要比較JAR包信息包括的對應的版本號和安裝目錄下相同名稱對應的版本號,若JAR包信息包括的對應的版本號高於安裝目錄下相同名稱對應的版本號,則存在第二特定JAR包名稱,需要下載該JAR包,若JAR包信息包括的對應的版本號不高於安裝目錄下相同名稱對應的版本號,則不存在第二特定JAR包名稱,無需下載該JAR包。
[0108]優選地,客戶端通過下列方式確定客戶端的安裝目錄下相同名稱對應的版本號:
[0109]客戶端通過調用第一類中的接口,確定客戶端的安裝目錄下相同名稱對應的版本號。
[0110]本發明實施例中,獲取安裝目錄下相同名稱對應的版本號具體為:
[0111]客戶端程序將JAR包加載到內存中。
[0112]客戶端程序找到JAR包下的名為Funct1nFileInfo的類。該類實現了Ifunct1nFileInfo接口,該接口中定義了名為getVers1nO的獲取版本號方法。
[0113]
[0114]
[0115]客戶端程序通過調用Funct1nFileInfo類中的名為getVers1nO的方法獲取JAR包的版本號。
[0116]
[0117]
[0118]
[0119]優選地,客戶端接收伺服器返回的JAR包信息之後,還包括:
[0120]若JAR包信息中包括需要下載的JAR包對應的圖標下載地址,客戶端根據圖標下載地址下載圖標。
[0121]客戶端根據下載的JAR包進行軟體升級,包括:
[0122]客戶端下載的圖標保存到客戶端的安裝目錄下。
[0123]本發明實施例中,從JAR包信息包括的所有JAR包名稱中,確定存在第一特定JAR包名稱,則需要下載該JAR包。同時需要下載該JAR包對應的圖標,並將該圖標保存到客戶端的安裝目錄下。
[0124]步驟103中,客戶端根據下載的JAR包進行軟體升級。
[0125]優選地,客戶端根據下載的JAR包進行軟體升級,包括:
[0126]客戶端將下載的第一特定JAR包名稱對應的JAR包保存到客戶端的安裝目錄下;
[0127]客戶端將下載的第二特定JAR包名稱對應的JAR包替換客戶端的安裝目錄下與下載的JAR包的名稱相同的JAR包。
[0128] 本發明實施例中,第一特定JAR包名稱對應的JAR包,原客戶端程序不存在,因此直接保存到客戶端的安裝目錄下即可。對於第二特定JAR包名稱對應的JAR包,需要將該JAR包下載完成以後替換原JAR包。
[0129]現有技術中利用APK進行升級軟體,首先用戶需要確認下載APK,下載完成以後用戶需要確認安裝ΑΡΚ,安裝過程中需要停用軟體進行安裝,安裝完成以後才可以運行。而本發明實施例中,客戶端程序以後會自動發送升級請求,自動下載JAR包,且無需停用軟體,直接將JAR包保存在安裝目錄下即可,在需要調用時即可隨時調用,無需用戶確認安裝,用戶感覺不到升級的過程。也可以提示用戶進行升級,由用戶選擇是否升級,或者在升級完成以後提示用於該軟體已進行升級。
[0130]優選地,客戶端根據下載的JAR包進行軟體升級,包括:
[0131]客戶端根據JAR包信息中包括的JAR包對應的籤名信息進行驗證,對在下載完的JAR包進行驗證,並在驗證通過後根據下載的JAR包進行軟體升級。
[0132]本發明實施例中,對於下載的JAR包需要進行籤名認證。具體步驟分為加籤和解密兩個過程:
[0133]加籤:
[0134]步驟一、伺服器對生成的JAR包進行MD5 (Message Digest Algorithm5,消息摘要算法第五版)摘要算法,得到JAR包的摘要信息。
[0135]步驟二、伺服器使用私鑰對步驟1031生成摘要信息進行DES (Data Encrypt1nAlgorithm,數據加密算法)加密。
[0136]步驟三、伺服器使用RSA(Ron Rivest、Adi Shamir、Leonard Adleman 三人名字的縮寫,公鑰加密算法)的私鑰對DES加密時使用的對稱密鑰進行加密,得到DES對稱密鑰加密信息。
[0137]步驟四、伺服器將DES加密後的摘要信息和DES對稱密鑰加密信息發送到客戶端。
[0138]解密:
[0139]步驟五、客戶端收到信息後,客戶端使用RSA的公鑰對DES對稱密鑰加密信息解密得到DES的對稱密鑰。
[0140]步驟六、客戶端使用DES對稱密鑰對DES加密後的摘要信息進行解密,得到明文的摘要信息A。
[0141]步驟七、客戶端對生成的JAR包進行MD5摘要算法,得到JAR包的摘要信息B。比較兩摘要信息A與摘要信息B,如果相同則籤名驗證通過,否則籤名驗證失敗。
[0142]客戶端程序驗證籤名信息的作用是驗證JAR包的完整性、JAR包是否被篡改、JAR包是否由所述伺服器發送。
[0143]優選地,該方法還包括:
[0144]客戶端在需要調用JAR包時,將JAR包加載到內存中。
[0145]客戶端通過JAVA的反射機制,獲取加載到內存中的JAR包的名稱。
[0146]客戶端根據JAR包的名稱,調用JAR包中的第二類,以實現調用JAR包。
[0147]本發明實施例中,代碼要得到運行一定要先加載進入內存。是被客戶端程序調用的前提。通過JAVA的反射機制實現。
[0148]JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為JAVA語言的反射機制。
[0149]反射的時候需要知道映射對象的名稱與路徑信息。而這個名稱與路徑信息可以通過預先定義的協議獲得。對象的名稱就是IndexView,路徑就是JAR包的保存的名稱,該名稱通過JAR包/[目息獲得。
[0150]在創建JAR包時,需要在原src項目下新建一個package包。
[0151]在新建的包中創建名為IndexView的類並繼承View或者View的子類。
[0152]在新建的IndexView中定義如下構造方法,該方法是子功能模塊的入口方法,客戶端程序通過這個方法與JAR包建立通訊。
[0153]public IndexView (final Funct1nInActivity context) {}
[0154]具體的調用過程為:主程序調用子JAR包功能時建立通訊。主程序會固定調用JAR包的IndexView這個類。從而讓JAR包在程序中運行起來。相當於JAR包的啟動入口。實現客戶端程序發送消息到JAR包。JAR包可以在IndexView中返回數據數據給主程序,從而實現JAR包到客戶端程序的通訊。客戶端程序能發送數據到JAR包,JAR包可以返回數據到客戶端程序,這個過程稱之為通訊。View在安卓中是一個視圖。JAR包實現的功能需要與用戶交互就要繼承View。
[0155]本發明實施例中的JAR包指與客戶端程序即主程序對應的子JAR包。
[0156]由於子JAR包本身沒有安全機制,發明實施例採用籤名驗證的方式實現安全機制。伺服器對JAR包進行加籤,籤名信息通過加密傳輸到安卓客戶端軟體。安卓客戶端解密後對下載的JAR包進行籤名驗證。如果籤名驗證失敗,則不加載該JAR包,已確保JAR包不被篡改同時保證JAR包的完整性。
[0157]由於JAR包自身是代碼(字節碼)的集合,主程序通過動態加載和反射機制加載JAR包代碼時,非常容易出錯,比如代碼中的方法名不相同或者方法的參數類型不相同都會導致程序出錯。因此我們定義了協議來幫助JAR包和主程序通訊。創建JAR包時只需要按照定義好的流程和封裝好的接口創建即可完成JAR包代碼與主程序代碼的通訊,不需要額外的工作來建立連接。通過接口將JAR包包邏輯中的View(視圖)與邏輯分開,JAR包只需要現實自己的View(視圖)和邏輯即可,不用關心如何與主程序通訊。
[0158]由於JAR包中不包含資源文件,資源文件比如圖片,JAR包可以通過網絡獲取或者使用主程序中已有的資源。布局文件通過代碼來編寫實現,不依賴外部的資源。編寫代碼時遵循自定義的規範來避免因為加載JAR包代碼帶來的錯誤,比如JAR包代碼中不用是R類來獲取資源,而是應該通過資源名稱來獲取。程序設計為主程序不強依賴JAR包的內容。這樣只要JAR包遵循預定義的協議的前提下可以任意的修改業務邏輯和View(視圖)。
[0159]由於JAR包動態加載用到JAVA反射機制。但安卓系統有其特殊性,JAR包需要經過dx (批處理),經過dx處理的jar包才能被Android採用的dalvik (虛擬機)處理因此生成JAR包還需要dx處理。本發明實施例中的JAR包生成後自動進行dx處理,自動對JAR包進行加籤,JAR包生成後自動生成主程序APK,以便需要升級整個客戶端程序。本發明實施例中的JAR包採用Ant自動化編譯,通過修改build, xml文件實現自動編譯,自動生成JAR包和主程序APK,同時還會自動對JAR包進行加籤。
[0160]本發明實施例中自定義的協議包括:
[0161 ] 在原項目的src文件下新建一個package包。
[0162]在新建的包中創建名為funct1nFilelnfo的類並實現Ifunct1nFileInfo接口。
[0163]在新建的包中創建名為IndexView的類並繼承View或者View的子類。
[0164]在新建的IndexView中定義如下構造方法,該方法是子功能模塊的入口方法,主程序通過這個方法與JAR包建立通訊。
[0165]public IndexView (final Funct1nInActivity context) {}
[0166]本發明實施例採用JAR包更新方式,JAR包相比APK要小很多,一般APK體積為幾MB (MegaByte,兆字節)至幾十MB,而JAR包體積僅為幾KB (KiloByte,千字節)至幾十KB,從而大大減少用戶升級的成本,且升級時間較短。本發明實施例通過動態加載經過自定義的安全機制驗證且實現了自定義協議的JAR包,從而實現安卓軟體的升級,用戶升級更平滑。升級成本的降低以及用戶升級體驗的提升解決了因安卓軟體更新帶來的流量問題和頻繁更新時用戶需要頻繁確認的問題,從而可以提高軟體更新的頻率,更新頻率的提高,企業就能及時將修改、新功能等更新操作同步到用戶,同時用戶也能獲得更好的體驗。
[0167]如圖2所示,本發明實施例二提供的一種升級安卓軟體的方法,該方法包括:
[0168]步驟201、伺服器接收客戶端發送的升級請求。
[0169]步驟202、伺服器向客戶端發送JAVA歸檔文件JAR包信息,以使客戶端根據JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
[0170]由於安卓系統對JAR包沒有版本管理,因此本發明實施例提供了一套JAR包管理系統,該系統支持多應用JAR包分別管理以及同一應用多版本的JAR包分別管理,即不同的應用獲取到的JAR包是不同的,同一個應用的不同版本獲取到的JAR包也是不同的。可以對JAR包的狀態,包括啟用與停用,進行管理,可以管理JAR包的籤名信息,配置JAR包的下載地址等。伺服器接收客戶端發送的升級請求後,由JAR包管理系統配置相應的JAR包信息發送給客戶端。
[0171]優選地,伺服器向客戶端發送JAR包信息,包括:
[0172]伺服器接收客戶端發送包含客戶端程序名稱和客戶端程序版本的升級請求。
[0173]伺服器向客戶端發送JAR包信息,包括:
[0174]伺服器確定升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信肩、O
[0175]伺服器向客戶端返回確定的JAR包信息。
[0176]本發明實施例中,由於不同應用的客戶端程序版本不同,不同的客戶端程序版本對應的JAR包信息也不同,因為低程序版本的應用如果下載高程序版本的應用對應的JAR包,可能出現不兼容或無法調用資源等異常情況,因此伺服器需要將戶端程序名稱和客戶端程序版本對應的JAR包信息返回給客戶端。
[0177]本文提案能降低企業的運營和維護成本,通過自定義的JAR包管理系統,企業可以靈活的管理多個應用及應用版本的JAR包,從而降低企業開發和維護成本,提升新用戶體驗的同時能保留更多的老用戶。本發明實施例採用JAR包更新方式,JAR包相比APK要小很多,一般APK體積為幾MB至幾十MB,而JAR包體積僅為幾KB至幾十KB,從而大大減少用戶升級的成本,且升級時間較短。本發明實施例通過動態加載經過自定義的安全機制驗證且實現了自定義協議的JAR包,從而實現安卓軟體的升級,用戶升級更平滑。升級成本的降低以及用戶升級體驗的提升解決了因安卓軟體更新帶來的流量問題和頻繁更新時用戶需要頻繁確認的問題,從而可以提高軟體更新的頻率,更新頻率的提高,企業就能及時將修改、新功能等更新操作同步到用戶,同時用戶也能獲得更好的體驗。
[0178]針對上述方法流程,本發明實施例還提供一種升級安卓軟體的設備和系統,這些設備和系統的具體內容可以參照上述方法實施,在此不再贅述。
[0179]如圖3所示,本發明實施例三提供的一種升級安卓軟體的設備,該設備包括:
[0180]發送單元301,用於向伺服器發送升級請求。
[0181]接收單元302,用於接收伺服器返回的JAVA歸檔文件JAR包信息,並根據JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包。
[0182]升級單元303,用於根據下載的JAR包進行軟體升級。
[0183]優選地,升級單元303具體用於:
[0184]根據JAR包信息中包括的JAR包對應的籤名信息進行驗證,對在下載完的JAR包進行驗證,並在驗證通過後根據下載的JAR包進行軟體升級。
[0185]優選地,接收單元302還用於,根據下列方式確定需要升級的JAR包的JAR包名稱:
[0186]從JAR包信息包括的所有JAR包名稱中,確定第一特定JAR包名稱和第二特定JAR包名稱;將第一特定JAR包名稱和第二特定JAR包名稱對應的JAR包作為需要升級的JAR包。
[0187]其中,第一特定JAR包名稱為客戶端的安裝目錄下沒有相同名稱的JAR包名稱;第二特定JAR包名稱為客戶端的安裝目錄下有相同名稱,但JAR包信息包括的對應的版本號高於客戶端的安裝目錄下相同名稱對應的版本號的JAR包名稱。
[0188]優選地,升級單元303具體用於:
[0189]將下載的第一特定JAR包名稱對應的JAR包保存到客戶端的安裝目錄下;將下載的第二特定JAR包名稱對應的JAR包替換客戶端的安裝目錄下與下載的JAR包的名稱相同的JAR包。
[0190]優選地,接收單元302具體用於:
[0191]通過調用第一類中的接口,確定客戶端的安裝目錄下相同名稱對應的版本號。
[0192]優選地,接收單元302還用於:
[0193]若JAR包信息中包括需要下載的JAR包對應的圖標下載地址,根據圖標下載地址下載圖標。
[0194]升級單元303還用於,將下載的圖標保存到客戶端的安裝目錄下。
[0195]優選地,升級單元303還用於:
[0196]在需要調用JAR包時,將JAR包加載到內存中;通過JAVA的反射機制,獲取加載到內存中的JAR包的名稱;根據JAR包的名稱,調用JAR包中的第二類,以實現調用JAR包。
[0197]如圖4所示,本發明實施例四提供的一種升級安卓軟體的設備,該設備包括:
[0198]請求接收單元401,用於接收客戶端發送的升級請求。
[0199]信息發送單元402,用於向客戶端發送JAVA歸檔文件JAR包信息,以使客戶端根據JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
[0200]優選地,請求接收單元401具體用於:
[0201 ] 接收客戶端發送包含客戶端程序名稱和客戶端程序版本的升級請求。
[0202]信息發送單元402具體用於:
[0203]確定升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信息;返回確定的JAR包信息。
[0204]如圖5所示,本發明實施例五提供的一種升級安卓軟體的系統,該系統包括客戶端501和伺服器502。
[0205]客戶端501,用於向伺服器502發送升級請求;接收伺服器502返回的JAVA歸檔文件JAR包信息,並根據JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包;根據下載的JAR包進行軟體升級。
[0206]伺服器502,用於接收客戶端501發送的升級請求;向客戶端501發送JAR包信息,以使客戶端501根據JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
[0207]如圖6所示,本發明實施例六提供的一種升級安卓軟體的方法,該方法包括:
[0208]步驟601、客戶端程序開始運行。
[0209]步驟602、客戶端向伺服器發送升級請求,升級請求包括客戶端程序名稱與客戶端程序的戶端程序版本等信息。
[0210]步驟603、伺服器根據客戶端程序名稱與客戶端程序的戶端程序版本返回對應的JAR包列表,JAR包列表包括每個JAR包的JAR包信息,所述JAR包信息包括但不限於籤名信息、JAR包版本號、下載地址、圖標下載地址等。
[0211]步驟604、客戶端確定JAR包在本地是否存在,若存在執行步驟605,若不存在,執行步驟606。
[0212]步驟605、下載JAR包,執行步驟607。
[0213]步驟606、客戶端確定JAR包是否需要更新,若需要更新執行步驟607,若不需要執行更新,執行步驟607。
[0214]步驟607、驗證JAR包的籤名信息,若驗證通過執行步驟608,若不通過執行步驟609。
[0215]步驟608、加載JAR包代碼。
[0216]步驟609、結束。
[0217]本領域內的技術人員應明白,本申請的實施例可提供為方法、系統、或電腦程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、CD-ROM、光學存儲器等)上實施的電腦程式產品的形式。
[0218]本申請是參照根據本申請實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0219]這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0220]這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0221]儘管已描述了本申請的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請範圍的所有變更和修改。
[0222]顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和範圍。這樣,倘若本申請的這些修改和變型屬於本申請權利要求及其等同技術的範圍之內,則本申請也意圖包含這些改動和變型在內。
【權利要求】
1.一種升級安卓軟體的方法,其特徵在於,包括: 客戶端向伺服器發送升級請求; 所述客戶端接收所述伺服器返回的JAVA歸檔文件JAR包信息,並根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包; 所述客戶端根據下載的JAR包進行軟體升級。
2.如權利要求1所述的方法,其特徵在於,所述客戶端根據下載的JAR包進行軟體升級,包括: 所述客戶端根據所述JAR包信息中包括的JAR包對應的籤名信息進行驗證,對在下載完的JAR包進行驗證,並在驗證通過後根據下載的JAR包進行軟體升級。
3.如權利要求1所述的方法,其特徵在於,所述客戶端根據下列方式確定需要升級的JAR包的JAR包名稱: 所述客戶端從所述JAR包信息包括的所有JAR包名稱中,確定第一特定JAR包名稱和第二特定JAR包名稱; 所述客戶端將所述第一特定JAR包名稱和第二特定JAR包名稱對應的JAR包作為需要升級的JAR包; 其中,所述第一特定JAR包名稱為所述客戶端的安裝目錄下沒有相同名稱的JAR包名稱; 所述第二特定JAR包名稱為所述客戶端的安裝目錄下有相同名稱,但所述JAR包信息包括的對應的版本號高於所述客戶端的安裝目錄下相同名稱對應的版本號的JAR包名稱。
4.如權利要求3所述的方法,其特徵在於,所述客戶端根據下載的JAR包進行軟體升級,包括: 所述客戶端將下載的所述第一特定JAR包名稱對應的JAR包保存到所述客戶端的安裝目錄下; 所述客戶端將下載的所述第二特定JAR包名稱對應的JAR包替換所述客戶端的安裝目錄下與下載的JAR包的名稱相同的JAR包。
5.如權利要求3所述的方法,其特徵在於,所述客戶端通過下列方式確定所述客戶端的安裝目錄下相同名稱對應的版本號: 所述客戶端通過調用第一類中的接口,確定所述客戶端的安裝目錄下相同名稱對應的版本號。
6.如權利要求1所述的方法,其特徵在於,所述客戶端接收所述伺服器返回的JAR包信息之後,還包括: 若所述JAR包信息中包括需要下載的JAR包對應的圖標下載地址,所述客戶端根據所述圖標下載地址下載圖標; 所述客戶端根據下載的JAR包進行軟體升級,包括: 所述客戶端下載的圖標保存到所述客戶端的安裝目錄下。
7.如權利要求1所述的方法,其特徵在於,該方法還包括: 所述客戶端在需要調用JAR包時,將所述JAR包加載到內存中; 所述客戶端通過JAVA的反射機制,獲取加載到內存中的JAR包的名稱; 所述客戶端根據所述JAR包的名稱,調用JAR包中的第二類,以實現調用JAR包。
8.一種升級安卓軟體的方法,其特徵在於,包括: 伺服器接收客戶端發送的升級請求; 所述伺服器向所述客戶端發送JAVA歸檔文件JAR包信息,以使所述客戶端根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
9.如權利要求8所述的方法,其特徵在於,所述伺服器向所述客戶端發送JAR包信息,包括: 所述伺服器接收所述客戶端發送包含客戶端程序名稱和客戶端程序版本的升級請求; 所述伺服器向所述客戶端發送JAR包信息,包括: 所述伺服器確定所述升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信息; 所述伺服器向所述客戶端返回確定的所述JAR包信息。
10.一種升級安卓軟體的設備,其特徵在於,包括: 發送單元,用於向 伺服器發送升級請求; 接收單元,用於接收所述伺服器返回的JAVA歸檔文件JAR包信息,並根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包; 升級單元,用於根據下載的JAR包進行軟體升級。
11.如權利要求10所述的設備,其特徵在於,所述升級單元具體用於: 根據所述JAR包信息中包括的JAR包對應的籤名信息進行驗證,對在下載完的JAR包進行驗證,並在驗證通過後根據下載的JAR包進行軟體升級。
12.如權利要求10所述的設備,其特徵在於,所述接收單元還用於,根據下列方式確定需要升級的JAR包的JAR包名稱: 從所述JAR包信息包括的所有JAR包名稱中,確定第一特定JAR包名稱和第二特定JAR包名稱;將所述第一特定JAR包名稱和第二特定JAR包名稱對應的JAR包作為需要升級的JAR 包; 其中,所述第一特定JAR包名稱為所述客戶端的安裝目錄下沒有相同名稱的JAR包名稱;所述第二特定JAR包名稱為所述客戶端的安裝目錄下有相同名稱,但所述JAR包信息包括的對應的版本號高於所述客戶端的安裝目錄下相同名稱對應的版本號的JAR包名稱。
13.如權利要求12所述的設備,其特徵在於,所述升級單元具體用於: 將下載的所述第一特定JAR包名稱對應的JAR包保存到所述客戶端的安裝目錄下;將下載的所述第二特定JAR包名稱對應的JAR包替換所述客戶端的安裝目錄下與下載的JAR包的名稱相同的JAR包。
14.如權利要求12所述的設備,其特徵在於,所述接收單元具體用於: 通過調用第一類中的接口,確定所述客戶端的安裝目錄下相同名稱對應的版本號。
15.如權利要求10所述的設備,其特徵在於,所述接收單元還用於: 若所述JAR包信息中包括需要下載的JAR包對應的圖標下載地址,根據所述圖標下載地址下載圖標; 所述升級單元還用於,將下載的圖標保存到所述客戶端的安裝目錄下。
16.如權利要求10所述的設備,其特徵在於,所述升級單元還用於: 在需要調用JAR包時,將所述JAR包加載到內存中;通過JAVA的反射機制,獲取加載到內存中的JAR包的名稱;根據所述JAR包的名稱,調用JAR包中的第二類,以實現調用JAR包。
17.一種升級安卓軟體的設備,其特徵在於,包括: 請求接收單元,用於接收客戶端發送的升級請求; 信息發送單元,用於向所述客戶端發送JAVA歸檔文件JAR包信息,以使所述客戶端根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
18.如權利要求17所述的設備,其特徵在於,所述請求接收單元具體用於: 接收所述客戶端發送包含客戶端程序名稱和客戶端程序版本的升級請求; 所述信息發送單元具體用於: 確定所述升級請求包括的客戶端程序名稱和客戶端程序版本對應的JAR包信息;返回確定的所述JAR包信息。
19.一種升級安 卓軟體的系統,其特徵在於,包括客戶端和伺服器; 所述客戶端,用於向伺服器發送升級請求;接收所述伺服器返回的JAVA歸檔文件JAR包信息,並根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包;根據下載的JAR包進行軟體升級; 所述伺服器,用於接收客戶端發送的升級請求;向所述客戶端發送JAR包信息,以使所述客戶端根據所述JAR包信息中包括的需要升級的每個JAR包對應的下載地址下載JAR包,並根據下載的JAR包進行軟體升級。
【文檔編號】G06F9/445GK104077160SQ201410197944
【公開日】2014年10月1日 申請日期:2014年5月12日 優先權日:2014年5月12日
【發明者】聶旭陽, 趙軍, 王斌, 王志成, 王海軍 申請人:聯動優勢電子商務有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀