我們都知道,在app開發(fā)完成發(fā)版的時(shí)候,會上傳到各個(gè)應(yīng)用市場,來增加用戶量,但是這些市場往往會有一個(gè)審核的周期,等審核通過之后才會推送給用戶來下載,并且,當(dāng)我們某個(gè)版本出現(xiàn)嚴(yán)重bug,或者新增了一個(gè)特色功能的時(shí)候,我們會希望用戶很快就能更新我們最新的app,這時(shí)候就要用到 應(yīng)用檢測更新
了。
通常,實(shí)現(xiàn)應(yīng)用更新一般我們有兩種方法。
第一種 自己搭建后臺檢測是否有更新
這種方法通常要求客戶端啟動后,在某個(gè)時(shí)機(jī),利用當(dāng)前版本的某些信息(版本號,渠道號等)來請求服務(wù)器,服務(wù)器處理后返回是否需要升級等信息。如果需要升級,則下載最新的App安裝包進(jìn)行安裝。
第二種 利用現(xiàn)有的比較成熟的第三方框架
現(xiàn)有的用戶量比較大的有友盟,騰訊bugly,訊飛平臺等。
公司最開始用的是友盟自動更新 ,但是由于某些原因,10.15友盟會關(guān)閉自動更新這個(gè)服務(wù),對比了幾個(gè)比較成熟的第三方自動更新,最后決定使用bugly這個(gè),集成和使用也比較簡單,下面來詳細(xì)介紹集成和使用步驟。
1.注冊bugly賬號以及添加產(chǎn)品
在https://bugly.qq.com 這個(gè)網(wǎng)址直接用qq登錄,然后點(diǎn)擊右上角-我的產(chǎn)品,如果沒有添加過產(chǎn)品的話,點(diǎn)擊 新建產(chǎn)品 ,
然后會跳轉(zhuǎn)到另一個(gè)頁面:
帶星號的是必填選項(xiàng),當(dāng)我們把必填信息填寫完成后,點(diǎn)擊最下方的保存按鈕即可保存。
此時(shí)再次點(diǎn)擊右上角-我的產(chǎn)品,就會看到我們新建的這個(gè)產(chǎn)品了,點(diǎn)擊某個(gè)產(chǎn)品,會跳轉(zhuǎn)到產(chǎn)品詳情界面,在右上角-更多-產(chǎn)品設(shè)置中可以查詢到改產(chǎn)品的AppId,這里就不放圖了。
2.在項(xiàng)目中集成
1.新建一個(gè)項(xiàng)目,在app目錄下的gradle文件中添加如下配置:
defaultConfig 下:
ndk {
//設(shè)置支持的SO庫架構(gòu)
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
dependencies 下:
compile 'com.tencent.bugly:crashreport_upgrade:latest.release'//其中l(wèi)atest.release指代最新版本號,也可以指定明確的版本號,例如1.0.0
compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中l(wèi)atest.release指代最新版本號,也可以指定明確的版本號,例如2.2.0
2.AndroidMainfest相關(guān)配置
權(quán)限配置:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_LOGS" /><!--保存資源到SD卡--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Activity配置:
<activity android:name="com.tencent.bugly.beta.ui.BetaActivity" android:theme="@android:style/Theme.Translucent" />
混淆:
-keep public class com.tencent.bugly.**{*;}
3.代碼中使用
在應(yīng)用初始化的時(shí)候調(diào)用Bugly.init(getApplicationContext(), "注冊時(shí)申請的APPID", false)
即可。
3.在bugly后臺發(fā)布新版本
在bugly后臺我們點(diǎn)擊某個(gè)產(chǎn)品,會進(jìn)入產(chǎn)品詳情頁面,
點(diǎn)擊應(yīng)用升級-發(fā)布新升級,這時(shí)會彈出一個(gè)對話框,讓我們選擇升級的設(shè)置(策略),這里直接放一張官網(wǎng)的圖:

可以看到,我們可以設(shè)置很多升級相關(guān)的內(nèi)容:
1.升級方式-用戶選擇升級或者強(qiáng)制升級。
2.彈窗樣式-可以簡單的向用戶展示版本信息,更新日志等,也可以添加圖片banner給用戶,誘導(dǎo)升級。
3.高級配置-升級的觸發(fā)時(shí)機(jī)等(某些渠道單獨(dú)升級,在某個(gè)時(shí)間段才彈窗提示用戶升級等。)
設(shè)置完成后點(diǎn)擊 創(chuàng)建策略 ,然后刷新 應(yīng)用升級 頁面,會看到我們創(chuàng)建的策略。
我這個(gè)升級策略已經(jīng)啟動了,如果你的沒有啟動,將鼠標(biāo)放到策略的 狀態(tài)與操作 欄下,會提示你進(jìn)行開啟。當(dāng)策略開啟后,客戶端打開以后,默認(rèn)在3s后檢測是否有新版本,如果檢測到的話,就會彈窗提示用戶升級。
注意:發(fā)布升級的版本的版本號必須大于客戶端已安裝版本的版本號,否則將會檢測不到新版本。
以上是使用bugly進(jìn)行版本升級的最基本的使用方法,我們還可以有一個(gè)復(fù)雜的操作,比如在代碼中添加多渠道 以支持按渠道升級等。