在发布一款应用时,开发人员不可能在所有的设备上测试,一些异常可能会在发布时出现,如何捕捉这个异常在下一个版本中不在出现这个异常呢,这就需要全局异常捕获,通过后台信息采集来获取异常。
腾讯Bugly实现了全局异常捕获并上传后台,你可以查看你的app的异常信息。现在我们来自己实现一个全局异常捕获,直接上代码,注释很详细
全局异常捕获类CrashHandler
package com.joker.divview;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Looper;
import android.text.format.Time;
import android.util.Log;
import android.view.Gravity;
import android.widget.Toast;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Properties;
import java.util.TreeSet;
/**
* Created by joker on 2016/1/25.
*/
public class CrashHandler implements Thread.UncaughtExceptionHandler {
/**
* 是否开启日志输出
*/
public static final boolean DEBUG = false;
/**
* 系统默认的UncaughtException处理类
*/
private Thread.UncaughtExceptionHandler mDefaultHandler;
/**
* CrashHandler实例
*/
private static CrashHandler INSTANCE;
private Context mContext;
/**
* 使用Properties来保存设备的信息和错误堆栈信息
*/
private Properties mDeviceCrashInfo = new Properties();
private