Android 實現應用升級方案(暨第三方自動升級服務無法使用后的解決方案)


第三方推送升級服務不再靠譜:
以前在做Android開發的時候,在應用升級方面都是使用的第三方推送升級服務,但是目前因為一些非技術性的問題,一些第三方廠商不再提供自動升級服務,比如友盟,那么當第三方推送升級服務不再靠譜的時候,需要怎么做?

為什么第三方推送升級服務會不靠譜:
自動升級服務因為面臨N多非技術的挑戰,比如應用市場(除了Google Play之外,國內也有越來越多的市場渠道會對自動更新插件的App審核拒絕)、部分系統廠商的限制(系統廠商可能會禁止掉非系統的更新,導致更新組件報錯或者拋異常)以及部分運營商的攔截(下載CDN鏈接在某些地區的運營商會被禁止訪問),甚至APK的存儲服務還會面臨政策上的風險。

解決方案:
自己實現一套推送升級服務,基本的實現思路是通過推送下載鏈接或者獲取下載鏈接的方式,來通知終端用戶有新版本更新,進而引導用戶去點擊推送的消息,下載新版本。

應用升級服務的基本流程:
1.在服務器上面上傳更新包,填寫更新的版本信息和更新日志,將更新包存儲在服務器的文件系統(一般用雲服務器的CDN服務),將版本(Version-code),更新日志,文件md5及其他配置信息存儲到數據庫。
2.客戶端請求服務器並傳入客戶端的版本信息,服務端將客戶端的版本信息和數據庫中存儲的信息進行比較,如果需要更新則返回更新狀結果碼並回傳更新包的url,否則返回不更新的狀態碼。
3.客戶端收到服務器的返回結果后,進行數據的完整性校驗,主要校驗的是相關返回字段是否能夠符合規則,然后對返回結果進行判斷,判斷是否需要更新,如果需要更新,則彈出對話框或者發送Notification來通知用戶有新版本更新,用戶確認后下載安裝包,安裝新版本。

基本的實現思路就是這樣,獲取升級信息的入口和檢測時機根據各自的產品需求自己定奪。另外,自己實現的推送升級服務上傳的安裝包最好是自己單獨打的渠道包,這樣才不會在和三方市場結算的時候出現一些統計方面的問題。

本文提供的解決方案不支持增量更新,僅供全量更新需求的人參考。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM