本文介紹如何為移動分析添加效能日誌。
移動分析接入 Android 的效能日誌包括:
啟動速度日誌
卡頓日誌
卡死日誌
您可以在 mPaaS 控制台 > 移動分析 > 基礎分析 中查看啟動速度指標;在 mPaaS 控制台 > 移動分析 > 效能分析 中查看卡頓、卡死報告。
啟動速度埋點
應用啟動時間長度 = 調用該方法的時刻 - 應用開始啟動的時刻。
推薦在首頁 Activity
的 onCreate()
方法中調用如下方法啟動速度埋點。
MPLogger.reportLaunchTime(Context context);
卡頓埋點
卡頓的定義為 Android 主線程超過 2.25 秒 仍未執行完一個方法。卡頓閾值因 APK 包類型而異:
APK 為 debug 包時,卡頓閾值為 0.75 秒,以便調試時快速發現潛在的卡頓問題。
APK 為 release 包時,卡頓閾值為 2.25 秒。
開啟卡頓監控
方式一
介面需要繼承 mPaaS 提供的 BaseActivity
、BaseFragmentActivity
或 BaseAppCompatActivity
類,凡是繼承了這些類的介面都會自動監控卡頓。
方式二
重要
該方式僅在基準 10.2.3.50 及以上版本支援。
在Activity
的生命週期方法中手動調用相關介面,例如:
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import com.mpaas.mas.adapter.api.MPLogger;
public class MPLifecycle implements Application.ActivityLifecycleCallbacks {
private int mVisibleActivityCount = 0;
private boolean isBackground = false;
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
}
@Override
public void onActivityStarted(Activity activity) {
mVisibleActivityCount++;
if (isBackground) {
isBackground = false;
// 應用回到前台時調用
MPLogger.monitorAppForeground();
}
}
@Override
public void onActivityResumed(Activity activity) {
// 更新 Activity 上下文
MPLogger.monitorActivityResumed(activity);
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
mVisibleActivityCount--;
if (mVisibleActivityCount <= 0) {
isBackground = true;
// 應用退到後台時調用
MPLogger.monitorAppBackground();
}
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
當 APK 為 debug 包時,卡頓監控為全量統計;APK 為 release 包時,卡頓監控為採樣統計,採樣率為 10%。
卡死埋點
卡死即 Android 系統的 ANR,通常情況下指主線程無回應時間 超過 5 秒。
要開啟卡死監控,詳情請參考上文卡頓埋點中的 開啟卡頓監控。