1. android bugly统计数据准确吗
umeng推出 crash上报工具有3年多了,主题核心功能基本没做大的改进,最近因为需要实时查看crash 日志,对,是实时,希望app crash 后,能够马上看到错误,方便解决crash问题,发现了bugly工具(这个工具还是腾讯提供的,大公司提供的,不会像小的创业团队,随时会关闭),
以下是对umeng crash 和 bugly 做的一些对比分析
1. crash 日志上报的及时性方面
umeng的太慢了,需要1-2小时才能显示当日的bug,而且有**,每天只能**1000个 crash 日志,bugly 宣称的是实时,经过我的测试,比较及时,基本在1分钟之内就能看到bug 的错误
从错误的及时性来收,bugly
2. android 极光推送怎么收集crash日志
设备连接到Xcode , Window -> Devices 点中对应硬件, 右侧再点 View Device Logs, 然后就会看到了很多日志了.
3. android 应用crash后log存在什么地方
不同手机的存储路径可能不太一样,以下路径都找找看:
/data/local/tmp/*
/data/tmp/*
/data/system/usagestats/*
/data/system/appusagestates/*
/data/system/dropbox/*
/data/tombstones/*
/data/anr/*
/dev/log/main手机连接adb的话若出现crash也能在adb logcat中看到
4. 安卓crash log在哪儿
不同手机的存储路径可能不太一样,以下路径你都找找看:
/data/local/tmp/*
/data/tmp/*
/data/system/usagestats/*
/data/system/appusagestates/*
/data/system/dropbox/*
/data/tombstones/*
/data/anr/*
/dev/log/main
5. android crash日志怎么分析
原始的方法都比较麻烦了,现在有很多的崩溃捕捉工具,可以都快速的定位崩溃堆栈详情,同时日志也会一并上报的,现在比较新的工具是Bugout,一些别工具还有bugly、bugtags和bugclos,你可以筛选一下,哪个适合你。
6. android studio怎么看crash的日志
android studio左下角有个Android Monitor的菜单,点击,选择logcat,所有的日志都在里面。然后可以选择Log Level为Error,就可以看到crash的日志了
7. 如何分析android crash log
android framework分为java和native两层 native运行于C的runtime,高效。一般java层只是封装,通过jni访问native底层HAL,driver的crash也会导致上层的crash ,有效利用Log信息并对其进行分析与实时的监控管理,对于分析Android手机发生Crash的原因具有极为重要的作用。 Android Log 文件类型 由于Android上的应用程序千差万别,出现的问题也不尽相同。不过Bug类型还是有规律可循的,可以根据生成的Log文件找到相应的错误,通常错误信息里记录了错误的大致位置,据此可以捕获到问题的关键信息。 Log文件记录着每次操作的信息,在出现问题后可以借助log信息分析以达到解决问题的目的,Log文件类型主要分为以下几种: (1) Logcat: Main缓存日志,通过运行logcat命令,可以获得系统中使用的标记和优先级的列表,也可以加上过滤器进行表达式限制,只输出测试人员及研发人员感兴趣的标记-优先级组合。 …………………… (2) Bugreport: Java应用程序Crash时会产生一个Bugreport文件,该文件主要包括三个方面的内容: Dumpstate:内存信息,Cpu信息,Procrank信息,系统日志,Vm Trace信息等。 Build.Prop:当前版本、当前命令、显示系统Build的一些属性等; Dumpsys:Dump Of Service Meminfo(显示某个进程更详细的内存消耗情况以及Native And Java (Dalvik)堆栈的统计数) ; (3) Crashmp: 每次Crash都会产生一个Crashmp文件,文件包括主日志,Java 堆栈信息,本地调用堆栈,虚拟机/进程堆,Log缓存,内存信息,进程列表,Modem信息,Adb Log等信息; (4) Bratlog: 测试用例及详细信息; (5) Logalong: 事件,如手机通讯功能信息等; (6) Pullfs: Traces(Java 堆栈信息); (7) Procrank: Uss(Unique Set Size) 值,进程独自占用的物理内存。
8. android 错误日志 哪里
1、创建MyCrashHandler类
package com.example.yu.myapplication;
import android.content.Context;
import android.os.Environment;
import android.util.Log;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.Thread.UncaughtExceptionHandler;
import java.util.Date;
/**
* 全局捕获导常,保存到本地错误日志。日志
* 路径位于sdcard/错误日志Log/myErrorLog下。
*/
public class MyCrashHandler implements UncaughtExceptionHandler {
private static MyCrashHandler instance;
public static MyCrashHandler getInstance() {
if (instance == null) {
instance = new MyCrashHandler();
}
return instance;
}
public void init(Context ctx) {
Thread.(this);
}
/**
* 核心方法,当程序crash 会回调此方法, Throwable中存放这错误日志
*/
@Override
public void uncaughtException(Thread arg0, Throwable arg1) {
String logPath;
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
logPath = Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ File.separator
+ File.separator
+ "错误日志Log";
File file = new File(logPath);
if (!file.exists()) {
file.mkdirs();
}
try {
FileWriter fw = new FileWriter(logPath + File.separator
+ "myErrorlog.log", true);
fw.write(new Date() + "错误原因:\n");
// 错误信息
// 这里还可以加上当前的系统版本,机型型号 等等信息
StackTraceElement[] stackTrace = arg1.getStackTrace();
fw.write(arg1.getMessage() + "\n");
for (int i = 0; i < stackTrace.length; i++) {
fw.write("file:" + stackTrace[i].getFileName() + " class:"
+ stackTrace[i].getClassName() + " method:"
+ stackTrace[i].getMethodName() + " line:"
+ stackTrace[i].getLineNumber() + "\n");
}
fw.write("\n");
fw.close();
// 上传错误信息到服务器
// uploadToServer();
} catch (IOException e) {
Log.e("crash handler", "load file failed...", e.getCause());
}
}
arg1.printStackTrace();
android.os.Process.killProcess(android.os.Process.myPid());
}
}
9. 如何阅读Android crash log以及stack trace
catch(Exception e){ e.printStackTrace() ; } 当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。 printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)
10. android 怎么获取 真机 crash
在项目真机运行中, 可能会出现我们意想不到的crash,在我们找不到原因的时候,可以通过Xcode将crash文件导出来,来进行进一步分析
1.连接真机
2.找到Xcode --> Window --> Devices
3.获取所有的crash日志文件
4. 右键可以Export,就可以查看相关的crash的原因
下节:如何分析crash文件