android bugly 坑位

說明

騰訊Bugly,為移動開發(fā)者提供專業(yè)的異常上報和運營統(tǒng)計,幫助開發(fā)者快速發(fā)現(xiàn)并解決異常,同時掌握產品運營動態(tài),及時跟進用戶反饋。
主要是三個功能

直接繼承

導入最新aar


image.png

初始化


image.png

這樣就把異常和升級都繼承了。

1、先說CrashReport ,這樣后臺缺少

image.png

用戶id 和型號沒有。用戶id 是可以自己去定義的。

  CrashReport.setUserId("9527");
  CrashReport.setDeviceModel(appContext, "" + OtherUtils.getModel());

init 之前把這倆加上就 ok 了,如果 沒有用id ,登錄之后添加上也可以。

so符號表 Android平臺中,Debug SO文件是指具有調試信息的SO文件,其中包含用戶還原堆棧的符號信息。
沒有用到,我覺得能用到so中的,都不差這個了吧。

2、再說版本更新
自定義UI

它的UI


image.png

我的UI

image.png

運行之后的UI


image.png

這里我修改了


image.png

title、banner、版本更新內容。

代碼如下

image.png

// 自動更新。
Beta.autoCheckUpgrade = true;

    Beta.enableNotification = true;

//wifi 下自動下載
Beta.autoDownloadOnWifi = true;
Beta.canShowApkInfo = true;

layout 中需要注意的是
添加android:tag="beta_upgrade_feature"

這里需要添加 五個


image.png

界面隨你寫了。
替換banner 圖


image.png

這里寫在start 里面的,create里面報錯。

在init 之前進行。。

選擇他的原因是 每次可以有1,000,000 次的版本更新。
可以每個市場做一個,


image.png

渠道寫一個華為小米oppo登錄,這樣戳戳有余了吧。。。
自定義UI 這樣很好吧。

最后統(tǒng)計模塊看


image.png

錯誤信息、bug信息統(tǒng)計數(shù)據,很全了。就是當天的看到會晚一會。。

強制和不強制功能


image.png

統(tǒng)計


image.png

api 的使用

Bugly.init(this, APP_ID, false);//初始化統(tǒng)一接口
 Beta.autoInit = true;//自動初始化開關,true表示app啟動自動初始化升級模塊; false不會自動初始化; 開發(fā)者如果擔心sdk初始化影響app啟動速度,可以設置為false,在后面某個時刻手動調用Beta.init(getApplicationContext(),false);
 Beta.autoCheckUpgrade = true;//true表示初始化時自動檢查升級; false表示不會自動檢查升級,需要手動調用Beta.checkUpgrade()方法;
 Beta.upgradeCheckPeriod = 60 * 1000;//設置升級檢查周期為60s(默認檢查周期為0s),60s內SDK不重復向后臺請求策略);
 Beta.initDelay = 1 * 1000;//設置啟動延時為1s(默認延時3s),APP啟動1s后初始化SDK,避免影響APP啟動速度;
 Beta.largeIconId = R.drawable.ic_launcher;//設置通知欄大圖標,largeIconId為項目中的圖片資源;
 Beta.smallIconId = R.drawable.ic_launcher;//設置狀態(tài)欄小圖標
 Beta.storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);//設置sd卡的Download為更新資源存儲目錄
Beta.canShowUpgradeActs.add(MainActivity.class);//添加可顯示彈窗的Activity,例如,只允許在MainActivity上顯示更新彈窗,其他activity上不顯示彈窗; 如果不設置默認所有activity都可以顯示彈窗。
Beta.autoDownloadOnWifi = true;//設置Wifi下自動下載,默認false
Beta.enableHotfix = true;//升級SDK默認是開啟熱更新能力的,如果你不需要使用熱更新,可以將這個接口設置為false。

其他

 /**
    * 手動檢查更新(用于設置頁面中檢測更新按鈕的點擊事件)
    */
    public static synchronized void checkUpgrade()

    /**
    * 獲取本地已有升級策略(非實時,可用于界面紅點展示)
    *
    * @return
    */
    public static synchronized UpgradeInfo getUpgradeInfo()

    /**
    * @param isManual  用戶手動點擊檢查,非用戶點擊操作請傳false
    * @param isSilence 是否顯示彈窗等交互,[true:沒有彈窗和toast] [false:有彈窗或toast]
    */
    public static synchronized void checkUpgrade(boolean isManual, boolean isSilence)

最后熱更新

image.png

我的版本不匹配,另外需要的是降低gradle 版本。否則很那在升上去了。
看到這個

Beta.betaPatchListener = new BetaPatchListener() {
            @Override
            public void onPatchReceived(String patchFileUrl) {
//                Toast.makeText(getApplicationContext(), patchFileUrl, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onDownloadReceived(long savedLength, long totalLength) {
//                Toast.makeText(getApplicationContext(), String.format(Locale.getDefault(),
//                        "%s %d%%",
//                        Beta.strNotificationDownloading,
//                        (int) (totalLength == 0 ? 0 : savedLength * 100 / totalLength)), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onDownloadSuccess(String patchFilePath) {
//                Toast.makeText(getApplicationContext(), patchFilePath, Toast.LENGTH_SHORT).show();
//                Beta.applyDownloadedPatch();
//                Beta.applyTinkerPatch(getApplicationContext(), patchFilePath);
            }

            @Override
            public void onDownloadFailure(String msg) {
//                Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onApplySuccess(String msg) {
//                Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onApplyFailure(String msg) {
//                Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onPatchRollback() {
//                Toast.makeText(getApplicationContext(), "onPatchRollback", Toast.LENGTH_SHORT).show();
            }
        };

我有了新思路了。

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

相關閱讀更多精彩內容

  • 首先在Module:app/build.gredle下添加依賴集成SDK 如果只想集成單獨的異常上報可以將依賴改成...
    Time_x閱讀 1,916評論 1 0
  • ##騰訊Bugly 功能: 1.異常上報(上線后的APP 在用戶手中發(fā)送的bug看不到,這就用到Bugly,可以吧...
    Time_x閱讀 1,196評論 0 1
  • 前言 在很久以前,我講過了關于Bugly實現(xiàn)熱更新的文章,大家感興趣的話,可參考以下文章:Bugly熱更新集成詳解...
    奔跑的佩恩閱讀 1,084評論 0 0
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,994評論 2 59
  • 前言 在之前我已經講過了一些關于App版本更新的文章,大家感興趣的話,可參考以下文章Kotlin筆記(67) — ...
    奔跑的佩恩閱讀 890評論 0 0

友情鏈接更多精彩內容