前一篇文章:开发一个好项目:八、创建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 ...
点击查看更多内容
2人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦