Androidクラッシュログ収集
1578 ワード
原理:アプリケーションに異常が発生すると、デフォルトの異常プロセッサが異常を処理します.私たちがしなければならないのは、このタスクを引き継いで、自分で異常を処理して、ログを収集して、ローカルに保存して、サーバーにアップロードすることです.ステップ 1.カスタムクラス実装UncaughtExceptionHandlerインタフェース
推奨ソース三方SDK 1.網易雲捕2.テンセントbugly 3.Bugtags 4.タンポポ5.BugHD(fir.im) 6.Testin
public class CrashHandler implements Thread.UncaughtExceptionHandler {
private static final String TAG = "CrashHandler";
private static CrashHandler INSTANCE = new CrashHandler();
private ISave mSave;//
private CrashHandler() { }// CrashHandler
/**
* CrashHandler ,
*/
public static CrashHandler getInstance() {
return INSTANCE;
}
/**
* ,, CrashHandler
*
* @param logSaver
*/
public void init(ISave logSaver) {
mSave = logSaver;
Thread.setDefaultUncaughtExceptionHandler(this);
}
/**
* UncaughtException
*/
@Override
public void uncaughtException(final Thread thread, final Throwable ex) {
Writer writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
ex.printStackTrace(printWriter);
Throwable cause = ex.getCause();
while (cause != null) {
cause.printStackTrace(printWriter);
cause = cause.getCause();
}
printWriter.close();
String stringBuilder = "↓↓↓↓exception↓↓↓↓
" +
writer.toString();
mSave.writeCrash(thread, ex, TAG, stringBuilder);
// , 3 ,
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
推奨ソース