// Path: 微信/src/net/cgt/weixin/utils/L.java
// public class L {
// 	private static final boolean flag = true;
// 
// 	public static void i(String tag, String msg) {
// 		if (flag)
// 			Log.i(tag, msg);
// 	}
// 
// 	public static void d(String tag, String msg) {
// 		if (flag)
// 			Log.d(tag, msg);
// 	}
// 
// 	public static void e(String tag, String msg) {
// 		if (flag)
// 			Log.e(tag, msg);
// 	}
// 
// 	public static void e(String tag, String msg, Throwable tr) {
// 		if (flag)
// 			Log.e(tag, msg, tr);
// 	}
// 
// 	public static void v(String tag, String msg) {
// 		if (flag)
// 			Log.v(tag, msg);
// 	}
// 
// 	public static void m(String tag, String msg) {
// 		if (flag)
// 			Log.e(tag, msg);
// 	}
// 
// 	public static void w(String tag, String msg) {
// 		if (flag)
// 			Log.w(tag, msg);
// 	}
// }
// 
// Path: 微信/src/net/cgt/weixin/utils/LogUtil.java
// public class LogUtil {
// 
// 	@SuppressWarnings("unchecked")
// 	public static String makeLogTag(Class cls) {
// 		return "Weixin_" + cls.getSimpleName();
// 	}
// 
// }


import java.io.File;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Properties;
import java.util.TreeSet;
import net.cgt.weixin.utils.L;
import net.cgt.weixin.utils.LogUtil;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Build;
import android.os.Environment;
import android.os.Looper;
import android.text.format.Time;
import android.util.Log;

package net.cgt.weixin.app;



/**
 * 测序崩溃处理程序
 * 
 * @author lijian
 * @date 2015-01-03 17:00:07
 */
public class CrashHandler implements UncaughtExceptionHandler {

	/** Debug Log tag */
	public static final String LOGTAG = LogUtil.makeLogTag(CrashHandler.class);
	/**
	 * 是否开启日志输出,在Debug状态下开启, 在Release状态下关闭以提示程序性能
	 * */
	public static final boolean DEBUG = false;
	/** 系统默认的UncaughtException处理类 */
	private Thread.UncaughtExceptionHandler mDefaultHandler;
	/** CrashHandler实例 */
	private static CrashHandler INSTANCE;
	/** 程序的Context对象 */
	private Context mContext;
	/** 使用Properties来保存设备的信息和错误堆栈信息 */
	private Properties mDeviceCrashInfo = new Properties();
	private static final String VERSION_NAME = "versionName";
	private static final String VERSION_CODE = "versionCode";
	private static final String STACK_TRACE = "STACK_TRACE";
	/** 错误报告文件的扩展名 */
	private static final String CRASH_REPORTER_EXTENSION = ".dat";

	/** SD卡错误报告文件路径 */
	private static String SDCARD_PATH = "/sdcard/data/sxc/";

	/** 保证只有一个CrashHandler实例 */
	private CrashHandler() {
		initAddress();
	}

	private void initAddress() {
		SDCARD_PATH = Environment.getExternalStorageDirectory() + "/";// +"/data/sxc/";

// Path: 微信/src/net/cgt/weixin/utils/L.java
// public class L {
// 	private static final boolean flag = true;
// 
// 	public static void i(String tag, String msg) {
// 		if (flag)
// 			Log.i(tag, msg);
// 	}
// 
// 	public static void d(String tag, String msg) {
// 		if (flag)
// 			Log.d(tag, msg);
// 	}
// 
// 	public static void e(String tag, String msg) {
// 		if (flag)
// 			Log.e(tag, msg);
// 	}
// 
// 	public static void e(String tag, String msg, Throwable tr) {
// 		if (flag)
// 			Log.e(tag, msg, tr);
// 	}
// 
// 	public static void v(String tag, String msg) {
// 		if (flag)
// 			Log.v(tag, msg);
// 	}
// 
// 	public static void m(String tag, String msg) {
// 		if (flag)
// 			Log.e(tag, msg);
// 	}
// 
// 	public static void w(String tag, String msg) {
// 		if (flag)
// 			Log.w(tag, msg);
// 	}
// }
// 
// Path: 微信/src/net/cgt/weixin/utils/LogUtil.java
// public class LogUtil {
// 
// 	@SuppressWarnings("unchecked")
// 	public static String makeLogTag(Class cls) {
// 		return "Weixin_" + cls.getSimpleName();
// 	}
// 
// }


// Path: 微信/src/net/cgt/weixin/app/CrashHandler.java
import java.io.File;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Properties;
import java.util.TreeSet;
import net.cgt.weixin.utils.L;
import net.cgt.weixin.utils.LogUtil;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Build;
import android.os.Environment;
import android.os.Looper;
import android.text.format.Time;
import android.util.Log;

package net.cgt.weixin.app;



/**
 * 测序崩溃处理程序
 * 
 * @author lijian
 * @date 2015-01-03 17:00:07
 */
public class CrashHandler implements UncaughtExceptionHandler {

	/** Debug Log tag */
	public static final String LOGTAG = LogUtil.makeLogTag(CrashHandler.class);
	/**
	 * 是否开启日志输出,在Debug状态下开启, 在Release状态下关闭以提示程序性能
	 * */
	public static final boolean DEBUG = false;
	/** 系统默认的UncaughtException处理类 */
	private Thread.UncaughtExceptionHandler mDefaultHandler;
	/** CrashHandler实例 */
	private static CrashHandler INSTANCE;
	/** 程序的Context对象 */
	private Context mContext;
	/** 使用Properties来保存设备的信息和错误堆栈信息 */
	private Properties mDeviceCrashInfo = new Properties();
	private static final String VERSION_NAME = "versionName";
	private static final String VERSION_CODE = "versionCode";
	private static final String STACK_TRACE = "STACK_TRACE";
	/** 错误报告文件的扩展名 */
	private static final String CRASH_REPORTER_EXTENSION = ".dat";

	/** SD卡错误报告文件路径 */
	private static String SDCARD_PATH = "/sdcard/data/sxc/";

	/** 保证只有一个CrashHandler实例 */
	private CrashHandler() {
		initAddress();
	}

	private void initAddress() {
		SDCARD_PATH = Environment.getExternalStorageDirectory() + "/";// +"/data/sxc/";

		L.e(LOGTAG, "SDCARD_PATH>>" + SDCARD_PATH);
