一、添加依賴導入升級SDK
implementation 'com.tencent.bugly:crashreport_upgrade:latest.release'
implementation 'com.tencent.bugly:nativecrashreport:latest.release'
注意:升級SDK已經集成crash上報功能,已經集成Bugly的用戶需要註釋掉原來Bugly的jcenter庫;
二、各項參數配置(權限聲明、Activity配置、FileProvider配置):
① 權限聲明:
<!-- 騰訊bugly及應用更新所需權限 -->
<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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
② Activity配置,在<application>標籤中加入部分:
<activity
android:name="com.tencent.bugly.beta.ui.BetaActivity"
android:configChanges="keyboardHidden|orientation|screenSize|locale"
android:theme="@android:style/Theme.Translucent" />
③ FileProvider配置,在<application>標籤中加入部分:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
三、初始化SDK:
Bugly.init(getApplicationContext(), "申請的應用APPId", false); //(必填)初始化,可在application中設置,也可在APP進入主窗口後(MainActivity)需要時設置
Beta.autoCheckUpgrade = false; //(可選)true表示初始化時自動檢查升級; false表示不會自動檢查升級,需要手動調用Beta.checkUpgrade()方法;
經過上面三步,bugly升級SDK算是集成好了,下面來看如何使用。
四、發佈新版本
1.進入內測分發頁面選擇註冊的APP,選擇全量更新,點擊應用升級下的發佈新版本,上傳要升級的APP的版本(上傳APP的versioncode必須不低於外發版本的versiocode,否則用戶檢測不到更新)
2.使用默認策略配置,點擊創建策略
3.策略創建完成後會回到版本編輯界面,點擊啓動,使策略生效
五、驗證策略是否開啓,體驗Bugly版本更新
啓動策略後會有大概5分鐘以上的延遲,可在設備上安裝低版本的APP,延遲過後進入應用便會看到更新提示框
上面的更新彈出框爲bugly的自動檢測提示,有時候需要用戶手動檢測,bugly爲大家提供了些SDK高級配置的參考文檔(傳送門:Bugly Android 應用升級 SDK 高級配置),我在demo中用到了Beta.checkUpgrade()方法(手動檢測更新)和接口UpgradeInfo(獲取本地已有升級策略,非實時,可用於界面紅點展示),效果如下圖;
1)關於手動檢測更新:需要在代碼中用到的地方手動調用 Beta.checkUpgrade() 方法;
2)關於界面紅點展示(我在demo中設置爲有新版本時加載按鈕右上角呈現紅點,沒有新版本時右上角呈現灰點或者不顯示):在代碼中需要的地方調用 Beta.getUpgradeInfo() 方法獲取本地已有的升級策略進行判斷,爲空(null)則無新版本。
3)接下來再看下高級設置中的自定義更新彈出框樣式,我們可以根據自己需求更改更新彈出框的樣式,設置自定義升級對話框UI佈局的方法如下:
Beta.upgradeDialogLayoutId = R.layout.upgrade_dialog;
upgrade_dialog爲項目的佈局資源,可根據需要自己命名,除此之外用戶要按要求給控件添加tag標籤:
-
標題:beta_title,如:android:tag="beta_title"
-
升級信息:beta_upgrade_info 如: android:tag="beta_upgrade_info"
-
更新屬性:beta_upgrade_feature 如: android:tag="beta_upgrade_feature"
-
取消按鈕:beta_cancel_button 如:android:tag="beta_cancel_button"
-
確定按鈕:beta_confirm_button 如:android:tag="beta_confirm_button"
注意:tag標籤要對應的添加到你自己UI佈局中的相關功能控件上,比如你佈局上一個方形按鈕是用戶點擊後確定升級的,設置的tag標籤就要是:android:tag="beta_confirm_button" ,可以參考我的 自定義UI佈局xml文件。只要給控件添加上這幾個必要的tag標籤,升級對話框的UI我們就可以根據自己需要設置了,我設置的樣式如下圖(資源文件可在我的項目中下載:項目地址):