前一篇文章:开发一个好项目:八、创建view 框架地址 dileber android框架 希望大家能多多star一下
构造自己android奔溃文件日志记录。你的项目如果继承自dileber框架,你的项目将具有自动记录奔溃日志的功能。
奔溃日志的代码类为 AndroidCrash.java
public class AndroidCrash{
private static AndroidCrash instance = null;
private Thread.UncaughtExceptionHandler mDefaultCrashHandler;
private AndroidCrash(){
// get default
mDefaultCrashHandler = Thread.getDefaultUncaughtExceptionHandler();
// install
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, final Throwable ex) {
// save log
saveException(ex, true);
showToast( "很抱歉,程序发生异常,即将推出.");
try {
Thread.sleep(3500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// uncaught
mDefaultCrashHandler.uncaughtException(thread, ex);
}
});
}
public static AndroidCrash getInstance() {
if (instance == null) {
instance = new AndroidCrash();
}
return instance;
}
public final void saveException(Throwable ex, boolean uncaught) {
CrashSaver.save(SApplication.getAppContext(), ex, uncaught);
}
public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler handler) {
if (handler != null) {
this.mDefaultCrashHandler = handler;
}
}
/**
* 进行弹出框提示
*
* @param msg
*/
private void showToast( final String msg) {
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
UUi.toast(ActivityManager.getCurrentActivity(), msg, Toast.LENGTH_SHORT);
Looper.loop();
}
}).start();
}
}
该类具有自动记录奔溃日志,在崩溃前一秒会进行友好提示。
记录的日志目录位于sd卡目录的“ Android/data/你的包名/log”方便用户进行清理缓存,
记录的文件可以用于上传奔溃日志等等操作:
如下奔溃日志
count: 3
time: 2017-02-24 11:50:44
device: Xiaomi MI 4LTE
android: 6.0.1
system: MMB29M
battery: 100 %
rooted: no
ram: 27.0% [1.00 GB]
disk: 32.0% [12.00 GB]
ver: 1 caught: no
network: WIFI
java.lang.NullPointerException: Attempt to invoke interface method ...
點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)