TestBird 崩潰分析(Artisan) Android SDK 使用指南
**
最新版本1.0.4 更新內容
**
支援H5外掛,可收集H5 JS異常;
修復啟動次數統計bug
一、快速整合
TestBird 崩潰分析(Artisan) Android SDK,支援Android 2.3 及以上版本。
整合具體方法如下:
Step 1. 建立App
請註冊TestBird賬戶並登陸產品後臺,點這裡註冊登陸;
透過“新增應用”按鈕上傳應用的apk檔案,新增您的新應用;
新增應用後,在頁面下方的“崩潰分析”皮膚中獲取您的AppKey,初始化SDK時需要使用;
Step 2. 下載SDK
下載SDK並解壓,支援收集Java異常導致的應用崩潰
如果您的應用是基於HTML的Hybird App,還可以下載整合HTML Plugin,支援收集javascript異常
如果您的工程有Native程式碼(C/C++)或者整合了其他第三方SO庫,需要監控Native崩潰,建議下載Artisan的NDK動態庫,下載NDK
Step 3. 匯入SDK
Eclipse,匯入複製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. 匯入NDK
若您的應用中使用了C/C++開發模組,或接入了第三方的NDK,則需要捕獲C/C++的底層異常,還需要引入NDK的SO庫檔案
Eclipse,複製需要支援的arch資料夾到libs目錄
Android Studio,則在build.gradle中新增jniLibs.srcDirs欄位
注意,整合TestBird SO庫時,請只保留支援的架構SO庫
Step 5. 引數配置
在AndroidManifest.xml中新增許可權:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
請避免混淆TestBird Artisan,同時為了定位問題更加方便精準,需要在還原後的堆疊中顯示行號和原始檔的資訊。需要在專案工程的Proguard混淆檔案中新增以下配置:
-keepattributes SourceFile,LineNumberTable
-keep public class com.testbird.artisan.TestBirdAgent.**{*;}
Step 6. 初始化SDK
SDK初始化需要繼承Application物件,並在OnCreate函式中進行初始化。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化TestBird崩潰分析SDK
CrashManager.register(this, "建立App時得到的AppKey");
// 開啟SDK Logcat日誌輸出,預設是關閉狀態
CrashManager.setDebug(true);
}
}
注意:請先關閉其他第三方SDK的崩潰捕獲介面,然後再初始化TestBird SDK,或將TestBird SDK初始化程式碼放到最後進行初始化,避免衝突。
二、SDK除錯
SDK提供了崩潰測試函式。
如果啟動日誌中出現"I/Testbird: testbird agent init complete."語句,則表示SDK初始化成功。
**為確保SDK正常工作,請觸發一次崩潰,並檢查日誌和Web分析報表
注意:多數時候需要重啟一次應用,崩潰資訊才能夠上報成功**
呼叫CrashManager.setDebug(true),開啟SDK Logcat日誌輸出,預設是關閉狀態
觸發javacrash,呼叫CrashManager.testJavaCrash()
觸發nativecrash,呼叫CrashManager.testNativeCrash()
如果Logcat中出現"Writing unhandledexception to:"語句則表示SDK記錄崩潰成功.
三、符號化檔案上傳
3.1 Java符號化檔案
如果專案使用了Proguard混淆程式碼,將自動生成mapping.txt檔案。TestBird會用mapping.txt進行錯誤堆疊還原,幫助快速定位問題。所以要優先上傳該檔案,根據開發環境不同,可以從以下路徑找到mapping.txt。
Android Studio: 在 projectname/app/build/outputs/mapping/目錄下
Eclipse: 在 projectname/proguard/目錄下
上傳檔案:請透過崩潰分析應用設定中的“版本管理”直接上傳mapping.txt,各個版本需要分別上傳符號化檔案。
3.2 Native符號化檔案
Native錯誤堆疊還原,需要使用編譯過程中生成的obj檔案.壓縮obj/local資料夾下的所有檔案為zip檔案,並上傳。
四、API說明
4.1 初始化SDK
啟用TestBirdAgent,註冊的APP Key。還可以註冊渠道ID,以便監控分析不同渠道APK包的表現,預設channelId為空。
public static void register(Context context, String appKey, String channelId)
4.2 設定User ID
呼叫該方法,設定當前使用App的使用者賬號,以便跟蹤使用者反饋,找出對應的崩潰或異常。
public static void setUserId(String userId)
4.3 自定義Log日誌
呼叫一下方法,新增不同日誌級別的自定義Log日誌,該Log會隨崩潰堆疊等資訊收集到崩潰報表中。自定義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 自定義鍵值對引數
新增鍵值對
呼叫該方法後,將向快取中新增一條鍵值對引數,引數將會被收集到崩潰報表中。最多設定32條自定義鍵值對,每對最大1 KB。
public static void addCustomKeyPair(String key, Object value)
移除鍵值對
public static void removeCustomKeyPair(String key)
清除鍵值對
public static void clearCustomKeyPairs()
4.5 SDK日誌輸出控制
將SDK設定為debug模式後,TestBirdAgent會輸出Logcat日誌,預設為關閉狀態。
public static void setDebug(Boolean isDebug)
4.6 主動上報catch的異常
將開發者程式碼中catch住的異常,進行主動上報。手動上報的異常將單獨顯示在分析報表的“異常”欄目中。
public static void submitException(Throwable throwable)
4.7 設定傳輸方式為HTTPs
將SDK的通訊方式改變為HTTPs,預設方式為HTTP。
public static void enableHttps()
本文由TestBird崩潰分析產品經理撰寫。想了解更多開發測試相關資訊,請訪問 TestBird