使用Bugly應用升級SDK實現App更新
Android Studio 配置
依賴配置
在 app/build.gradle
下加入依賴
dependencies {
compile 'com.tencent.bugly:crashreport_upgrade:latest.release'1.2.0
compile 'com.tencent.bugly:nativecrashreport:latest.release'
}
引數配置
1. 許可權配置
在 AndroidMainfest.xml
中進行以下配置:
<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" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2. Activity 配置
<activity
android:name="com.tencent.bugly.beta.ui.BetaActivity"
android:configChanges="keyboardHidden|orientation|screenSize|locale"
android:theme="@android:style/Theme.Translucent" />
3. 配置 FileProvider
如果您想相容 Android N 或者以上的裝置,必須要在 AndroidManifest.xml
檔案中配置 FileProvider
來訪問共享路徑的檔案
<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>
在 res
目錄新建 xml
資料夾,建立 provider_paths.xml
檔案,檔案內容如下
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<!-- /storage/emulated/0/Download/${applicationId}/.beta/apk-->
<external-path name="beta_external_path" path="Download/"/>
<!--/storage/emulated/0/Android/data/${applicationId}/files/apk/-->
<external-path name="beta_external_files_path" path="Android/data/"/>
</paths>
4. 混淆配置
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
-keep class android.support.**{*;}
SDK的使用
封裝一個工具類
為了維護方便,我封裝了一個工具類,在工具類中統一管理 Bugly 的 API
public class BuglyUtil {
/**
* 初始化SDK
*/
public static void init(Context context) {
// true表示初始化時自動檢查升級; false表示不會自動檢查升級,需要手動呼叫Beta.checkUpgrade()方法;
Beta.autoCheckUpgrade = false;
// 只允許在MainActivity上顯示更新彈窗,其他activity上不顯示彈窗
Beta.canShowUpgradeActs.add(MainActivity.class);
Bugly.init(context, "註冊時申請的APPID", false);
}
/**
* 靜默檢查更新,並彈窗
*/
public static void checkUpdate() {
/**
* @param isManual 使用者手動點選檢查,非使用者點選操作請傳false
* @param isSilence 是否顯示彈窗等互動,[true:沒有彈窗和toast] [false:有彈窗或toast]
*/
Beta.checkUpgrade(false, false);
}
}
關於 Beta
類的 API,可以檢視Bugly Android 應用升級 SDK 高階配置
使用
在 Application
中初始化 SDK
public class AppApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
BuglyUtil.init(this);
}
}
在 MainActivity
中檢查更新
public class MainActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BuglyUtil.checkUpdate();
}
}
參考
相關文章
- Android技術分享| Bugly 應用升級自定義UIAndroidUI
- 使用 tableflip 實現應用的優雅熱升級
- 使用阿里 Druid 實現應用級waf阿里UI
- Kubernetes 實戰——升級應用(Deployment)
- ios12升級, App應用崩潰閃退iOSAPP應用崩潰
- GeneralUpdate實現應用程式更新
- JavaFX桌面應用-版本升級Java
- [教程] 使用 Agora SDK 實現視訊對話應用 HouseParty – 附 iOS 原始碼GoiOS原始碼
- nginx實現平滑升級Nginx
- Matrikon FLEX OPC UA SDK升級!現在支援反向連線!Flex
- Util 應用框架 UI 全新升級框架UI
- 不要升級!不要升級!MacOS 14.4 引發Java 應用崩潰MacJava應用崩潰
- 【Flutter 基礎】 更新&升級Flutter
- 使用 .NET 升級助手將.NET Framework應用遷移到.NET 5Framework
- Android 騰訊Bugly熱更新接入(Kotlin語言)AndroidKotlin
- Holer實現手機APP應用外網訪問本地WEB應用APPWeb
- React 同構應用 PWA 升級指南React
- 應用身份服務IDaaS重磅升級
- 應用升級SpringCloud版本時的注意事項(Dalston升級到Edgware)SpringGCCloud
- flutter_xupdate 一鍵實現Flutter應用版本更新Flutter
- 【VMware vCenter】使用Reduced Downtime Update (RDU)升級更新vCenter Server。Server
- java實現“資料平滑升級”Java
- 如何實現OpenHarmony的OTA升級
- 使用 updateAppConfig 更新 Nuxt 應用配置APPUX
- App Deploy as Code! SAE & Terraform 實現 IaC 式部署應用APPORM
- 使用Angular cli升級AngularJS專案——(一)引導Angular混合應用AngularJS
- iOS直播SDK升級文件_2018_10_18iOS
- Senparc.Weixin SDK v5.0 升級公告
- 全面升級 —— Apache RocketMQ 5.0 SDK 的新面貌ApacheMQ
- React Native SDK 升級問題及分包方案React Native
- 使用融雲 CallPlus SDK,一小時實現一款 1V1 影片應用
- 傳統應用系統架構向微服務應用架構升級的實戰案例微服務應用架構
- 更新應用時,如何實現 K8s 零中斷滾動更新?K8S
- AWS RDS強制升級的應對之道——版本升級的最佳實踐
- 如何基於 Agora Android SDK 在應用中實現視訊通話?GoAndroid
- 揭秘:如何為 Kubernetes 實現原地升級
- 用node實現一個簡單的聊天室—— 升級版
- JAVA 實現《超級瑪麗升級版》遊戲Java遊戲
- 超級app+輕應用,移動應用崛起新契機APP