Android CRASH ANR 日志收集

Android CRASH ANR 日志收集

需求:如圖

image-20180919183318650.png

收集實現(xiàn)方式

image-20180919173220331.png
  1. 通過現(xiàn)成的bugly收集 在bugly上報crash 或anr之前先將錯誤信息寫入本地磁盤

     /**
                 * Crash處理.
                 *
                 * @param crashType 錯誤類型:CRASHTYPE_JAVA,CRASHTYPE_NATIVE,CRASHTYPE_U3D ,CRASHTYPE_ANR
                 * @param errorType 錯誤的類型名
                 * @param errorMessage 錯誤的消息
                 * @param errorStack 錯誤的堆棧
                 * @return 返回額外的自定義信息上報
                 */
                @Override
                public Map<String, String> onCrashHandleStart(int crashType, String errorType,
                                                              String errorMessage, String errorStack) {
                    LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
                    map.put("設(shè)備序列號","test");
                    Log.i("bugly_test",crashType+errorType+errorMessage);
                    return map;
                }
    

不過目前上述方案都存在一些問題

  • 第一種方案 只有系統(tǒng)app才有權(quán)限訪問該文件夾。查看了sunmi sendcrash的實現(xiàn)(這個是系統(tǒng)應用 所以能讀取到/data/system/dropbox)。

    1. 監(jiān)聽到日志被添加的廣播->讀取/data/system/dropbox內(nèi)容->寫入外部存儲/sdcard/crash.log文件

      所以說summi上裝了sendcrash應用 美易點就在crash.log中能讀取到需要收集的信息

  • 第二種方案:系統(tǒng)崩潰都能獲取到 但是一個很尷尬的地方Android6.0后的設(shè)備無法上傳ANR信息

    還是由于系統(tǒng)權(quán)限的限制導致bugly 無法查看trace.txt文件引起。不過這部分信息非常關(guān)鍵 分析線上的一些特別異常問題就需要這部份信息.

上報方式

  1. 將日志寫入文件上報中控點 擊多次一條條上報 不過要做好一些限制和考慮一些會存在的問題
    • 文件的大小是否要做下限制(太大了不行)

    • 同一條記錄是否允許多次上報

    • 多條上報時一條失敗是否都終止(避免對服務(wù)器造成壓力)

    • 這樣一條條上報其實對查詢?nèi)罩静挥押?后臺日志會多很多zip日志包

界面

  1. 對日志的條數(shù)和時間做下限制。

建議

  1. 關(guān)于收集 建議是設(shè)備廠商給我們開放一下讀取權(quán)限 目前只能在商米設(shè)備上實現(xiàn)收集需要的全部信息

  2. 關(guān)于上報 根據(jù)上文上報方式里的問題

    建議:其實上面的上報日志一些問題不管在美易點還是全能POS都有自己的解決方案和實現(xiàn)方式
    1.上報日志的時候講這些日志添加到應用日志中

    2.美易點本身有上報到KB的邏輯 這個查起來也很方便

    3.如果還是這個方案 建議和中控其他日志分開不然后面查詢過濾比較麻煩

  3. 關(guān)于界面 限制日志條數(shù)和時間來提升交互效果及體驗(太多影響內(nèi)存)

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

相關(guān)閱讀更多精彩內(nèi)容

  • 從技術(shù)的角度看,ANR對用戶體驗的傷害僅次于Crash。多年的開發(fā)實踐過程中遇到過不少ANR問題,有兩次印象比較深...
    omottec閱讀 2,296評論 0 10
  • 一般應用在運行時,不可避免的會發(fā)生crash。一般應用crash分為三種:未捕獲的異常、ANR(Applicati...
    瀟瀟鳳兒閱讀 26,135評論 1 25
  • 一.概述 ??本文主要介紹Android平臺下bug類型和產(chǎn)生原因、崩潰捕獲和收集解決方案、以及bugly的使用方...
    XP2020閱讀 9,776評論 3 14
  • 騰訊Bugly,為移動開發(fā)者提供專業(yè)的異常上報和運營統(tǒng)計,幫助開發(fā)者快速發(fā)現(xiàn)并解決異常,同時掌握產(chǎn)品運營動態(tài),及時...
    侯志桐閱讀 3,430評論 0 1
  • 鄭州火車站附近,一處雜亂不堪的大雜院住著幾戶人家。唐月娥和同是租客的胖嫂共享一間四面透風的廚房。見唐月娥突然買了肉...
    南國四郎閱讀 483評論 0 0

友情鏈接更多精彩內(nèi)容