android app崩溃日志收集以及上传

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

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

如果想定制适应自己app的sdk请自行fork。

AndroidLogCollector

android
app崩溃日志收集sdk 1.0

作者:贾博士

崩溃日志收集方法:

1.LogCollector是lib包,在需要添加崩溃日志sdk的工程中导入此包。

2.导入lib后,在自己的工程的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.在自己的工程中重写自己的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日志

该目录下的日志不会自动删除,请及时清空,避免占用空间

android app崩溃日志收集以及上传,布布扣,bubuko.com

时间: 2024-10-18 16:03:13

android app崩溃日志收集以及上传的相关文章

【安卓笔记】崩溃日志收集

应用发布之后,总有人反馈说发生crash,但是由于拿不到log,我无法定位问题.后来发现,我们应该收集crash日志,并上传到服务器. 国内有很多的三方机构提供了崩溃收集的sdk,我们可以直接拿来使用,比如,我之前做的app使用的是bugHD(http://bughd.com/)提供的服务. 但是崩溃收集的原理是什么呢?搜索了一下,发现使用的是java中的uncaughtExceptionHandler,我们可以通过Thread.setDefautUncaughtExceptionHandler

捕获android程序崩溃日志

主要类: package com.example.callstatus; import java.io.File; import java.io.FileOutputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.lang.Thread.UncaughtExceptionHandler; import java.lang.reflect.Field; import java.net.Unkn

Xcode7.3工具解析App崩溃日志(.crash文件)

Xcode7.3工具解析App崩溃日志(.crash文件) 原文链接:http://blog.csdn.net/u011056605 开发的App或者游戏提交审核后,偶尔会收到测试反馈的消息,说应用崩溃了,bug偶尔出现,难以找到确定的重现方法. 怎么办?可以分析崩溃文件啊,也就是app崩溃后,自动保存在设备本地的.crash文件. 获得崩溃日志的方式,在 获取设备上的调试信息与崩溃日志分析 中有说. 在环境ok的情况下,xcode中是可以自动解析.crash文件的.旧版本的xcode甚至可以导

Android利用网络编程HttpClient批量上传(一个)

请尊重他人的劳动成果.转载请注明出处:Android网络编程之使用HttpClient批量上传文件 我曾在<Android网络编程之使用HTTP訪问网络资源>一文中介绍过HttpCient的使用,这里就不在累述了,感兴趣的朋友能够去看一下.在这里主要介绍怎样通过HttpClient实现文件上传. 1.预备知识: 在HttpCient4.3之前上传文件主要使用MultipartEntity这个类,但如今这个类已经不在推荐使用了. 随之替代它的类是MultipartEntityBuilder. 以

Android程序崩溃异常收集框架

最近在写Android程序崩溃异常处理,完成之后,稍加封装与大家分享. 我的思路是这样的,在程序崩溃之后,将异常信息保存到一个日志文件中,然后对该文件进行处理,比如发送到邮箱,或发送到服务器. 所以,第一步是先定义一个接口,用于在保存好日志之后的回调.代码如下: /* * @(#)CrashListener.java Project: crash * Date:2014-5-27 * * Copyright (c) 2014 CFuture09, Institute of Software, *

shell脚本:检查ftp日志存储服务器上的日志是否正常上传

脚本:check_log.sh 主要功能:用于检查日志文件是否上传到ftp服务器,若未上传的,则发邮件报警 ------------------- #!/bin/bash #Auto check log files and notice by email #By colin #Revision on 2015-11-03 # #Useage: ./check_log.sh /home/upload/  # 10 * * * * /root/check_log.sh # #############

shell脚本:日志切割与上传

脚本说明: 日志切割与上传类脚本的功能:脚本自身的运行日志记录与清理.日志切割与打包.ftp上传.传送失败自动重传.断电自动补传.清理超期旧打包等 -------------------- #!/bin/bash # Cut and upload aclog log # by colin # revision on 2016-06-15 ######################################## # 功能说明:该脚本运用于上传aclog日志 # # 使用说明: #+ ./a

Android自定义动态布局 — 多图片上传

Android自定义动态布局 - 多图片上传 本文介绍Android中动态布局添加图片,多图片上传. 项目中效果图:    技术点: 1.动态添加格局中的线条和添加图片的+号 2.多张图片异步上传 首先来看一下布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layo

iOS系统app崩溃日志手动符号化

iOS系统app崩溃日志手动符号化步骤: 1.在桌面建立一个crash文件夹,将symbolicatecrash工具..crash文件..dSYM文件放到该文件夹中 a.如何查询symbolicatecrash路径位置? 执行命令:find /Applications/Xcode.app -name symbolicatecrash -type f 然后将symbolicatecrash复制一份 例如:Xcode7.3的symbolicatecrash路径 /Applications/Xcode