天天看點

Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!

算下來,tomcat伺服器已經寫了很長一段時間了,一直說拿他來搞點事 情,也一直沒做,今天剛好有空,交流群還有人請教,就尋思着把一些相關性的原理和基礎操作寫下來,雖然我網絡這一塊還是不怎麼紮實,嘿嘿,還記得我們怎麼搭建的伺服器嗎? 我們建立一個項目tomcatversion 這邊先來說一下原理,我們做的小例子也是十分的簡單,一個首頁,我們用handler實作,然後同步檢測目前版本号和系統的版本号對比,如果有更新則彈出提示框提示更新,點選确定開始下載下傳apk,同時顯示進度,等下載下傳完成之後啟動新下載下傳的apk進行安裝,如果點選取消,進入首頁,如果沒有更新,則直接進入首頁,思路應該很清晰吧!那好,我們開始!

1.搭建tomcat伺服器

2.建立一個indexactivity類,并且在androidmanifest.xml裡注冊并且設定為主入口

3.準備一張首頁的圖檔

可有可無,這裡作為示範就去網上下載下傳了一張

4.版本更新接口

也就是伺服器的位址,我們這裡也就直接自己寫一段簡單的json了
我們把他放在伺服器裡面】
Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!
亂碼請無視,浏覽器的鍋

5.網絡權限

布局就沒什麼内容了,一個進度,一個文本
首先你的首頁的文本上需要擷取目前應用的版本号吧
我們列印出來的log
Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!
我們需要的就是這個name(版本名稱)
這段json還是十分的簡單的,我們直接就用原生的方式解析了,本來想用volley的,但是示範的話,希望各位自己根據需求使用
這裡我們寫了一個utils來轉換流
這樣我們就可以把json列印出來了
Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!
既然擷取到了,那我們就開始解析json吧 在log後面繼續寫代碼
這樣我們就解析完成了
這裡我們可以根據name或者code的比較來判斷是否有更新,有更新的話,彈出提示框,點确定再更新,我這裡就比較code了,先寫以惡搞擷取code的方法
然後我們接着剛才解析完json的地方比對,我們先把伺服器的json資料改了
這樣就會提示更新了,我們檢修
子線程中我們是不能彈框的,是以我們用handler,當我們發送update_yes的時候就彈框,也就是執行我們彈框的方法
這裡我用了一個自定義的dialog’
他需要用到一些資源
接着我們再執行一下
Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!
我們現在再來處理一下沒有更新的邏輯,沒有更新的話直接跳首頁面,我們寫一個方法
但是這樣還是有個問題,他沒有更新一下子就跳過去了,是以我們在發消息的時候先讓線程睡一會兒
但是這裡又出現了一個新的問題,畢竟是網絡問題,他是耗時的,這樣的話,萬一等太久了使用者體驗也上不去啊,是以我們這裡要做一個優化 我們在開始網絡請求的時間記錄一個時間
然後再網絡請求結束的時候去計算時間并且計算一共用了多少時間
涉及到下載下傳,這裡你可以使用很多的開源架構,我這裡使用的是xutils 我們下載下傳之後拷貝在libs裡就可以用了,用起來也很簡單,使用之前先加個權限
然後開始下載下傳
這裡的代碼邏輯也是十分的簡單的,多吧,我們來看一下效果‘
Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!
更新的包體積有點小,是以一下子就百分之百了,我們去sd卡更目錄看一下
Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!
确定是下載下傳完成了,但是下完完之後啥也沒發生啊,這就要我們再次優化了
下載下傳完之後自動進入安裝界面,這才是真正的體驗,我們在onsuccess()方法中
我們來看看效果
Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!Android伺服器——使用TomCat實作軟體的版本檢測,更新,以及下載下傳更新進度!
大緻的一個邏輯思路就是這樣了