f.mkdirs();
}
File crashFile = new File(f, time + FILE_NAME_SUFFIX);
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(crashFile)));
pw.println(time);
pw.println("Thread: " + thread.getName());
pw.println(getPhoneInfo());
throwable.printStackTrace(pw); //写入crash堆栈
pw.flush();
pw.close();
return crashFile;
}
private String getPhoneInfo() throws PackageManager.NameNotFoundException {
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES);
StringBuilder sb = new StringBuilder();
//App版本
sb.append(“App Version: “);
sb.append(pi.versionName);
sb.append(”_”);
sb.append(pi.versionCode + “\n”);
//Android版本号
sb.append(“OS Version: “);
sb.append(Build.VERSION.RELEASE);
sb.append(”_”);
sb.appen

本文讨论了Android应用崩溃时的Linux信号机制,如SIGSEGV和BreakPad的使用,以及ANR分析中的关键因素,包括主线程问题和资源管理。同时提及了如何通过捕获崩溃信号和墓碑文件来监控和解决问题,以及一套完整的Android开发学习资料的分享。
最低0.47元/天 解锁文章
1459

被折叠的 条评论
为什么被折叠?



