使用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 文件夾,創(chuàng)建 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的使用

封裝一個工具類

為了維護方便,我封裝了一個工具類,在工具類中統(tǒng)一管理 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();
    }
}

參考

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,319評論 25 708
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,896評論 2 45
  • 20170920高麗新心賞第37天 親愛的兒子,今天是星期三,是原先我們約好你洗碗的日子。吃完晚飯你坐在沙發(fā)上先在...
    rygao閱讀 241評論 0 3
  • 第79天鍛煉,今天上班。 感謝倩雯、夢娜和我聊天! 霧滿攔江《怎樣讀書,才會通透》(一): 我們讀書,是要應用的,...
  • 2017年06月19日(農歷五月廿五)星期一 晴 今天讀經班,夏天邦小朋友是奶奶送來的,平時都是爺爺送來的。奶奶倒...
    中和lxy閱讀 371評論 0 2

友情鏈接更多精彩內容