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文件