zoukankan      html  css  js  c++  java
  • android app崩溃日志收集以及上传

    源代码获取请到github:https://github.com/DrJia/AndroidLogCollector


    已经做成sdk的形式,源代码已公开,源代码看不懂的请自行google。

    假设想定制适应自己app的sdk请自行fork。


    AndroidLogCollector

    android app崩溃日志收集sdk 1.0

    作者:贾博士

    崩溃日志收集方法:

    1.LogCollector是lib包,在须要加入崩溃日志sdk的project中导入此包。

    2.导入lib后,在自己的project的AndroidManifest.xml文件里增加权限:

            <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
            <uses-permission android:name="android.permission.INTERNET"/>
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    

    3.在自己的project中重写自己的application,在oncreate中增加

        LogCollector.init(getApplicationContext(), UPLOAD_URL, params);
    

    PS:重写自己的application记得在Manifest注冊

    參数:

    1.Context

    2.String UPLOAD_URL ,上传地址url,支持http和https方式,post方法。

    3.HttpParameters params ,自己定义的类,用于post上传其它參数。

    说明:

    发生崩溃后,日志会保存在 /data/data/{your package name}/files/ 文件夹下

    日志仅仅有一个文件,多条数据日志保存

    日志文件上传成功后会自己主动删除,上传不成功则不删除

    日志格式能够依据自己的需求在源代码中修改

    http的post传的数据也可自行改动

    參考代码:

        public class MyApplication extends Application {
            //post method , upload logfile url,replace your site . support http or https
            private static final String UPLOAD_URL = "http://xxxxxxxx";
    
            @Override
            public void onCreate() {
            super.onCreate();
    
            //upload logfile , post params.
            HttpParameters params = new HttpParameters();
            params.add("key1", "value1");
            params.add("key2", "value2");
            params.add("key3", "value3");
            //.......
            //replace your key and value;
    
            boolean isDebug = true;
            //set debug mode , you can see debug log , and also you can get logfile in sdcard;
            LogCollector.setDebugMode(isDebug);
            LogCollector.init(getApplicationContext(), UPLOAD_URL, params);//params can be null
            }
        }
    

    上传日志方法:

    须要先在application中运行init,

    然后在不论什么位置加入例如以下代码:

        LogCollector.upload(boolean isWifiOnly);
    

    參数:

    1.boolean isWifiOnly; true代表仅仅在wifi情况下发送,false代表有网的情况下就发送(包含流量和wifi)

    您能够在service,activity等位置的合适时机触发,不会卡界面也不会影响性能。

    參考代码:

        private void uploadLogFile(){
        boolean isWifiOnly = true;//only wifi mode can upload
        LogCollector.upload(isWifiOnly);//upload at the right time
        }
    

    调试:

    在init之前调用

        LogCollector.setDebugMode(boolean isDebug);
    

    说明:

    1.开启调试后能够看到堆栈的log信息

    2.同一时候能够在sd卡下的Android/data/{your package name}/Log/ 文件夹下能够查看保存的崩溃log日志

    该文件夹下的日志不会自己主动删除,请及时清空,避免占用空间


  • 相关阅读:
    (二)Spark
    (一)Spark
    (一)Scala
    (三)Kafka
    (二)kafka
    四、(项目架构的过去与现在)亿级用户行为之大数据实时分析
    (一)kafka
    三、(项目架构的过去与现在)亿级用户行为之大数据实时分析
    SpringBoot+Elasticsearch7.7.0实战
    springboot2.2.2企业级项目整合redis与redis 工具类大全
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3957263.html
Copyright © 2011-2022 走看看