摘要:崩潰分析使用指南最新版本更新內(nèi)容支持插件,可收集異常修復(fù)啟動(dòng)次數(shù)統(tǒng)計(jì)一快速集成崩潰分析,支持及以上版本。會(huì)用進(jìn)行錯(cuò)誤堆棧還原幫助快速定位問題。手動(dòng)上報(bào)的異常將多帶帶顯示在分析報(bào)表的異常欄目中。本文由崩潰分析產(chǎn)品經(jīng)理撰寫。
TestBird 崩潰分析(Artisan) Android SDK 使用指南
**
最新版本1.0.4 更新內(nèi)容**
支持H5插件,可收集H5 JS異常;
修復(fù)啟動(dòng)次數(shù)統(tǒng)計(jì)bug
一、快速集成TestBird 崩潰分析(Artisan) Android SDK,支持Android 2.3 及以上版本。
集成具體方法如下:
Step 1. 創(chuàng)建App
請(qǐng)注冊(cè)TestBird賬戶并登陸產(chǎn)品后臺(tái),點(diǎn)這里注冊(cè)登陸;
通過“添加應(yīng)用”按鈕上傳應(yīng)用的apk文件,添加您的新應(yīng)用;
添加應(yīng)用后,在頁面下方的“崩潰分析”面板中獲取您的AppKey,初始化SDK時(shí)需要使用;
Step 2. 下載SDK
下載SDK并解壓,支持收集Java異常導(dǎo)致的應(yīng)用崩潰
如果您的應(yīng)用是基于HTML的Hybird App,還可以下載集成HTML Plugin,支持收集javascript異常
如果您的工程有Native代碼(C/C++)或者集成了其他第三方SO庫,需要監(jiān)控Native崩潰,建議下載Artisan的NDK動(dòng)態(tài)庫,下載NDK
Step 3. 導(dǎo)入SDK
Eclipse,導(dǎo)入拷貝TestbirdAgent-1.0.4.jar到libs目錄.
Android Studio
添加libs目錄,并拷貝TestBirdAgent-1.0.4.jar到libs目錄
打開module setting,選擇dependencies頁面,選擇添加file dependency,選中TestbirdAgent-1.0.4.jar文件
Step 4. 導(dǎo)入NDK
若您的應(yīng)用中使用了C/C++開發(fā)模塊,或接入了第三方的NDK,則需要捕獲C/C++的底層異常,還需要引入NDK的SO庫文件
Eclipse,拷貝需要支持的arch文件夾到libs目錄
Android Studio,則在build.gradle中添加jniLibs.srcDirs字段
注意,集成TestBird SO庫時(shí),請(qǐng)只保留支持的架構(gòu)SO庫
Step 5. 參數(shù)配置
在AndroidManifest.xml中添加權(quán)限:
請(qǐng)避免混淆TestBird Artisan,同時(shí)為了定位問題更加方便精準(zhǔn),需要在還原后的堆棧中顯示行號(hào)和源文件的信息。需要在項(xiàng)目工程的Proguard混淆文件中添加以下配置:
-keepattributes SourceFile,LineNumberTable -keep public class com.testbird.artisan.TestBirdAgent.**{*;}
Step 6. 初始化SDK
SDK初始化需要繼承Application對(duì)象,并在OnCreate函數(shù)中進(jìn)行初始化。
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); // 初始化TestBird崩潰分析SDK CrashManager.register(this, "創(chuàng)建App時(shí)得到的AppKey"); // 打開SDK Logcat日志輸出,默認(rèn)是關(guān)閉狀態(tài) CrashManager.setDebug(true); } }
注意:請(qǐng)先關(guān)閉其他第三方SDK的崩潰捕獲接口,然后再初始化TestBird SDK,或?qū)estBird SDK初始化代碼放到最后進(jìn)行初始化,避免沖突。
二、SDK調(diào)試SDK提供了崩潰測(cè)試函數(shù)。
如果啟動(dòng)日志中出現(xiàn)"I/Testbird: testbird agent init complete."語句,則表示SDK初始化成功。
**為確保SDK正常工作,請(qǐng)觸發(fā)一次崩潰,并檢查日志和Web分析報(bào)表
注意:多數(shù)時(shí)候需要重啟一次應(yīng)用,崩潰信息才能夠上報(bào)成功**
調(diào)用CrashManager.setDebug(true),打開SDK Logcat日志輸出,默認(rèn)是關(guān)閉狀態(tài)
觸發(fā)javacrash,調(diào)用CrashManager.testJavaCrash()
觸發(fā)nativecrash,調(diào)用CrashManager.testNativeCrash()
如果Logcat中出現(xiàn)"Writing unhandledexception to:"語句則表示SDK記錄崩潰成功.
三、符號(hào)化文件上傳3.1 Java符號(hào)化文件
如果項(xiàng)目使用了Proguard混淆代碼,將自動(dòng)生成mapping.txt文件。TestBird會(huì)用mapping.txt進(jìn)行錯(cuò)誤堆棧還原,幫助快速定位問題。所以要優(yōu)先上傳該文件,根據(jù)開發(fā)環(huán)境不同,可以從以下路徑找到mapping.txt。
Android Studio: 在 projectname/app/build/outputs/mapping/目錄下
Eclipse: 在 projectname/proguard/目錄下
上傳文件:請(qǐng)通過崩潰分析應(yīng)用設(shè)置中的“版本管理”直接上傳mapping.txt,各個(gè)版本需要分別上傳符號(hào)化文件。
3.2 Native符號(hào)化文件
Native錯(cuò)誤堆棧還原,需要使用編譯過程中生成的obj文件.壓縮obj/local文件夾下的所有文件為zip文件,并上傳。
四、API說明4.1 初始化SDK
啟用TestBirdAgent,注冊(cè)的APP Key。還可以注冊(cè)渠道ID,以便監(jiān)控分析不同渠道APK包的表現(xiàn),默認(rèn)channelId為空。
public static void register(Context context, String appKey, String channelId)
4.2 設(shè)置User ID
調(diào)用該方法,設(shè)置當(dāng)前使用App的用戶賬號(hào),以便跟蹤用戶反饋,找出對(duì)應(yīng)的崩潰或異常。
public static void setUserId(String userId)
4.3 自定義Log日志
調(diào)用一下方法,添加不同日志級(jí)別的自定義Log日志,該Log會(huì)隨崩潰堆棧等信息收集到崩潰報(bào)表中。自定義Log日志緩存Buffer是32KB。
public static void addVerboseLog(String line)· public static void addInfoLog(String line) public static void addDebugLog(String line) public static void addWarnLog(String line) public static void addErrorLog(String line)
4.4 自定義鍵值對(duì)參數(shù)
添加鍵值對(duì)
調(diào)用該方法后,將向緩存中添加一條鍵值對(duì)參數(shù),參數(shù)將會(huì)被收集到崩潰報(bào)表中。最多設(shè)置32條自定義鍵值對(duì),每對(duì)最大1 KB。
public static void addCustomKeyPair(String key, Object value)
移除鍵值對(duì)
public static void removeCustomKeyPair(String key)
清除鍵值對(duì)
public static void clearCustomKeyPairs()
4.5 SDK日志輸出控制
將SDK設(shè)置為debug模式后,TestBirdAgent會(huì)輸出Logcat日志,默認(rèn)為關(guān)閉狀態(tài)。
public static void setDebug(Boolean isDebug)
4.6 主動(dòng)上報(bào)catch的異常
將開發(fā)者代碼中catch住的異常,進(jìn)行主動(dòng)上報(bào)。手動(dòng)上報(bào)的異常將多帶帶顯示在分析報(bào)表的“異常”欄目中。
public static void submitException(Throwable throwable)
4.7 設(shè)置傳輸方式為HTTPs
將SDK的通信方式改變?yōu)镠TTPs,默認(rèn)方式為HTTP。
public static void enableHttps()
本文由TestBird崩潰分析產(chǎn)品經(jīng)理撰寫。想了解更多開發(fā)測(cè)試相關(guān)信息,請(qǐng)?jiān)L問 TestBird
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/65063.html
摘要:出現(xiàn)錯(cuò)誤引發(fā)崩潰日志的流程分析這個(gè)錯(cuò)誤是應(yīng)用的方法總數(shù)限制造成的。 目錄介紹 1.1 java.lang.ClassNotFoundException類找不到異常 1.2 java.util.concurrent.TimeoutException連接超時(shí)崩潰 1.3 java.lang.NumberFormatException格式轉(zhuǎn)化錯(cuò)誤 1.4 java.lang.Illegal...
摘要:今天就說說移動(dòng)測(cè)試中最重要的兩個(gè)方向。自動(dòng)化測(cè)試完全不同于手游自動(dòng)化測(cè)試手機(jī)和手游的開發(fā)技術(shù)不同,這導(dǎo)致了兩者的自動(dòng)化測(cè)試技術(shù)是截然不同的。手游和的第二個(gè)玩法不同在于探索性。 隨著智能設(shè)備的普及和移動(dòng)互聯(lián)網(wǎng)的興起,各家互聯(lián)網(wǎng)巨頭紛紛在往移動(dòng)端布局和轉(zhuǎn)型,同時(shí)初創(chuàng)的移動(dòng)互聯(lián)網(wǎng)公司也都盯著這個(gè)市場(chǎng)希望分一杯羹。在這個(gè)大環(huán)境下,互聯(lián)網(wǎng)的重心已經(jīng)慢慢從Web端轉(zhuǎn)向了移動(dòng)端,而移動(dòng)端的軟件測(cè)試也...
閱讀 1322·2021-11-15 11:37
閱讀 2580·2021-09-22 10:56
閱讀 3401·2021-09-06 15:11
閱讀 814·2021-08-31 09:45
閱讀 2914·2021-07-28 11:16
閱讀 1816·2019-08-30 15:44
閱讀 487·2019-08-30 13:22
閱讀 3354·2019-08-30 13:18