本文介紹如何為移動分析添加性能日志。
移動分析接入 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 秒。
要開啟卡死監控,詳情請參考上文卡頓埋點中的 開啟卡頓監控。
文檔內容是否對您有幫助?